xref: /rk3399_rockchip-uboot/arch/arm/mach-socfpga/include/mach/clock_manager_gen5.h (revision 753a4dde970c2bc9022321f1093e544e3a150f6e)
1*de778115SLey Foon Tan /*
2*de778115SLey Foon Tan  *  Copyright (C) 2013-2017 Altera Corporation <www.altera.com>
3*de778115SLey Foon Tan  *
4*de778115SLey Foon Tan  * SPDX-License-Identifier:	GPL-2.0+
5*de778115SLey Foon Tan  */
6*de778115SLey Foon Tan 
7*de778115SLey Foon Tan #ifndef _CLOCK_MANAGER_GEN5_H_
8*de778115SLey Foon Tan #define _CLOCK_MANAGER_GEN5_H_
9*de778115SLey Foon Tan 
10*de778115SLey Foon Tan #ifndef __ASSEMBLER__
11*de778115SLey Foon Tan 
12*de778115SLey Foon Tan struct cm_config {
13*de778115SLey Foon Tan 	/* main group */
14*de778115SLey Foon Tan 	u32 main_vco_base;
15*de778115SLey Foon Tan 	u32 mpuclk;
16*de778115SLey Foon Tan 	u32 mainclk;
17*de778115SLey Foon Tan 	u32 dbgatclk;
18*de778115SLey Foon Tan 	u32 mainqspiclk;
19*de778115SLey Foon Tan 	u32 mainnandsdmmcclk;
20*de778115SLey Foon Tan 	u32 cfg2fuser0clk;
21*de778115SLey Foon Tan 	u32 maindiv;
22*de778115SLey Foon Tan 	u32 dbgdiv;
23*de778115SLey Foon Tan 	u32 tracediv;
24*de778115SLey Foon Tan 	u32 l4src;
25*de778115SLey Foon Tan 
26*de778115SLey Foon Tan 	/* peripheral group */
27*de778115SLey Foon Tan 	u32 peri_vco_base;
28*de778115SLey Foon Tan 	u32 emac0clk;
29*de778115SLey Foon Tan 	u32 emac1clk;
30*de778115SLey Foon Tan 	u32 perqspiclk;
31*de778115SLey Foon Tan 	u32 pernandsdmmcclk;
32*de778115SLey Foon Tan 	u32 perbaseclk;
33*de778115SLey Foon Tan 	u32 s2fuser1clk;
34*de778115SLey Foon Tan 	u32 perdiv;
35*de778115SLey Foon Tan 	u32 gpiodiv;
36*de778115SLey Foon Tan 	u32 persrc;
37*de778115SLey Foon Tan 
38*de778115SLey Foon Tan 	/* sdram pll group */
39*de778115SLey Foon Tan 	u32 sdram_vco_base;
40*de778115SLey Foon Tan 	u32 ddrdqsclk;
41*de778115SLey Foon Tan 	u32 ddr2xdqsclk;
42*de778115SLey Foon Tan 	u32 ddrdqclk;
43*de778115SLey Foon Tan 	u32 s2fuser2clk;
44*de778115SLey Foon Tan 
45*de778115SLey Foon Tan 	/* altera group */
46*de778115SLey Foon Tan 	u32 altera_grp_mpuclk;
47*de778115SLey Foon Tan };
48*de778115SLey Foon Tan 
49*de778115SLey Foon Tan struct socfpga_clock_manager_main_pll {
50*de778115SLey Foon Tan 	u32	vco;
51*de778115SLey Foon Tan 	u32	misc;
52*de778115SLey Foon Tan 	u32	mpuclk;
53*de778115SLey Foon Tan 	u32	mainclk;
54*de778115SLey Foon Tan 	u32	dbgatclk;
55*de778115SLey Foon Tan 	u32	mainqspiclk;
56*de778115SLey Foon Tan 	u32	mainnandsdmmcclk;
57*de778115SLey Foon Tan 	u32	cfgs2fuser0clk;
58*de778115SLey Foon Tan 	u32	en;
59*de778115SLey Foon Tan 	u32	maindiv;
60*de778115SLey Foon Tan 	u32	dbgdiv;
61*de778115SLey Foon Tan 	u32	tracediv;
62*de778115SLey Foon Tan 	u32	l4src;
63*de778115SLey Foon Tan 	u32	stat;
64*de778115SLey Foon Tan 	u32	_pad_0x38_0x40[2];
65*de778115SLey Foon Tan };
66*de778115SLey Foon Tan 
67*de778115SLey Foon Tan struct socfpga_clock_manager_per_pll {
68*de778115SLey Foon Tan 	u32	vco;
69*de778115SLey Foon Tan 	u32	misc;
70*de778115SLey Foon Tan 	u32	emac0clk;
71*de778115SLey Foon Tan 	u32	emac1clk;
72*de778115SLey Foon Tan 	u32	perqspiclk;
73*de778115SLey Foon Tan 	u32	pernandsdmmcclk;
74*de778115SLey Foon Tan 	u32	perbaseclk;
75*de778115SLey Foon Tan 	u32	s2fuser1clk;
76*de778115SLey Foon Tan 	u32	en;
77*de778115SLey Foon Tan 	u32	div;
78*de778115SLey Foon Tan 	u32	gpiodiv;
79*de778115SLey Foon Tan 	u32	src;
80*de778115SLey Foon Tan 	u32	stat;
81*de778115SLey Foon Tan 	u32	_pad_0x34_0x40[3];
82*de778115SLey Foon Tan };
83*de778115SLey Foon Tan 
84*de778115SLey Foon Tan struct socfpga_clock_manager_sdr_pll {
85*de778115SLey Foon Tan 	u32	vco;
86*de778115SLey Foon Tan 	u32	ctrl;
87*de778115SLey Foon Tan 	u32	ddrdqsclk;
88*de778115SLey Foon Tan 	u32	ddr2xdqsclk;
89*de778115SLey Foon Tan 	u32	ddrdqclk;
90*de778115SLey Foon Tan 	u32	s2fuser2clk;
91*de778115SLey Foon Tan 	u32	en;
92*de778115SLey Foon Tan 	u32	stat;
93*de778115SLey Foon Tan };
94*de778115SLey Foon Tan 
95*de778115SLey Foon Tan struct socfpga_clock_manager_altera {
96*de778115SLey Foon Tan 	u32	mpuclk;
97*de778115SLey Foon Tan 	u32	mainclk;
98*de778115SLey Foon Tan };
99*de778115SLey Foon Tan 
100*de778115SLey Foon Tan struct socfpga_clock_manager {
101*de778115SLey Foon Tan 	u32	ctrl;
102*de778115SLey Foon Tan 	u32	bypass;
103*de778115SLey Foon Tan 	u32	inter;
104*de778115SLey Foon Tan 	u32	intren;
105*de778115SLey Foon Tan 	u32	dbctrl;
106*de778115SLey Foon Tan 	u32	stat;
107*de778115SLey Foon Tan 	u32	_pad_0x18_0x3f[10];
108*de778115SLey Foon Tan 	struct socfpga_clock_manager_main_pll main_pll;
109*de778115SLey Foon Tan 	struct socfpga_clock_manager_per_pll per_pll;
110*de778115SLey Foon Tan 	struct socfpga_clock_manager_sdr_pll sdr_pll;
111*de778115SLey Foon Tan 	struct socfpga_clock_manager_altera altera;
112*de778115SLey Foon Tan 	u32	_pad_0xe8_0x200[70];
113*de778115SLey Foon Tan };
114*de778115SLey Foon Tan 
115*de778115SLey Foon Tan /* Clock speed accessors */
116*de778115SLey Foon Tan unsigned long cm_get_mpu_clk_hz(void);
117*de778115SLey Foon Tan unsigned long cm_get_sdram_clk_hz(void);
118*de778115SLey Foon Tan unsigned int cm_get_l4_sp_clk_hz(void);
119*de778115SLey Foon Tan unsigned int cm_get_mmc_controller_clk_hz(void);
120*de778115SLey Foon Tan unsigned int cm_get_qspi_controller_clk_hz(void);
121*de778115SLey Foon Tan unsigned int cm_get_spi_controller_clk_hz(void);
122*de778115SLey Foon Tan const unsigned int cm_get_osc_clk_hz(const int osc);
123*de778115SLey Foon Tan const unsigned int cm_get_f2s_per_ref_clk_hz(void);
124*de778115SLey Foon Tan const unsigned int cm_get_f2s_sdr_ref_clk_hz(void);
125*de778115SLey Foon Tan 
126*de778115SLey Foon Tan /* Clock configuration accessors */
127*de778115SLey Foon Tan int cm_basic_init(const struct cm_config * const cfg);
128*de778115SLey Foon Tan const struct cm_config * const cm_get_default_config(void);
129*de778115SLey Foon Tan #endif /* __ASSEMBLER__ */
130*de778115SLey Foon Tan 
131*de778115SLey Foon Tan #define LOCKED_MASK \
132*de778115SLey Foon Tan 	(CLKMGR_INTER_SDRPLLLOCKED_MASK  | \
133*de778115SLey Foon Tan 	CLKMGR_INTER_PERPLLLOCKED_MASK  | \
134*de778115SLey Foon Tan 	CLKMGR_INTER_MAINPLLLOCKED_MASK)
135*de778115SLey Foon Tan 
136*de778115SLey Foon Tan #define CLKMGR_CTRL_SAFEMODE				BIT(0)
137*de778115SLey Foon Tan #define CLKMGR_CTRL_SAFEMODE_OFFSET			0
138*de778115SLey Foon Tan 
139*de778115SLey Foon Tan #define CLKMGR_BYPASS_PERPLLSRC				BIT(4)
140*de778115SLey Foon Tan #define CLKMGR_BYPASS_PERPLLSRC_OFFSET			4
141*de778115SLey Foon Tan #define CLKMGR_BYPASS_PERPLL				BIT(3)
142*de778115SLey Foon Tan #define CLKMGR_BYPASS_PERPLL_OFFSET			3
143*de778115SLey Foon Tan #define CLKMGR_BYPASS_SDRPLLSRC				BIT(2)
144*de778115SLey Foon Tan #define CLKMGR_BYPASS_SDRPLLSRC_OFFSET			2
145*de778115SLey Foon Tan #define CLKMGR_BYPASS_SDRPLL				BIT(1)
146*de778115SLey Foon Tan #define CLKMGR_BYPASS_SDRPLL_OFFSET			1
147*de778115SLey Foon Tan #define CLKMGR_BYPASS_MAINPLL				BIT(0)
148*de778115SLey Foon Tan #define CLKMGR_BYPASS_MAINPLL_OFFSET			0
149*de778115SLey Foon Tan 
150*de778115SLey Foon Tan #define CLKMGR_INTER_MAINPLLLOST_MASK			BIT(3)
151*de778115SLey Foon Tan #define CLKMGR_INTER_PERPLLLOST_MASK			BIT(4)
152*de778115SLey Foon Tan #define CLKMGR_INTER_SDRPLLLOST_MASK			BIT(5)
153*de778115SLey Foon Tan #define CLKMGR_INTER_MAINPLLLOCKED_MASK			BIT(6)
154*de778115SLey Foon Tan #define CLKMGR_INTER_PERPLLLOCKED_MASK			BIT(7)
155*de778115SLey Foon Tan #define CLKMGR_INTER_SDRPLLLOCKED_MASK			BIT(8)
156*de778115SLey Foon Tan 
157*de778115SLey Foon Tan #define CLKMGR_STAT_BUSY				BIT(0)
158*de778115SLey Foon Tan 
159*de778115SLey Foon Tan /* Main PLL */
160*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_BGPWRDN			BIT(0)
161*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_BGPWRDN_OFFSET		0
162*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_DENOM_OFFSET		16
163*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_DENOM_MASK		0x003f0000
164*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_EN			BIT(1)
165*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_EN_OFFSET			1
166*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_NUMER_OFFSET		3
167*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_NUMER_MASK		0x0000fff8
168*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_OUTRESETALL_MASK		0x01000000
169*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_PWRDN			BIT(2)
170*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_PWRDN_OFFSET		2
171*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_REGEXTSEL_MASK		0x80000000
172*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_VCO_RESET_VALUE		0x8001000d
173*de778115SLey Foon Tan 
174*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MPUCLK_CNT_OFFSET		0
175*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MPUCLK_CNT_MASK		0x000001ff
176*de778115SLey Foon Tan 
177*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINCLK_CNT_OFFSET		0
178*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINCLK_CNT_MASK		0x000001ff
179*de778115SLey Foon Tan 
180*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_DBGATCLK_CNT_OFFSET		0
181*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_DBGATCLK_CNT_MASK		0x000001ff
182*de778115SLey Foon Tan 
183*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINQSPICLK_CNT_OFFSET	0
184*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINQSPICLK_CNT_MASK		0x000001ff
185*de778115SLey Foon Tan 
186*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINNANDSDMMCCLK_CNT_OFFSET	0
187*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINNANDSDMMCCLK_CNT_MASK	0x000001ff
188*de778115SLey Foon Tan 
189*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_CFGS2FUSER0CLK_CNT_OFFSET	0
190*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_CFGS2FUSER0CLK_CNT_MASK	0x000001ff
191*de778115SLey Foon Tan 
192*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_EN_L4MPCLK_MASK		BIT(2)
193*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_EN_DBGATCLK_MASK		BIT(4)
194*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_EN_DBGCLK_MASK		BIT(5)
195*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_EN_DBGTRACECLK_MASK		BIT(6)
196*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_EN_DBGTIMERCLK_MASK		BIT(7)
197*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_EN_S2FUSER0CLK_MASK		BIT(9)
198*de778115SLey Foon Tan 
199*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L3MPCLK_OFFSET	0
200*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L3MPCLK_MASK		0x00000003
201*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L3SPCLK_OFFSET	2
202*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L3SPCLK_MASK		0x0000000c
203*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L4MPCLK_OFFSET	4
204*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L4MPCLK_MASK		0x00000070
205*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L4SPCLK_OFFSET	7
206*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_MAINDIV_L4SPCLK_MASK		0x00000380
207*de778115SLey Foon Tan 
208*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_DBGDIV_DBGATCLK_OFFSET	0
209*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_DBGDIV_DBGATCLK_MASK		0x00000003
210*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_DBGDIV_DBGCLK_OFFSET		2
211*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_DBGDIV_DBGCLK_MASK		0x0000000c
212*de778115SLey Foon Tan 
213*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_TRACEDIV_TRACECLK_OFFSET	0
214*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_TRACEDIV_TRACECLK_MASK	0x00000007
215*de778115SLey Foon Tan 
216*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_L4SRC_L4MP			BIT(0)
217*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_L4SRC_L4MP_OFFSET		0
218*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_L4SRC_L4SP			BIT(1)
219*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_L4SRC_L4SP_OFFSET		1
220*de778115SLey Foon Tan #define CLKMGR_MAINPLLGRP_L4SRC_RESET_VALUE		0x00000000
221*de778115SLey Foon Tan #define CLKMGR_L4_SP_CLK_SRC_MAINPLL			0x0
222*de778115SLey Foon Tan #define CLKMGR_L4_SP_CLK_SRC_PERPLL			0x1
223*de778115SLey Foon Tan 
224*de778115SLey Foon Tan /* Per PLL */
225*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_DENOM_OFFSET		16
226*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_DENOM_MASK			0x003f0000
227*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_NUMER_OFFSET		3
228*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_NUMER_MASK			0x0000fff8
229*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_OUTRESETALL_MASK		0x01000000
230*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_PSRC_OFFSET		22
231*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_PSRC_MASK			0x00c00000
232*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_REGEXTSEL_MASK		0x80000000
233*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_RESET_VALUE		0x8001000d
234*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_SSRC_OFFSET		22
235*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_VCO_SSRC_MASK			0x00c00000
236*de778115SLey Foon Tan 
237*de778115SLey Foon Tan #define CLKMGR_VCO_SSRC_EOSC1				0x0
238*de778115SLey Foon Tan #define CLKMGR_VCO_SSRC_EOSC2				0x1
239*de778115SLey Foon Tan #define CLKMGR_VCO_SSRC_F2S				0x2
240*de778115SLey Foon Tan 
241*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_EMAC0CLK_CNT_OFFSET		0
242*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_EMAC0CLK_CNT_MASK		0x000001ff
243*de778115SLey Foon Tan 
244*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_EMAC1CLK_CNT_OFFSET		0
245*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_EMAC1CLK_CNT_MASK		0x000001ff
246*de778115SLey Foon Tan 
247*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_PERQSPICLK_CNT_OFFSET		0
248*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_PERQSPICLK_CNT_MASK		0x000001ff
249*de778115SLey Foon Tan 
250*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_PERNANDSDMMCCLK_CNT_OFFSET	0
251*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_PERNANDSDMMCCLK_CNT_MASK	0x000001ff
252*de778115SLey Foon Tan 
253*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_PERBASECLK_CNT_OFFSET		0
254*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_PERBASECLK_CNT_MASK		0x000001ff
255*de778115SLey Foon Tan 
256*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_S2FUSER1CLK_CNT_OFFSET		0
257*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_S2FUSER1CLK_CNT_MASK		0x000001ff
258*de778115SLey Foon Tan 
259*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_EN_NANDCLK_MASK		0x00000400
260*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_EN_SDMMCCLK_MASK		0x00000100
261*de778115SLey Foon Tan 
262*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_CAN0CLK_OFFSET		6
263*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_CAN0CLK_MASK		0x000001c0
264*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_CAN1CLK_OFFSET		9
265*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_CAN1CLK_MASK		0x00000e00
266*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_SPIMCLK_OFFSET		3
267*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_SPIMCLK_OFFSET		3
268*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_USBCLK_OFFSET		0
269*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_DIV_USBCLK_MASK		0x00000007
270*de778115SLey Foon Tan 
271*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_GPIODIV_GPIODBCLK_OFFSET	0
272*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_GPIODIV_GPIODBCLK_MASK		0x00ffffff
273*de778115SLey Foon Tan 
274*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_SRC_NAND_OFFSET		2
275*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_SRC_NAND_MASK			0x0000000c
276*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_SRC_QSPI_OFFSET		4
277*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_SRC_QSPI_MASK			0x00000030
278*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_SRC_RESET_VALUE		0x00000015
279*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_SRC_SDMMC_OFFSET		0
280*de778115SLey Foon Tan #define CLKMGR_PERPLLGRP_SRC_SDMMC_MASK			0x00000003
281*de778115SLey Foon Tan #define CLKMGR_SDMMC_CLK_SRC_F2S			0x0
282*de778115SLey Foon Tan #define CLKMGR_SDMMC_CLK_SRC_MAIN			0x1
283*de778115SLey Foon Tan #define CLKMGR_SDMMC_CLK_SRC_PER			0x2
284*de778115SLey Foon Tan #define CLKMGR_QSPI_CLK_SRC_F2S				0x0
285*de778115SLey Foon Tan #define CLKMGR_QSPI_CLK_SRC_MAIN			0x1
286*de778115SLey Foon Tan #define CLKMGR_QSPI_CLK_SRC_PER				0x2
287*de778115SLey Foon Tan 
288*de778115SLey Foon Tan /* SDR PLL */
289*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_DENOM_OFFSET		16
290*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_DENOM_MASK			0x003f0000
291*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_NUMER_OFFSET		3
292*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_NUMER_MASK			0x0000fff8
293*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_OUTRESETALL		BIT(24)
294*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_OFFSET		24
295*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_OUTRESET_OFFSET		25
296*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_OUTRESET_MASK		0x7e000000
297*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_REGEXTSEL_MASK		BIT(31)
298*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_RESET_VALUE		0x8001000d
299*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_SSRC_OFFSET		22
300*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_VCO_SSRC_MASK			0x00c00000
301*de778115SLey Foon Tan 
302*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQSCLK_CNT_OFFSET		0
303*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQSCLK_CNT_MASK		0x000001ff
304*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQSCLK_PHASE_OFFSET		9
305*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQSCLK_PHASE_MASK		0x00000e00
306*de778115SLey Foon Tan 
307*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_CNT_OFFSET		0
308*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_CNT_MASK		0x000001ff
309*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_PHASE_OFFSET	9
310*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_PHASE_MASK		0x00000e00
311*de778115SLey Foon Tan 
312*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQCLK_CNT_OFFSET		0
313*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQCLK_CNT_MASK		0x000001ff
314*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQCLK_PHASE_OFFSET		9
315*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_DDRDQCLK_PHASE_MASK		0x00000e00
316*de778115SLey Foon Tan 
317*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_S2FUSER2CLK_CNT_OFFSET		0
318*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_S2FUSER2CLK_CNT_MASK		0x000001ff
319*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_S2FUSER2CLK_PHASE_OFFSET	9
320*de778115SLey Foon Tan #define CLKMGR_SDRPLLGRP_S2FUSER2CLK_PHASE_MASK		0x00000e00
321*de778115SLey Foon Tan 
322*de778115SLey Foon Tan #endif /* _CLOCK_MANAGER_GEN5_H_ */
323