coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
rtc.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef SOC_MEDIATEK_MT8192_RTC_H
4 #define SOC_MEDIATEK_MT8192_RTC_H
5 
6 #include <soc/pmif.h>
7 #include <stdbool.h>
8 
9 /* RTC registers */
10 enum {
11  RTC_BBPU = 0x0588,
12  RTC_IRQ_STA = 0x058A,
13  RTC_IRQ_EN = 0x058C,
14  RTC_CII_EN = 0x058E,
15 };
16 
17 enum {
18  RTC_TC_SEC = 0x0592,
19  RTC_TC_MIN = 0x0594,
20  RTC_TC_HOU = 0x0596,
21  RTC_TC_DOM = 0x0598,
22  RTC_TC_DOW = 0x059A,
23  RTC_TC_MTH = 0x059C,
24  RTC_TC_YEA = 0x059E,
25 };
26 
27 enum {
28  RTC_AL_SEC = 0x05A0,
29  RTC_AL_MIN = 0x05A2,
30  RTC_AL_HOU = 0x05A4,
31  RTC_AL_DOM = 0x05A6,
32  RTC_AL_DOW = 0x05A8,
33  RTC_AL_MTH = 0x05AA,
34  RTC_AL_YEA = 0x05AC,
35  RTC_AL_MASK = 0x0590,
36 };
37 
38 enum {
39  RTC_OSC32CON = 0x05AE,
40  RTC_CON = 0x05C4,
41  RTC_WRTGR = 0x05C2,
42 };
43 
44 enum {
45  RTC_POWERKEY1 = 0x05B0,
46  RTC_POWERKEY2 = 0x05B2,
47 };
48 
49 enum {
50  RTC_PDN1 = 0x05B4,
51  RTC_PDN2 = 0x05B6,
52  RTC_SPAR0 = 0x05B8,
53  RTC_SPAR1 = 0x05BA,
54  RTC_PROT = 0x05BC,
55  RTC_DIFF = 0x05BE,
56  RTC_CALI = 0x05C0,
57 };
58 
59 enum {
61  RTC_BBPU_SPAR_SW = 1U << 1,
64  RTC_BBPU_CLRPKY = 1U << 4,
65  RTC_BBPU_RELOAD = 1U << 5,
66  RTC_BBPU_CBUSY = 1U << 6,
68 };
69 
70 enum {
74  RTC_CON_LPRST = 1U << 3,
75  RTC_CON_CDBO = 1U << 4,
76  RTC_CON_F32KOB = 1U << 5,
77  RTC_CON_GPO = 1U << 6,
78  RTC_CON_GOE = 1U << 7,
79  RTC_CON_GSR = 1U << 8,
80  RTC_CON_GSMT = 1U << 9,
81  RTC_CON_GPEN = 1U << 10,
82  RTC_CON_GPU = 1U << 11,
83  RTC_CON_GE4 = 1U << 12,
84  RTC_CON_GE8 = 1U << 13,
85  RTC_CON_GPI = 1U << 14,
86  RTC_CON_LPSTA_RAW = 1U << 15,
87 };
88 
89 enum {
90  RTC_XOSCCALI_MASK = 0x1F << 0,
91  RTC_XOSC32_ENB = 1U << 5,
92  RTC_EMB_HW_MODE = 0U << 6,
97  RTC_EMBCK_SRC_SEL = 1U << 8,
99  RTC_GPS_CKOUT_EN = 1U << 10,
100  RTC_EOSC32_VCT_EN = 1U << 11,
101  RTC_EOSC32_CHOP_EN = 1U << 12,
102  RTC_GP_OSC32_CON = 2U << 13,
103  RTC_REG_XOSC32_ENB = 1U << 15,
104 };
105 
106 enum {
110 };
111 
112 enum {
117  RTC_LPD_OPT_MASK = 3U << 13,
118 };
119 
120 /* PMIC TOP Register Definition */
121 enum {
123 };
124 
125 /* PMIC TOP Register Definition */
126 enum {
136 };
137 
138 enum {
141 };
142 
143 enum {
145 };
146 
147 enum {
150 };
151 
152 /* PMIC Frequency Meter Definition */
153 enum {
160 };
161 
162 enum {
171 };
172 
173 enum {
175 };
176 
177 enum {
189 };
190 
191 enum {
194 };
195 
196 enum {
199 };
200 
201 enum {
203 };
204 
205 enum {
208  RTC_K_EOSC_RSV_2 = 1 << 10,
209 };
210 
211 void rtc_read(u16 addr, u16 *rdata);
212 void rtc_write(u16 addr, u16 wdata);
213 void rtc_bbpu_power_on(void);
214 int rtc_init(int recover);
215 bool rtc_gpio_init(void);
216 void rtc_boot(void);
217 u16 rtc_get_frequency_meter(u16 val, u16 measure_src, u16 window_size);
218 #endif /* SOC_MEDIATEK_MT8192_RTC_H */
static u32 addr
Definition: cirrus.c:14
void rtc_init(void)
Definition: rtc.c:29
void rtc_boot(void)
Definition: rtc_mt6359p.c:315
@ RTC_WRTGR
Definition: rtc.h:44
@ RTC_CON
Definition: rtc.h:43
@ RTC_OSC32CON
Definition: rtc.h:42
@ RTC_IRQ_EN
Definition: rtc.h:16
@ RTC_IRQ_STA
Definition: rtc.h:15
@ RTC_BBPU
Definition: rtc.h:14
@ RTC_CII_EN
Definition: rtc.h:17
@ RTC_CBUSY_TIMEOUT_US
Definition: rtc.h:70
@ RTC_BBPU_CLRPKY
Definition: rtc.h:66
@ RTC_BBPU_RELOAD
Definition: rtc.h:67
@ RTC_BBPU_CBUSY
Definition: rtc.h:68
@ RTC_CON_GPI
Definition: rtc.h:91
@ RTC_CON_GE8
Definition: rtc.h:90
@ RTC_CON_GSMT
Definition: rtc.h:86
@ RTC_CON_GE4
Definition: rtc.h:89
@ RTC_CON_GPU
Definition: rtc.h:88
@ RTC_CON_CDBO
Definition: rtc.h:81
@ RTC_CON_GPO
Definition: rtc.h:83
@ RTC_CON_F32KOB
Definition: rtc.h:82
@ RTC_CON_LPSTA_RAW
Definition: rtc.h:92
@ RTC_CON_GOE
Definition: rtc.h:84
@ RTC_CON_LPRST
Definition: rtc.h:80
@ RTC_CON_GSR
Definition: rtc.h:85
@ RTC_CON_GPEN
Definition: rtc.h:87
@ RTC_DIFF
Definition: rtc.h:58
@ RTC_CALI
Definition: rtc.h:59
@ RTC_SPAR1
Definition: rtc.h:56
@ RTC_PDN2
Definition: rtc.h:54
@ RTC_SPAR0
Definition: rtc.h:55
@ RTC_PDN1
Definition: rtc.h:53
@ RTC_PROT
Definition: rtc.h:57
@ RTC_AL_MTH
Definition: rtc.h:36
@ RTC_AL_DOM
Definition: rtc.h:34
@ RTC_AL_DOW
Definition: rtc.h:35
@ RTC_AL_MIN
Definition: rtc.h:32
@ RTC_AL_HOU
Definition: rtc.h:33
@ RTC_AL_MASK
Definition: rtc.h:38
@ RTC_AL_YEA
Definition: rtc.h:37
@ RTC_AL_SEC
Definition: rtc.h:31
@ RTC_TC_MTH
Definition: rtc.h:26
@ RTC_TC_SEC
Definition: rtc.h:21
@ RTC_TC_MIN
Definition: rtc.h:22
@ RTC_TC_DOW
Definition: rtc.h:25
@ RTC_TC_DOM
Definition: rtc.h:24
@ RTC_TC_YEA
Definition: rtc.h:27
@ RTC_TC_HOU
Definition: rtc.h:23
@ RTC_POWERKEY1
Definition: rtc.h:48
@ RTC_POWERKEY2
Definition: rtc.h:49
@ PMIC_RG_TOP_CKSEL_CON0_SET
Definition: rtc.h:127
@ PMIC_RG_TOP_CKSEL_CON0_CLR
Definition: rtc.h:128
@ PMIC_RG_TOP_CKPDN_CON0
Definition: rtc.h:120
@ PMIC_RG_TOP_CKPDN_CON0_CLR
Definition: rtc.h:122
@ PMIC_RG_TOP_CKPDN_CON1_SET
Definition: rtc.h:124
@ PMIC_RG_TOP_CKPDN_CON0_SET
Definition: rtc.h:121
@ PMIC_RG_TOP_CKPDN_CON1
Definition: rtc.h:123
@ PMIC_RG_TOP_CKSEL_CON0
Definition: rtc.h:126
@ PMIC_RG_TOP_CKPDN_CON1_CLR
Definition: rtc.h:125
@ PMIC_RG_SCK_TOP_CON0
Definition: rtc.h:115
void rtc_bbpu_power_on(void)
Definition: rtc_mt6359p.c:286
@ RTC_EMBCK_SRC_SEL
Definition: rtc.h:99
@ RTC_EMB_SW_EOSC32_MODE
Definition: rtc.h:97
@ RTC_REG_XOSC32_ENB
Definition: rtc.h:102
@ RTC_GPS_CKOUT_EN
Definition: rtc.h:101
@ RTC_XOSCCALI_MASK
Definition: rtc.h:92
@ RTC_EMB_HW_MODE
Definition: rtc.h:94
@ RTC_EMB_SW_DCXO_MODE
Definition: rtc.h:96
@ RTC_EMB_K_EOSC32_MODE
Definition: rtc.h:95
@ RTC_EMBCK_SEL_OPTION
Definition: rtc.h:100
@ RTC_XOSC32_ENB
Definition: rtc.h:93
@ RTC_EMBCK_SEL_MODE_MASK
Definition: rtc.h:98
@ PMIC_RG_FQMTR_CON0
Definition: rtc.h:160
@ PMIC_RG_FQMTR_DATA
Definition: rtc.h:162
@ PMIC_RG_FQMTR_CKSEL
Definition: rtc.h:158
@ PMIC_RG_FQMTR_RST
Definition: rtc.h:159
@ FQMTR_TIMEOUT_US
Definition: rtc.h:164
@ PMIC_RG_FQMTR_WINSET
Definition: rtc.h:161
@ RTC_FQMTR_LOW_BASE
Definition: rtc.h:197
@ RTC_FQMTR_HIGH_BASE
Definition: rtc.h:198
@ RTC_CON_VBAT_LPSTA_RAW
Definition: rtc.h:73
@ RTC_CON_EOSC32_LPEN
Definition: rtc.h:74
@ RTC_CON_XOSC32_LPEN
Definition: rtc.h:75
@ PMIC_FQMTR_CON0_DCXO_F32K_CK
Definition: rtc.h:184
@ PMIC_FQMTR_CON0_BUSY
Definition: rtc.h:191
@ PMIC_FQMTR_CON0_FQM26M_CK
Definition: rtc.h:187
@ PMIC_FQMTR_CON0_XOSC32_CK
Definition: rtc.h:183
@ PMIC_FQMTR_CON0_EOSC32_CK
Definition: rtc.h:185
@ PMIC_FQMTR_CON0_TEST_CK
Definition: rtc.h:189
@ PMIC_FQMTR_CON0_DCXO26M_EN
Definition: rtc.h:192
@ PMIC_FQMTR_CON0_TCKSEL_MASK
Definition: rtc.h:190
@ PMIC_FQMTR_CON0_FQMTR_EN
Definition: rtc.h:193
@ PMIC_FQMTR_CON0_FQM32k_CK
Definition: rtc.h:188
@ PMIC_FQMTR_CON0_XOSC32_CK_DETECTON
Definition: rtc.h:186
@ PMIC_RG_FQMTR_32K_CK_PDN_SHIFT
Definition: rtc.h:132
@ PMIC_RG_FQMTR_CK_PDN_SHIFT
Definition: rtc.h:133
@ RTC_LPD_OPT_XOSC_LPD
Definition: rtc.h:108
@ RTC_LPD_OPT_EOSC_LPD
Definition: rtc.h:107
@ RTC_LPD_OPT_F32K_CK_ALIVE
Definition: rtc.h:109
@ RTC_LPD_OPT_MASK
Definition: rtc.h:110
@ RTC_LPD_OPT_XOSC_AND_EOSC_LPD
Definition: rtc.h:106
@ PMIC_FQMTR_RST_SHIFT
Definition: rtc.h:179
@ PMIC_FQMTR_FIX_CLK_EOSC_32K
Definition: rtc.h:170
@ PMIC_FQMTR_FIX_CLK_TCK_SEC
Definition: rtc.h:173
@ PMIC_FQMTR_CKSEL_MASK
Definition: rtc.h:175
@ PMIC_FQMTR_FIX_CLK_26M
Definition: rtc.h:168
@ PMIC_FQMTR_FIX_CLK_XOSC_32K_DET
Definition: rtc.h:169
@ PMIC_FQMTR_FIX_CLK_RTC_32K
Definition: rtc.h:171
u16 rtc_get_frequency_meter(u16 val, u16 measure_src, u16 window_size)
Definition: rtc_mt6359p.c:87
@ RTC_XOSCCALI_START
Definition: rtc.h:202
@ RTC_XOSCCALI_END
Definition: rtc.h:203
bool rtc_gpio_init(void)
Definition: rtc_mt6359p.c:71
@ OSC32CON_ANALOG_SETTING
Definition: rtc.h:107
@ RTC_GP_OSC32_CON
Definition: rtc.h:102
@ RTC_EOSC32_CHOP_EN
Definition: rtc.h:101
@ RTC_EOSC32_VCT_EN
Definition: rtc.h:100
@ RTC_BBPU_SPAR_SW
Definition: rtc.h:61
@ RTC_BBPU_RESET_SPAR
Definition: rtc.h:62
@ RTC_BBPU_ENABLE_ALARM
Definition: rtc.h:60
@ RTC_BBPU_RESET_ALARM
Definition: rtc.h:63
@ PMIC_RG_FQMTR_DCXO26M_EN_SHIFT
Definition: rtc.h:148
@ PMIC_RG_BANK_FQMTR_RST_SHIFT
Definition: rtc.h:149
@ PMIC_RG_BANK_FQMTR_RST
Definition: rtc.h:144
@ RTC_K_EOSC_RSV_0
Definition: rtc.h:206
@ RTC_K_EOSC_RSV_1
Definition: rtc.h:207
@ RTC_K_EOSC_RSV_2
Definition: rtc.h:208
void rtc_read(u16 addr, u16 *rdata)
Definition: rtc_mt6359p.c:14
@ PMIC_FQMTR_FIX_CLK_DCXO1M_CK
Definition: rtc.h:167
@ PMIC_FQMTR_FIX_CLK_PMU_32K
Definition: rtc.h:169
@ RTC_TC_MTH_MASK
Definition: rtc.h:202
void rtc_write(u16 addr, u16 wdata)
Definition: rtc_mt6359p.c:25
uint16_t u16
Definition: stdint.h:48
u8 val
Definition: sys.c:300