summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/common/block/include/intelblocks/rtc.h
blob: 0f09d7e0fb7bc5ed2160a8bb0f5033fc2054b97b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef SOC_INTEL_COMMON_BLOCK_RTC_H
#define SOC_INTEL_COMMON_BLOCK_RTC_H

/* Top swap feature enable/disable config */
enum ts_config {
	TS_DISABLE,
	TS_ENABLE
};

void enable_rtc_upper_bank(void);

/* Expect return rtc failed bootlean in case of coin removal */
int soc_get_rtc_failed(void);

void rtc_init(void);

/*
 * set/unset RTC backed top swap bit in the BUC register.
 *  TS_ENABLE - PCH will invert A16, A17 or A18 for cycles
 *      going to the BIOS space based on PCH strap setting.
 *  TS_DISABLE - PCH will not invert A16, A17 or A18.
 */
void configure_rtc_buc_top_swap(enum ts_config ts_state);

/*
 * Return the current top swap state which is reflected by the
 * RTC backed top swap bit in the BUC register.
 *   TS_ENABLE - Top swap enabled.
 *   TS_DISABLE - Top swap disabled.
 */
enum ts_config get_rtc_buc_top_swap_status(void);

/* Set RTC Configuration BILD bit. */
void rtc_conf_set_bios_interface_lockdown(void);
#endif	/* SOC_INTEL_COMMON_BLOCK_RTC_H */