coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
pll.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef SOC_MEDIATEK_MT8183_PLL_H
4 #define SOC_MEDIATEK_MT8183_PLL_H
5 
6 #include <types.h>
7 #include <soc/pll_common.h>
8 
9 struct mtk_topckgen_regs {
10  u32 clk_mode;
13  u32 reserved1[13];
14  u32 clk_cfg_0;
17  u32 reserved2[1];
18  u32 clk_cfg_1;
21  u32 reserved3[1];
22  u32 clk_cfg_2;
25  u32 reserved4[1];
26  u32 clk_cfg_3;
29  u32 reserved5[1];
30  u32 clk_cfg_4;
33  u32 reserved6[1];
34  u32 clk_cfg_5;
37  u32 reserved7[1];
38  u32 clk_cfg_6;
41  u32 reserved8[1];
42  u32 clk_cfg_7;
45  u32 reserved9[1];
46  u32 clk_cfg_8;
49  u32 reserved10[1];
50  u32 clk_cfg_9;
53  u32 reserved11[1];
57  u32 reserved12[6];
61  u32 reserved13[60];
64  u32 reserved14[6];
67  u32 reserved15[2];
68  u32 cksta_reg;
70  u32 reserved16[50];
73  u32 reserved17[6];
88 };
89 
90 check_member(mtk_topckgen_regs, clk_cfg_0, 0x0040);
91 check_member(mtk_topckgen_regs, clk_misc_cfg_0, 0x0104);
92 check_member(mtk_topckgen_regs, clk_scp_cfg_0, 0x0200);
93 check_member(mtk_topckgen_regs, clk26cali_0, 0x0220);
94 check_member(mtk_topckgen_regs, cksta_reg, 0x0230);
95 check_member(mtk_topckgen_regs, clkmon_clk_sel_reg, 0x0300);
96 check_member(mtk_topckgen_regs, clk_auddiv_0, 0x0320);
97 check_member(mtk_topckgen_regs, clk_pdn_reg, 0x0400);
98 check_member(mtk_topckgen_regs, clk_extck_reg, 0x0500);
99 check_member(mtk_topckgen_regs, clk_cfg_20, 0x0640);
100 check_member(mtk_topckgen_regs, clk_cfg_20_clr, 0x0648);
101 
102 struct mtk_apmixed_regs {
122  u32 reserved1[109];
151  u32 mmpll_con0;
152  u32 mmpll_con1;
153  u32 mmpll_con2;
155  u32 mpll_con0;
156  u32 mpll_con1;
157  u32 mpll_con2;
163  u32 apll1_con0;
164  u32 apll1_con1;
165  u32 apll1_con2;
166  u32 apll1_con3;
168  u32 apll2_con0;
169  u32 apll2_con1;
170  u32 apll2_con2;
171  u32 apll2_con3;
173  u32 reserved2[78];
180  u32 reserved3[122];
184  u32 reserved4[61];
203 };
204 
205 check_member(mtk_apmixed_regs, armpll_ll_con0, 0x0200);
206 check_member(mtk_apmixed_regs, ap_auxadc_con0, 0x0400);
207 check_member(mtk_apmixed_regs, ts_con0, 0x0600);
208 check_member(mtk_apmixed_regs, ulposc_con0, 0x0700);
209 check_member(mtk_apmixed_regs, ap_abist_mon_con0, 0x0800);
210 check_member(mtk_apmixed_regs, rsv_rw0_con0, 0x0900);
211 check_member(mtk_apmixed_regs, rsv_ro_con0, 0x0908);
212 
213 enum {
214  DIV_MASK = 0x1f << 17,
215  DIV_1 = 0x8 << 17,
216  DIV_2 = 0xa << 17,
217 
218  MUX_MASK = 0x3 << 9,
219  MUX_SRC_ARMPLL = 0x1 << 9,
220  MUX_SRC_DIV_PLL1 = 0x2 << 9,
221 };
222 
223 enum {
227 };
228 
229 enum {
231 };
232 
233 /* PLL rate */
234 enum {
235  ARMPLL_LL_HZ = 1417 * MHz,
236  ARMPLL_L_HZ = 1200 * MHz,
237  CCIPLL_HZ = 598 * 2 * MHz,
238  MAINPLL_HZ = 1092 * MHz,
239  UNIVPLL_HZ = 1248UL * 2 * MHz,
240  MSDCPLL_HZ = 384 * MHz,
241  MMPLL_HZ = 3150UL * MHz,
242  MFGPLL_HZ = 512 * MHz,
243  TVDPLL_HZ = 594 * MHz,
244  APLL1_HZ = 180633600,
245  APLL2_HZ = 196608 * KHz,
246  MPLL_HZ = 208 * MHz,
247 };
248 
249 /* top_div rate */
250 enum {
251  CLK26M_HZ = 26 * MHz,
254 };
255 
256 /* top_mux rate */
257 enum {
260 };
261 
262 enum {
263  DCM_INFRA_BUS_MASK = 0x40907ffb,
264  DCM_INFRA_BUS_ON = 0x40904203,
265  DCM_INFRA_MEM_ON = 0x1 << 27,
267  DCM_INFRA_PERI_MASK = 0xf03ffffb,
268  DCM_INFRA_PERI_ON = 0xf03f83e3,
269 };
270 
271 #endif /* SOC_MEDIATEK_MT8183_PLL_H */
#define MHz
Definition: helpers.h:80
#define KHz
Definition: helpers.h:79
@ UNIVPLL_HZ
Definition: pll.h:196
@ MSDCPLL_HZ
Definition: pll.h:198
@ MAINPLL_HZ
Definition: pll.h:195
@ MMPLL_HZ
Definition: pll.h:197
@ APLL1_HZ
Definition: pll.h:205
@ APLL2_HZ
Definition: pll.h:206
@ MPLL_HZ
Definition: pll.h:201
@ TVDPLL_HZ
Definition: pll.h:200
@ UART_HZ
Definition: pll.h:247
@ SPI_HZ
Definition: pll.h:248
@ CLK26M_HZ
Definition: pll.h:215
@ PLL_ISO_DELAY
Definition: pll.h:183
@ PLL_EN_DELAY
Definition: pll.h:184
@ PLL_PWR_ON_DELAY
Definition: pll.h:182
check_member(mtk_topckgen_regs, clk_cfg_0, 0x40)
@ PCW_INTEGER_BITS
Definition: pll.h:188
@ CCIPLL_HZ
Definition: pll.h:237
@ MFGPLL_HZ
Definition: pll.h:242
@ ARMPLL_L_HZ
Definition: pll.h:236
@ ARMPLL_LL_HZ
Definition: pll.h:235
@ DIV_MASK
Definition: pll.h:214
@ MUX_SRC_ARMPLL
Definition: pll.h:219
@ DIV_2
Definition: pll.h:216
@ MUX_SRC_DIV_PLL1
Definition: pll.h:220
@ MUX_MASK
Definition: pll.h:218
@ DIV_1
Definition: pll.h:215
@ MAINPLL_D5_HZ
Definition: pll.h:252
@ MAINPLL_D5_D2_HZ
Definition: pll.h:253
@ DCM_INFRA_BUS_MASK
Definition: pll.h:263
@ DCM_INFRA_BUS_ON
Definition: pll.h:264
@ DCM_INFRA_MEM_ON
Definition: pll.h:265
@ DCM_INFRA_PERI_MASK
Definition: pll.h:267
@ DCM_INFRA_P2PRX_MASK
Definition: pll.h:266
@ DCM_INFRA_PERI_ON
Definition: pll.h:268
uint32_t u32
Definition: stdint.h:51
u32 msdcpll_con2
Definition: pll.h:134
u32 mfgpll_pwr_con0
Definition: pll.h:142
u32 reserved3[2]
Definition: pll.h:162
u32 mcu_occscan_con0
Definition: pll.h:198
u32 ccipll_pwr_con0
Definition: pll.h:162
u32 pll_test_con0
Definition: pll.h:109
u32 apll2_con0
Definition: pll.h:157
u32 ts_con0
Definition: pll.h:181
u32 clkdiv_con0
Definition: pll.h:195
u32 ap_pll_con5
Definition: pll.h:98
u32 msdcpll_con0
Definition: pll.h:132
u32 armpll_ll_con1
Definition: pll.h:124
u32 ulposc2_con0
Definition: pll.h:187
u32 pll_test_con1
Definition: pll.h:110
u32 ap_pll_con1
Definition: pll.h:104
u32 tvdpll_con0
Definition: pll.h:140
u32 rsv_ro_con0
Definition: pll.h:202
u32 ap_auxadc_con3
Definition: pll.h:177
u32 pll_iso_con0
Definition: pll.h:104
u32 reserved1[1]
Definition: pll.h:94
u32 mainpll_con0
Definition: pll.h:120
u32 apll2_con1
Definition: pll.h:158
u32 mfgpll_con0
Definition: pll.h:139
u32 univpll_pwr_con0
Definition: pll.h:127
u32 reserved5[60]
Definition: pll.h:189
u32 apll1_con2
Definition: pll.h:154
u32 mmpll_pwr_con0
Definition: pll.h:131
u32 ts_con2
Definition: pll.h:183
u32 armpll_ll_con0
Definition: pll.h:123
u32 ap_pll_con4
Definition: pll.h:97
u32 mfgpll_con2
Definition: pll.h:141
u32 msdcpll_pwr_con0
Definition: pll.h:135
u32 ulposc_con0
Definition: pll.h:185
u32 ap_auxadc_con5
Definition: pll.h:179
u32 armpll_ll_pwr_con0
Definition: pll.h:126
u32 mainpll_pwr_con0
Definition: pll.h:123
u32 ap_pll_con0
Definition: pll.h:93
u32 ccipll_con1
Definition: pll.h:160
u32 reserved6[55]
Definition: pll.h:199
u32 pll_chg_con0
Definition: pll.h:108
u32 ts_con1
Definition: pll.h:182
u32 armpll_l_con2
Definition: pll.h:129
u32 clksq_stb_con0
Definition: pll.h:101
u32 ap_pll_con3
Definition: pll.h:96
u32 ccipll_con2
Definition: pll.h:161
u32 univpll_con2
Definition: pll.h:126
u32 mfgpll_con1
Definition: pll.h:140
u32 ap_auxadc_con1
Definition: pll.h:175
u32 ccipll_con0
Definition: pll.h:159
u32 mpll_pwr_con0
Definition: pll.h:147
u32 occscan_con1
Definition: pll.h:196
u32 ap_abist_mon_con3
Definition: pll.h:193
u32 ap_auxadc_con4
Definition: pll.h:178
u32 reserved2[110]
Definition: pll.h:111
u32 mpll_con2
Definition: pll.h:146
u32 mainpll_con2
Definition: pll.h:122
u32 rsv_rw1_con0
Definition: pll.h:201
u32 apll1_con1
Definition: pll.h:153
u32 univpll_con1
Definition: pll.h:125
u32 mmpll_con0
Definition: pll.h:128
u32 mpll_con1
Definition: pll.h:145
u32 ap_pll_con6
Definition: pll.h:99
u32 pll_stb_con0
Definition: pll.h:106
u32 tvdpll_con2
Definition: pll.h:142
u32 mmpll_con1
Definition: pll.h:129
u32 apll2_con3
Definition: pll.h:160
u32 ap_pll_con8
Definition: pll.h:111
u32 tvdpll_con1
Definition: pll.h:141
u32 pll_pwr_con0
Definition: pll.h:102
u32 mmpll_con2
Definition: pll.h:130
u32 occscan_con0
Definition: pll.h:194
u32 apll1_con0
Definition: pll.h:152
u32 pll_iso_con1
Definition: pll.h:105
u32 ulposc2_con1
Definition: pll.h:188
u32 mainpll_con1
Definition: pll.h:121
u32 ap_pll_con7
Definition: pll.h:100
u32 apll1_pwr_con0
Definition: pll.h:156
u32 ulposc_con1
Definition: pll.h:186
u32 div_stb_con0
Definition: pll.h:107
u32 ap_auxadc_con0
Definition: pll.h:174
u32 msdcpll_con1
Definition: pll.h:133
u32 apll2_pwr_con0
Definition: pll.h:161
u32 apll1_con3
Definition: pll.h:155
u32 reserved4[1]
Definition: pll.h:170
u32 ap_abist_mon_con1
Definition: pll.h:191
u32 ap_abist_mon_con0
Definition: pll.h:190
u32 ap_pll_con2
Definition: pll.h:95
u32 apll2_con2
Definition: pll.h:159
u32 univpll_con0
Definition: pll.h:124
u32 armpll_l_pwr_con0
Definition: pll.h:130
u32 rsv_rw0_con0
Definition: pll.h:200
u32 tvdpll_pwr_con0
Definition: pll.h:143
u32 armpll_l_con0
Definition: pll.h:127
u32 occscan_con2
Definition: pll.h:197
u32 ap_auxadc_con2
Definition: pll.h:176
u32 mpll_con0
Definition: pll.h:144
u32 armpll_ll_con2
Definition: pll.h:125
u32 ap_abist_mon_con2
Definition: pll.h:192
u32 armpll_l_con1
Definition: pll.h:128
u32 pll_pwr_con1
Definition: pll.h:103
u32 clk_extck_reg
Definition: pll.h:83
u32 clk_cfg_2_set
Definition: pll.h:26
u32 reserved11[1]
Definition: pll.h:52
u32 clk_misc_cfg_1
Definition: pll.h:72
u32 clk_cfg_1
Definition: pll.h:21
u32 clk_auddiv_1
Definition: pll.h:63
u32 reserved19[63]
Definition: pll.h:82
u32 clk_cfg_7_set
Definition: pll.h:46
u32 clk_cfg_9
Definition: pll.h:58
u32 aud_top_cfg
Definition: pll.h:77
u32 clk_mode
Definition: pll.h:10
u32 clk_cfg_update
Definition: pll.h:11
u32 clk_auddiv_0
Definition: pll.h:62
u32 cksta_reg
Definition: pll.h:78
u32 clk_cfg_6
Definition: pll.h:41
u32 clk_misc_cfg_0
Definition: pll.h:71
u32 clk_scp_cfg_1
Definition: pll.h:69
u32 clkmon_k1_reg
Definition: pll.h:72
u32 reserved13[4]
Definition: pll.h:61
u32 clk_cfg_9_set
Definition: pll.h:51
u32 clk_cfg_5_set
Definition: pll.h:38
u32 aud_top_mon
Definition: pll.h:78
u32 reserved1[6]
Definition: pll.h:12
u32 reserved17[53]
Definition: pll.h:80
u32 reserved8[1]
Definition: pll.h:40
u32 clk_cfg_7_clr
Definition: pll.h:47
u32 reserved12[9]
Definition: pll.h:56
u32 reserved4[1]
Definition: pll.h:24
u32 clk_cfg_2_clr
Definition: pll.h:27
u32 clk_cfg_4_set
Definition: pll.h:34
u32 reserved15[2]
Definition: pll.h:70
u32 clk_cfg_9_clr
Definition: pll.h:52
u32 clk_cfg_update1
Definition: pll.h:12
u32 clk_cfg_3_clr
Definition: pll.h:31
u32 clk_cfg_20
Definition: pll.h:85
u32 clk_cfg_8
Definition: pll.h:57
u32 clk_pdn_reg
Definition: pll.h:81
u32 clk_cfg_3_set
Definition: pll.h:30
u32 reserved9[1]
Definition: pll.h:44
u32 cksta_reg1
Definition: pll.h:69
u32 reserved3[1]
Definition: pll.h:20
u32 clk_cfg_4
Definition: pll.h:33
u32 clk_cfg_0
Definition: pll.h:17
u32 reserved2[5]
Definition: pll.h:16
u32 clk_cfg_6_clr
Definition: pll.h:43
u32 clk_cfg_8_clr
Definition: pll.h:48
u32 clk_cfg_7
Definition: pll.h:45
u32 clk_cfg_10_set
Definition: pll.h:55
u32 clk_cfg_1_set
Definition: pll.h:22
u32 clk_cfg_8_set
Definition: pll.h:47
u32 reserved5[1]
Definition: pll.h:28
u32 reserved14[51]
Definition: pll.h:67
u32 clk_dbg_cfg
Definition: pll.h:60
u32 clk_cfg_10_clr
Definition: pll.h:56
u32 reserved18[50]
Definition: pll.h:80
u32 clk_auddiv_2
Definition: pll.h:64
u32 clk_cfg_1_clr
Definition: pll.h:23
u32 clk_cfg_0_set
Definition: pll.h:18
u32 clk_cfg_3
Definition: pll.h:29
u32 clk_cfg_20_set
Definition: pll.h:86
u32 clkmon_clk_sel_reg
Definition: pll.h:71
u32 clk_cfg_4_clr
Definition: pll.h:35
u32 clk26cali_0
Definition: pll.h:75
u32 clk_cfg_20_clr
Definition: pll.h:87
u32 clk_cfg_5
Definition: pll.h:37
u32 clk_cfg_0_clr
Definition: pll.h:19
u32 reserved6[1]
Definition: pll.h:32
u32 clk_cfg_10
Definition: pll.h:59
u32 clk_scp_cfg_0
Definition: pll.h:68
u32 reserved16[1]
Definition: pll.h:74
u32 clk_cfg_2
Definition: pll.h:25
u32 clk_cfg_5_clr
Definition: pll.h:39
u32 reserved20[79]
Definition: pll.h:84
u32 reserved7[1]
Definition: pll.h:36
u32 reserved10[1]
Definition: pll.h:48
u32 clk26cali_1
Definition: pll.h:76
u32 clk_auddiv_3
Definition: pll.h:65
u32 clk_cfg_6_set
Definition: pll.h:42