xref: /arm-trusted-firmware/plat/imx/common/include/imx_clock.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
4*91f16700Schasinglulu  */
5*91f16700Schasinglulu #ifndef IMX_CLOCK_H
6*91f16700Schasinglulu #define IMX_CLOCK_H
7*91f16700Schasinglulu 
8*91f16700Schasinglulu #include <stdint.h>
9*91f16700Schasinglulu #include <stdbool.h>
10*91f16700Schasinglulu 
11*91f16700Schasinglulu struct ccm_pll_ctrl {
12*91f16700Schasinglulu 	uint32_t ccm_pll_ctrl;
13*91f16700Schasinglulu 	uint32_t ccm_pll_ctrl_set;
14*91f16700Schasinglulu 	uint32_t ccm_pll_ctrl_clr;
15*91f16700Schasinglulu 	uint32_t ccm_pll_ctrl_tog;
16*91f16700Schasinglulu };
17*91f16700Schasinglulu 
18*91f16700Schasinglulu /* Clock gate control */
19*91f16700Schasinglulu struct ccm_clk_gate_ctrl {
20*91f16700Schasinglulu 	uint32_t ccm_ccgr;
21*91f16700Schasinglulu 	uint32_t ccm_ccgr_set;
22*91f16700Schasinglulu 	uint32_t ccm_ccgr_clr;
23*91f16700Schasinglulu 	uint32_t ccm_ccgr_tog;
24*91f16700Schasinglulu };
25*91f16700Schasinglulu 
26*91f16700Schasinglulu #define CCM_CCGR_SETTING0_DOM_CLK_NONE		0
27*91f16700Schasinglulu #define CCM_CCGR_SETTING0_DOM_CLK_RUN		BIT(0)
28*91f16700Schasinglulu #define CCM_CCGR_SETTING0_DOM_CLK_RUN_WAIT	BIT(1)
29*91f16700Schasinglulu #define CCM_CCGR_SETTING0_DOM_CLK_ALWAYS	(BIT(1) | BIT(0))
30*91f16700Schasinglulu #define CCM_CCGR_SETTING1_DOM_CLK_NONE		0
31*91f16700Schasinglulu #define CCM_CCGR_SETTING1_DOM_CLK_RUN		BIT(4)
32*91f16700Schasinglulu #define CCM_CCGR_SETTING1_DOM_CLK_RUN_WAIT	BIT(5)
33*91f16700Schasinglulu #define CCM_CCGR_SETTING1_DOM_CLK_ALWAYS	(BIT(5) | BIT(4))
34*91f16700Schasinglulu #define CCM_CCGR_SETTING2_DOM_CLK_NONE		0
35*91f16700Schasinglulu #define CCM_CCGR_SETTING2_DOM_CLK_RUN		BIT(8)
36*91f16700Schasinglulu #define CCM_CCGR_SETTING2_DOM_CLK_RUN_WAIT	BIT(9)
37*91f16700Schasinglulu #define CCM_CCGR_SETTING2_DOM_CLK_ALWAYS	(BIT(9) | BIT(8))
38*91f16700Schasinglulu #define CCM_CCGR_SETTING3_DOM_CLK_NONE		0
39*91f16700Schasinglulu #define CCM_CCGR_SETTING3_DOM_CLK_RUN		BIT(12)
40*91f16700Schasinglulu #define CCM_CCGR_SETTING3_DOM_CLK_RUN_WAIT	BIT(13)
41*91f16700Schasinglulu #define CCM_CCGR_SETTING3_DOM_CLK_ALWAYS	(BIT(13) | BIT(12))
42*91f16700Schasinglulu 
43*91f16700Schasinglulu enum {
44*91f16700Schasinglulu 	CCM_CCGR_ID_ADC = 32,
45*91f16700Schasinglulu 	CCM_CCGR_ID_AIPS1TZ = 10,
46*91f16700Schasinglulu 	CCM_CCGR_ID_AIPS2TZ = 11,
47*91f16700Schasinglulu 	CCM_CCGR_ID_AIPS3TZ = 12,
48*91f16700Schasinglulu 	CCM_CCGR_ID_APBHDMA = 20,
49*91f16700Schasinglulu 	CCM_CCGR_ID_CAAM = 36,
50*91f16700Schasinglulu 	CCM_CCGR_ID_CM4 = 1,
51*91f16700Schasinglulu 	CCM_CCGR_ID_CSI = 73,
52*91f16700Schasinglulu 	CCM_CCGR_ID_CSU = 45,
53*91f16700Schasinglulu 	CCM_CCGR_ID_DAP = 47,
54*91f16700Schasinglulu 	CCM_CCGR_ID_DBGMON = 46,
55*91f16700Schasinglulu 	CCM_CCGR_ID_DDRC = 19,
56*91f16700Schasinglulu 	CCM_CCGR_ID_ECSPI1 = 120,
57*91f16700Schasinglulu 	CCM_CCGR_ID_ECSPI2 = 121,
58*91f16700Schasinglulu 	CCM_CCGR_ID_ECSPI3 = 122,
59*91f16700Schasinglulu 	CCM_CCGR_ID_ECSPI4 = 123,
60*91f16700Schasinglulu 	CCM_CCGR_ID_EIM = 22,
61*91f16700Schasinglulu 	CCM_CCGR_ID_ENET1 = 112,
62*91f16700Schasinglulu 	CCM_CCGR_ID_ENET2 = 113,
63*91f16700Schasinglulu 	CCM_CCGR_ID_EPDC = 74,
64*91f16700Schasinglulu 	CCM_CCGR_ID_FLEXCAN1 = 116,
65*91f16700Schasinglulu 	CCM_CCGR_ID_FLEXCAN2 = 117,
66*91f16700Schasinglulu 	CCM_CCGR_ID_FLEXTIMER1 = 128,
67*91f16700Schasinglulu 	CCM_CCGR_ID_FLEXTIMER2 = 129,
68*91f16700Schasinglulu 	CCM_CCGR_ID_GPIO1 = 160,
69*91f16700Schasinglulu 	CCM_CCGR_ID_GPIO2 = 161,
70*91f16700Schasinglulu 	CCM_CCGR_ID_GPIO3 = 162,
71*91f16700Schasinglulu 	CCM_CCGR_ID_GPIO4 = 163,
72*91f16700Schasinglulu 	CCM_CCGR_ID_GPIO5 = 164,
73*91f16700Schasinglulu 	CCM_CCGR_ID_GPIO6 = 165,
74*91f16700Schasinglulu 	CCM_CCGR_ID_GPIO7 = 166,
75*91f16700Schasinglulu 	CCM_CCGR_ID_GPT1 = 124,
76*91f16700Schasinglulu 	CCM_CCGR_ID_GPT2 = 125,
77*91f16700Schasinglulu 	CCM_CCGR_ID_GPT3 = 126,
78*91f16700Schasinglulu 	CCM_CCGR_ID_GPT4 = 127,
79*91f16700Schasinglulu 	CCM_CCGR_ID_I2C1 = 136,
80*91f16700Schasinglulu 	CCM_CCGR_ID_I2C2 = 137,
81*91f16700Schasinglulu 	CCM_CCGR_ID_I2C3 = 138,
82*91f16700Schasinglulu 	CCM_CCGR_ID_I2C4 = 139,
83*91f16700Schasinglulu 	CCM_CCGR_ID_IOMUXC1 = 168,
84*91f16700Schasinglulu 	CCM_CCGR_ID_IOMUXC2 = 169,
85*91f16700Schasinglulu 	CCM_CCGR_ID_KPP = 120,
86*91f16700Schasinglulu 	CCM_CCGR_ID_LCDIF = 75,
87*91f16700Schasinglulu 	CCM_CCGR_ID_MIPI_CSI = 100,
88*91f16700Schasinglulu 	CCM_CCGR_ID_MIPI_DSI = 101,
89*91f16700Schasinglulu 	CCM_CCGR_ID_MIPI_PHY = 102,
90*91f16700Schasinglulu 	CCM_CCGR_ID_MU = 39,
91*91f16700Schasinglulu 	CCM_CCGR_ID_OCOTP = 35,
92*91f16700Schasinglulu 	CCM_CCGR_ID_OCRAM = 17,
93*91f16700Schasinglulu 	CCM_CCGR_ID_OCRAM_S = 18,
94*91f16700Schasinglulu 	CCM_CCGR_ID_PCIE = 96,
95*91f16700Schasinglulu 	CCM_CCGR_ID_PCIE_PHY = 96,
96*91f16700Schasinglulu 	CCM_CCGR_ID_PERFMON1 = 68,
97*91f16700Schasinglulu 	CCM_CCGR_ID_PERFMON2 = 69,
98*91f16700Schasinglulu 	CCM_CCGR_ID_PWM1 = 132,
99*91f16700Schasinglulu 	CCM_CCGR_ID_PWM2 = 133,
100*91f16700Schasinglulu 	CCM_CCGR_ID_PWM3 = 134,
101*91f16700Schasinglulu 	CCM_CCGR_ID_PMM4 = 135,
102*91f16700Schasinglulu 	CCM_CCGR_ID_PXP = 76,
103*91f16700Schasinglulu 	CCM_CCGR_ID_QOS1 = 42,
104*91f16700Schasinglulu 	CCM_CCGR_ID_QOS2 = 43,
105*91f16700Schasinglulu 	CCM_CCGR_ID_QOS3 = 44,
106*91f16700Schasinglulu 	CCM_CCGR_ID_QUADSPI = 21,
107*91f16700Schasinglulu 	CCM_CCGR_ID_RDC = 38,
108*91f16700Schasinglulu 	CCM_CCGR_ID_ROMCP = 16,
109*91f16700Schasinglulu 	CCM_CCGR_ID_SAI1 = 140,
110*91f16700Schasinglulu 	CCM_CCGR_ID_SAI2 = 141,
111*91f16700Schasinglulu 	CCM_CCGR_ID_SAI3 = 142,
112*91f16700Schasinglulu 	CCM_CCGR_ID_SCTR = 34,
113*91f16700Schasinglulu 	CCM_CCGR_ID_SDMA = 72,
114*91f16700Schasinglulu 	CCM_CCGR_ID_SEC = 49,
115*91f16700Schasinglulu 	CCM_CCGR_ID_SEMA42_1 = 64,
116*91f16700Schasinglulu 	CCM_CCGR_ID_SEMA42_2 = 65,
117*91f16700Schasinglulu 	CCM_CCGR_ID_SIM_DISPLAY = 5,
118*91f16700Schasinglulu 	CCM_CCGR_ID_SIM_ENET = 6,
119*91f16700Schasinglulu 	CCM_CCGR_ID_SIM_M = 7,
120*91f16700Schasinglulu 	CCM_CCGR_ID_SIM_MAIN = 4,
121*91f16700Schasinglulu 	CCM_CCGR_ID_SIM_S = 8,
122*91f16700Schasinglulu 	CCM_CCGR_ID_SIM_WAKEUP = 9,
123*91f16700Schasinglulu 	CCM_CCGR_ID_SIM1 = 144,
124*91f16700Schasinglulu 	CCM_CCGR_ID_SIM2 = 145,
125*91f16700Schasinglulu 	CCM_CCGR_ID_SIM_NAND = 20,
126*91f16700Schasinglulu 	CCM_CCGR_ID_DISPLAY_CM4 = 1,
127*91f16700Schasinglulu 	CCM_CCGR_ID_DRAM = 19,
128*91f16700Schasinglulu 	CCM_CCGR_ID_SNVS = 37,
129*91f16700Schasinglulu 	CCM_CCGR_ID_SPBA = 12,
130*91f16700Schasinglulu 	CCM_CCGR_ID_TRACE = 48,
131*91f16700Schasinglulu 	CCM_CCGR_ID_TZASC = 19,
132*91f16700Schasinglulu 	CCM_CCGR_ID_UART1 = 148,
133*91f16700Schasinglulu 	CCM_CCGR_ID_UART2 = 149,
134*91f16700Schasinglulu 	CCM_CCGR_ID_UART3 = 150,
135*91f16700Schasinglulu 	CCM_CCGR_ID_UART4 = 151,
136*91f16700Schasinglulu 	CCM_CCGR_ID_UART5 = 152,
137*91f16700Schasinglulu 	CCM_CCGR_ID_UART6 = 153,
138*91f16700Schasinglulu 	CCM_CCGR_ID_UART7 = 154,
139*91f16700Schasinglulu 	CCM_CCGR_ID_USB_HS = 40,
140*91f16700Schasinglulu 	CCM_CCGR_ID_USB_IPG = 104,
141*91f16700Schasinglulu 	CCM_CCGR_ID_USB_PHY_480MCLK = 105,
142*91f16700Schasinglulu 	CCM_CCGR_ID_USB_OTG1_PHY = 106,
143*91f16700Schasinglulu 	CCM_CCGR_ID_USB_OTG2_PHY = 107,
144*91f16700Schasinglulu 	CCM_CCGR_ID_USBHDC1 = 108,
145*91f16700Schasinglulu 	CCM_CCGR_ID_USBHDC2 = 109,
146*91f16700Schasinglulu 	CCM_CCGR_ID_USBHDC3 = 110,
147*91f16700Schasinglulu 	CCM_CCGR_ID_WDOG1 = 156,
148*91f16700Schasinglulu 	CCM_CCGR_ID_WDOG2 = 157,
149*91f16700Schasinglulu 	CCM_CCGR_ID_WDOG3 = 158,
150*91f16700Schasinglulu 	CCM_CCGR_ID_WDOG4 = 159,
151*91f16700Schasinglulu };
152*91f16700Schasinglulu 
153*91f16700Schasinglulu /* Clock target block */
154*91f16700Schasinglulu struct ccm_target_root_ctrl {
155*91f16700Schasinglulu 	uint32_t ccm_target_root;
156*91f16700Schasinglulu 	uint32_t ccm_target_root_set;
157*91f16700Schasinglulu 	uint32_t ccm_target_root_clr;
158*91f16700Schasinglulu 	uint32_t ccm_target_root_tog;
159*91f16700Schasinglulu 	uint32_t ccm_misc;
160*91f16700Schasinglulu 	uint32_t ccm_misc_set;
161*91f16700Schasinglulu 	uint32_t ccm_misc_clr;
162*91f16700Schasinglulu 	uint32_t ccm_misc_tog;
163*91f16700Schasinglulu 	uint32_t ccm_post;
164*91f16700Schasinglulu 	uint32_t ccm_post_set;
165*91f16700Schasinglulu 	uint32_t ccm_post_clr;
166*91f16700Schasinglulu 	uint32_t ccm_post_tog;
167*91f16700Schasinglulu 	uint32_t ccm_pre;
168*91f16700Schasinglulu 	uint32_t ccm_pre_set;
169*91f16700Schasinglulu 	uint32_t ccm_pre_clr;
170*91f16700Schasinglulu 	uint32_t ccm_pre_tog;
171*91f16700Schasinglulu 	uint32_t reserved[0x0c];
172*91f16700Schasinglulu 	uint32_t ccm_access_ctrl;
173*91f16700Schasinglulu 	uint32_t ccm_access_ctrl_set;
174*91f16700Schasinglulu 	uint32_t ccm_access_ctrl_clr;
175*91f16700Schasinglulu 	uint32_t ccm_access_ctrl_tog;
176*91f16700Schasinglulu };
177*91f16700Schasinglulu 
178*91f16700Schasinglulu #define CCM_TARGET_ROOT_ENABLE		BIT(28)
179*91f16700Schasinglulu #define CCM_TARGET_MUX(x)		(((x) - 1) << 24)
180*91f16700Schasinglulu #define CCM_TARGET_PRE_PODF(x)		(((x) - 1) << 16)
181*91f16700Schasinglulu #define CCM_TARGET_POST_PODF(x)		((x) - 1)
182*91f16700Schasinglulu 
183*91f16700Schasinglulu /* Target root MUX values - selects the clock source for a block */
184*91f16700Schasinglulu /* ARM_A7_CLK_ROOT */
185*91f16700Schasinglulu 
186*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_OSC_24M			0
187*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_ARM_PLL			BIT(24)
188*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_ENET_PLL_DIV2		BIT(25)
189*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_DDR_PLL			(BIT(25) | BIT(24))
190*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_SYS_PLL			BIT(26)
191*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_SYS_PLL_PFD0		(BIT(26) | BIT(24))
192*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(25))
193*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_A7_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
194*91f16700Schasinglulu 
195*91f16700Schasinglulu /* ARM_M4_CLK_ROOT */
196*91f16700Schasinglulu 
197*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOT_OSC_24M			0
198*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
199*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOT_ENET_PLL_DIV4		BIT(25)
200*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOT_SYS_PLL_PFD2		(BIT(25) | BIT(24))
201*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOT_DDR_PLL_DIV2		BIT(26)
202*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(24))
203*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOTV_IDEO_PLL			(BIT(26) | BIT(25))
204*91f16700Schasinglulu #define CCM_TRGT_MUX_ARM_M4_CLK_ROOTUSB_PLL			((BIT(26) | BIT(25) | BIT(24))
205*91f16700Schasinglulu 
206*91f16700Schasinglulu /* MAIN_AXI_CLK_ROOT */
207*91f16700Schasinglulu 
208*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_OSC_24M			0
209*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_SYS_PLL_PFD1		BIT(24)
210*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_DDR_PLL_DIV2		BIT(25)
211*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_ENET_PLL_DIV4		(BIT(25) | BIT(24))
212*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_SYS_PLL_PFD5		BIT(26)
213*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(24))
214*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
215*91f16700Schasinglulu #define CCM_TRGT_MUX_MAIN_AXI_CLK_ROOT_SYS_PLL_PFD7		((BIT(26) | BIT(25) | BIT(24))
216*91f16700Schasinglulu 
217*91f16700Schasinglulu /* DISP_AXI_CLK_ROOT */
218*91f16700Schasinglulu 
219*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_OSC_24M			0
220*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_SYS_PLL_PFD1		BIT(24)
221*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_DDR_PLL_DIV2		BIT(25)
222*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_ENET_PLL_DIV4		(BIT(25) | BIT(24))
223*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_SYS_PLL_PFD6		BIT(26)
224*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_SYS_PLL_PFD7		(BIT(26) | BIT(24))
225*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(25))
226*91f16700Schasinglulu #define CCM_TRGT_MUX_DISP_AXI_CLK_ROOT_VIDEO_PLL		((BIT(26) | BIT(25) | BIT(24))
227*91f16700Schasinglulu 
228*91f16700Schasinglulu /* ENET_AXI_CLK_ROOT */
229*91f16700Schasinglulu 
230*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_OSC_24M			0
231*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_SYS_PLL_PFD2		BIT(24)
232*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_DDR_PLL_DIV2		BIT(25)
233*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_ENET_PLL_DIV4		(BIT(25) | BIT(24))
234*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_SYS_PLL_DIV2		BIT(26)
235*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(24))
236*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
237*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_AXI_CLK_ROOT_SYS_PLL_PFD4		((BIT(26) | BIT(25) | BIT(24))
238*91f16700Schasinglulu 
239*91f16700Schasinglulu /* NAND_USDHC_BUS_CLK_ROOT */
240*91f16700Schasinglulu 
241*91f16700Schasinglulu #define CM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_OSC_24M		0
242*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_AHB		BIT(24)
243*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_DDR_PLL_DIV2	BIT(25)
244*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_SYS_PLL_DIV2	(BIT(25) | BIT(24))
245*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_SYS_PLL_PFD2_DIV2	BIT(26)
246*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_SYS_PLL_PFD6	(BIT(26) | BIT(24))
247*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_ENET_PLL_DIV4	(BIT(26) | BIT(25))
248*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_USDHC_BUS_CLK_ROOT_AUDIO_PLL		((BIT(26) | BIT(25) | BIT(24))
249*91f16700Schasinglulu 
250*91f16700Schasinglulu /* AHB_CLK_ROOT */
251*91f16700Schasinglulu 
252*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_OSC_24M			0
253*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_SYS_PLL_PFD2			BIT(24)
254*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_DDR_PLL_DIV2			BIT(25)
255*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_SYS_PLL_PFD0			(BIT(25) | BIT(24))
256*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_ENET_PLL_DIV8			BIT(26)
257*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_USB_PLL			(BIT(26) | BIT(24))
258*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(25))
259*91f16700Schasinglulu #define CCM_TRGT_MUX_AHB_CLK_ROOT_VIDEO_PLL			((BIT(26) | BIT(25) | BIT(24))
260*91f16700Schasinglulu 
261*91f16700Schasinglulu /* IPG_CLK_ROOT */
262*91f16700Schasinglulu #define CCM_TRGT_MUX_IPG_CLK_ROOT_AHB_CLK_ROOT			0
263*91f16700Schasinglulu 
264*91f16700Schasinglulu /* DRAM_PHYM_CLK_ROOT */
265*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_CLK_ROOT_DDR_PLL			0
266*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_CLK_ROOT_DRAM_PHYM_ALT_CLK_ROOT	BIT(24)
267*91f16700Schasinglulu 
268*91f16700Schasinglulu /* DRAM_CLK_ROOT */
269*91f16700Schasinglulu 
270*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_CLK_ROOT_DDR_PLL			0
271*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_CLK_ROOT_DRAM_ALT_CLK_ROOT		BIT(24)
272*91f16700Schasinglulu 
273*91f16700Schasinglulu /* DRAM_PHYM_ALT_CLK_ROOT */
274*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_OSC_24M		0
275*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_DDR_PLL_DIV2	BIT(24)
276*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_SYS_PLL		BIT(25)
277*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_ENET_PLL_DIV2	(BIT(25) | BIT(24))
278*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_USB_PLL		BIT(26)
279*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_SYS_PLL_PFD7	(BIT(26) | BIT(24))
280*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(25))
281*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_PHYM_ALT_CLK_ROOT_VIDEO_PLL		((BIT(26) | BIT(25) | BIT(24))
282*91f16700Schasinglulu 
283*91f16700Schasinglulu /* DRAM_ALT_CLK_ROOT */
284*91f16700Schasinglulu 
285*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_OSC_24M			0
286*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_DDR_PLL_DIV2		BIT(24)
287*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_SYS_PLL			BIT(25)
288*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_ENET_PLL_DIV4		(BIT(25) | BIT(24))
289*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_USB_PLL			BIT(26)
290*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_SYS_PLL_PFD0		(BIT(26) | BIT(24))
291*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(25))
292*91f16700Schasinglulu #define CCM_TRGT_MUX_DRAM_ALT_CLK_ROOT_SYS_PLL_PFD2		((BIT(26) | BIT(25) | BIT(24))
293*91f16700Schasinglulu 
294*91f16700Schasinglulu /* USB_HSIC_CLK_ROOT */
295*91f16700Schasinglulu 
296*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_OSC_24M			0
297*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_SYS_PLL			BIT(24)
298*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_USB_PLL			BIT(25)
299*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_SYS_PLL_PFD3		(BIT(25) | BIT(24))
300*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_SYS_PLL_PFD4		BIT(26)
301*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_SYS_PLL_PFD5		(BIT(26) | BIT(24))
302*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_SYS_PLL_PFD6		(BIT(26) | BIT(25))
303*91f16700Schasinglulu #define CCM_TRGT_MUX_USB_HSIC_CLK_ROOT_SYS_PLL_PFD7		((BIT(26) | BIT(25) | BIT(24))
304*91f16700Schasinglulu 
305*91f16700Schasinglulu /* LCDIF_PIXEL_CLK_ROOT */
306*91f16700Schasinglulu 
307*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_OSC_24M		0
308*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_SYS_PLL_PFD5		BIT(24)
309*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_DDR_PLL_DIV2		BIT(25)
310*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_EXT_CLK3		(BIT(25) | BIT(24))
311*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_SYS_PLL_PFD4		BIT(26)
312*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_SYS_PLL_PFD2		(BIT(26) | BIT(24))
313*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
314*91f16700Schasinglulu #define CCM_TRGT_MUX_LCDIF_PIXEL_CLK_ROOT_USB_PLL		((BIT(26) | BIT(25) | BIT(24))
315*91f16700Schasinglulu 
316*91f16700Schasinglulu /* MIPI_DSI_CLK_ROOT */
317*91f16700Schasinglulu 
318*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_OSC_24M			0
319*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_SYS_PLL_PFD5		BIT(24)
320*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_SYS_PLL_PFD3		BIT(25)
321*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_SYS_PLL			(BIT(25) | BIT(24))
322*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_SYS_PLL_PFD0_DIV2	BIT(26)
323*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_DDR_PLL_DIV2		(BIT(26) | BIT(24))
324*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
325*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DSI_CLK_ROOT_AUDIO_PLL		((BIT(26) | BIT(25) | BIT(24))
326*91f16700Schasinglulu 
327*91f16700Schasinglulu /* MIPI_CSI_CLK_ROOT */
328*91f16700Schasinglulu 
329*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_OSC_24M			0
330*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_SYS_PLL_PFD4		BIT(24)
331*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_SYS_PLL_PFD3		BIT(25)
332*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_SYS_PLL			(BIT(25) | BIT(24))
333*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_SYS_PLL_PFD0_DIV2	BIT(26)
334*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_DDR_PLL_DIV2		(BIT(26) | BIT(24))
335*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
336*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_CSI_CLK_ROOT_AUDIO_PLL		((BIT(26) | BIT(25) | BIT(24))
337*91f16700Schasinglulu 
338*91f16700Schasinglulu /* MIPI_DPHY_REF_CLK_ROOT */
339*91f16700Schasinglulu 
340*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_OSC_24M		0
341*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_SYS_PLL_DIV4	BIT(24)
342*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_DDR_PLL_DIV2	BIT(25)
343*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_SYS_PLL_PFD5	(BIT(25) | BIT(24))
344*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_REF_1M		BIT(26)
345*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_EXT_CLK2		(BIT(26) | BIT(24))
346*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
347*91f16700Schasinglulu #define CCM_TRGT_MUX_MIPI_DPHY_REF_CLK_ROOT_EXT_CLK3		((BIT(26) | BIT(25) | BIT(24))
348*91f16700Schasinglulu 
349*91f16700Schasinglulu /* SAI1_CLK_ROOT */
350*91f16700Schasinglulu 
351*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_OSC_24M			0
352*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
353*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_AUDIO_PLL			BIT(25)
354*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
355*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_VIDEO_PLL			BIT(26)
356*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_SYS_PLL_PFD4			(BIT(26) | BIT(24))
357*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_ENET_PLL_DIV8		(BIT(26) | BIT(25))
358*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI1_CLK_ROOT_EXT_CLK2			((BIT(26) | BIT(25) | BIT(24))
359*91f16700Schasinglulu 
360*91f16700Schasinglulu /* SAI2_CLK_ROOT */
361*91f16700Schasinglulu 
362*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_OSC_24M			0
363*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
364*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_AUDIO_PLL			BIT(25)
365*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
366*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_VIDEO_PLL			BIT(26)
367*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_SYS_PLL_PFD4			(BIT(26) | BIT(24))
368*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_ENET_PLL_DIV8		(BIT(26) | BIT(25))
369*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI2_CLK_ROOT_EXT_CLK2			((BIT(26) | BIT(25) | BIT(24))
370*91f16700Schasinglulu 
371*91f16700Schasinglulu /* SAI3_CLK_ROOT */
372*91f16700Schasinglulu 
373*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_OSC_24M			0
374*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
375*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_AUDIO_PLL			BIT(25)
376*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
377*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_VIDEO_PLL			BIT(26)
378*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_SYS_PLL_PFD4			(BIT(26) | BIT(24))
379*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_ENET_PLL_DIV8		(BIT(26) | BIT(25))
380*91f16700Schasinglulu #define CCM_TRGT_MUX_SAI3_CLK_ROOT_EXT_CLK3			((BIT(26) | BIT(25) | BIT(24))
381*91f16700Schasinglulu 
382*91f16700Schasinglulu /* ENET1_REF_CLK_ROOT */
383*91f16700Schasinglulu 
384*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_OSC_24M			0
385*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_ENET_PLL_DIV8		BIT(24)
386*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_ENET_PLL_DIV20		BIT(25)
387*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_ENET_PLL_DIV40		(BIT(25) | BIT(24))
388*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_SYS_PLL_DIV4		BIT(26)
389*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(24))
390*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
391*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_REF_CLK_ROOT_EXT_CLK4		((BIT(26) | BIT(25) | BIT(24))
392*91f16700Schasinglulu 
393*91f16700Schasinglulu /* ENET1_TIME_CLK_ROOT */
394*91f16700Schasinglulu 
395*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_OSC_24M		0
396*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
397*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_AUDIO_PLL		BIT(25)
398*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_EXT_CLK1		(BIT(25) | BIT(24))
399*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_EXT_CLK2		BIT(26)
400*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_EXT_CLK3		(BIT(26) | BIT(24))
401*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_EXT_CLK4		(BIT(26) | BIT(25))
402*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET1_TIME_CLK_ROOT_VIDEO_PLL		((BIT(26) | BIT(25) | BIT(24))
403*91f16700Schasinglulu 
404*91f16700Schasinglulu /* ENET_PHY_REF_CLK_ROOT */
405*91f16700Schasinglulu 
406*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_OSC_24M		0
407*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_ENET_PLL_DIV40	BIT(24)
408*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_ENET_PLL_DIV20	BIT(25)
409*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_ENET_PLL_DIV8	(BIT(25) | BIT(24))
410*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_DDR_PLL_DIV2		BIT(26)
411*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(24))
412*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
413*91f16700Schasinglulu #define CCM_TRGT_MUX_ENET_PHY_REF_CLK_ROOT_SYS_PLL_PFD3		((BIT(26) | BIT(25) | BIT(24))
414*91f16700Schasinglulu 
415*91f16700Schasinglulu /* EIM_CLK_ROOT */
416*91f16700Schasinglulu 
417*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_OSC_24M			0
418*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
419*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
420*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
421*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_SYS_PLL_PFD2			BIT(26)
422*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_SYS_PLL_PFD3			(BIT(26) | BIT(24))
423*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_ENET_PLL_DIV8			(BIT(26) | BIT(25))
424*91f16700Schasinglulu #define CCM_TRGT_MUX_EIM_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
425*91f16700Schasinglulu 
426*91f16700Schasinglulu /* NAND_CLK_ROOT */
427*91f16700Schasinglulu 
428*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_OSC_24M			0
429*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_SYS_PLL			BIT(24)
430*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_DDR_PLL_DIV2			BIT(25)
431*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_SYS_PLL_PFD0			(BIT(25) | BIT(24))
432*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_SYS_PLL_PFD3			BIT(26)
433*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_ENET_PLL_DIV2		(BIT(26) | BIT(24))
434*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_ENET_PLL_DIV4		(BIT(26) | BIT(25))
435*91f16700Schasinglulu #define CCM_TRGT_MUX_NAND_CLK_ROOT_VIDEO_PLL			((BIT(26) | BIT(25) | BIT(24))
436*91f16700Schasinglulu 
437*91f16700Schasinglulu /* QSPI_CLK_ROOT */
438*91f16700Schasinglulu 
439*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_OSC_24M			0
440*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_SYS_PLL_PFD4			BIT(24)
441*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_DDR_PLL_DIV2			BIT(25)
442*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_ENET_PLL_DIV2		(BIT(25) | BIT(24))
443*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_SYS_PLL_PFD3			BIT(26)
444*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_SYS_PLL_PFD2			(BIT(26) | BIT(24))
445*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_SYS_PLL_PFD6			(BIT(26) | BIT(25))
446*91f16700Schasinglulu #define CCM_TRGT_MUX_QSPI_CLK_ROOT_SYS_PLL_PFD7			((BIT(26) | BIT(25) | BIT(24))
447*91f16700Schasinglulu 
448*91f16700Schasinglulu /* USDHC1_CLK_ROOT */
449*91f16700Schasinglulu 
450*91f16700Schasinglulu #define CM_TRGT_MUX_USDHC1_CLK_ROOT_OSC_24M			0
451*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC1_CLK_ROOT_SYS_PLL_PFD0		BIT(24)
452*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC1_CLK_ROOT_DDR_PLL_DIV2		BIT(25)
453*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC1_CLK_ROOT_ENET_PLL_DIV2		(BIT(25) | BIT(24))
454*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC1_CLK_ROOT_SYS_PLL_PFD4		BIT(26)
455*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC1_CLK_ROOT_SYS_PLL_PFD2		(BIT(26) | BIT(24))
456*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC1_CLK_ROOT_SYS_PLL_PFD6		(BIT(26) | BIT(25))
457*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC1_CLK_ROOT_SYS_PLL_PFD7		((BIT(26) | BIT(25) | BIT(24))
458*91f16700Schasinglulu 
459*91f16700Schasinglulu /* USDHC2_CLK_ROOT */
460*91f16700Schasinglulu 
461*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_OSC_24M			0
462*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_SYS_PLL_PFD0		BIT(24)
463*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_DDR_PLL_DIV2		BIT(25)
464*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_ENET_PLL_DIV2		(BIT(25) | BIT(24))
465*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_SYS_PLL_PFD4		BIT(26)
466*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_SYS_PLL_PFD2		(BIT(26) | BIT(24))
467*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_SYS_PLL_PFD6		(BIT(26) | BIT(25))
468*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC2_CLK_ROOT_SYS_PLL_PFD7		((BIT(26) | BIT(25) | BIT(24))
469*91f16700Schasinglulu 
470*91f16700Schasinglulu /* USDHC3_CLK_ROOT */
471*91f16700Schasinglulu 
472*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_OSC_24M			0
473*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_SYS_PLL_PFD0		BIT(24)
474*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_DDR_PLL_DIV2		BIT(25)
475*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_ENET_PLL_DIV2		(BIT(25) | BIT(24))
476*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_SYS_PLL_PFD4		BIT(26)
477*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_SYS_PLL_PFD2		(BIT(26) | BIT(24))
478*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_SYS_PLL_PFD6		(BIT(26) | BIT(25))
479*91f16700Schasinglulu #define CCM_TRGT_MUX_USDHC3_CLK_ROOT_SYS_PLL_PFD7		((BIT(26) | BIT(25) | BIT(24))
480*91f16700Schasinglulu 
481*91f16700Schasinglulu /* CAN1_CLK_ROOT */
482*91f16700Schasinglulu 
483*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_OSC_24M			0
484*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_SYS_PLL_DIV4			BIT(24)
485*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_DDR_PLL_DIV2			BIT(25)
486*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_SYS_PLL			(BIT(25) | BIT(24))
487*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_ENET_PLL_DIV25		BIT(26)
488*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_USB_PLL			(BIT(26) | BIT(24))
489*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_EXT_CLK1			(BIT(26) | BIT(25))
490*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN1_CLK_ROOT_EXT_CLK4			((BIT(26) | BIT(25) | BIT(24))
491*91f16700Schasinglulu 
492*91f16700Schasinglulu /* CAN2_CLK_ROOT */
493*91f16700Schasinglulu 
494*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_OSC_24M			0
495*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_SYS_PLL_DIV4			BIT(24)
496*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_DDR_PLL_DIV2			BIT(25)
497*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_SYS_PLL			(BIT(25) | BIT(24))
498*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_ENET_PLL_DIV25		BIT(26)
499*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_USB_PLL			(BIT(26) | BIT(24))
500*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_EXT_CLK1			(BIT(26) | BIT(25))
501*91f16700Schasinglulu #define CCM_TRGT_MUX_CAN2_CLK_ROOT_EXT_CLK3			((BIT(26) | BIT(25) | BIT(24))
502*91f16700Schasinglulu 
503*91f16700Schasinglulu /* I2C1_CLK_ROOT */
504*91f16700Schasinglulu 
505*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_OSC_24M			0
506*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_SYS_PLL_DIV4			BIT(24)
507*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_ENET_PLL_DIV20		BIT(25)
508*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
509*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_AUDIO_PLL			BIT(26)
510*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_VIDEO_PLL			(BIT(26) | BIT(24))
511*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_USB_PLL			(BIT(26) | BIT(25))
512*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C1_CLK_ROOT_SYS_PLL_PFD2_DIV2		((BIT(26) | BIT(25) | BIT(24))
513*91f16700Schasinglulu 
514*91f16700Schasinglulu /* I2C2_CLK_ROOT */
515*91f16700Schasinglulu 
516*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_OSC_24M			0
517*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_SYS_PLL_DIV4			BIT(24)
518*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_ENET_PLL_DIV20		BIT(25)
519*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
520*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_AUDIO_PLL			BIT(26)
521*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_VIDEO_PLL			(BIT(26) | BIT(24))
522*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_USB_PLL			(BIT(26) | BIT(25))
523*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C2_CLK_ROOT_SYS_PLL_PFD2_DIV2		((BIT(26) | BIT(25) | BIT(24))
524*91f16700Schasinglulu 
525*91f16700Schasinglulu /* I2C3_CLK_ROOT */
526*91f16700Schasinglulu 
527*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_OSC_24M			0
528*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_SYS_PLL_DIV4			BIT(24)
529*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_ENET_PLL_DIV20		BIT(25)
530*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
531*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_AUDIO_PLL			BIT(26)
532*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_VIDEO_PLL			(BIT(26) | BIT(24))
533*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_USB_PLL			(BIT(26) | BIT(25))
534*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C3_CLK_ROOT_SYS_PLL_PFD2_DIV2		((BIT(26) | BIT(25) | BIT(24))
535*91f16700Schasinglulu 
536*91f16700Schasinglulu /* I2C4_CLK_ROOT */
537*91f16700Schasinglulu 
538*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_OSC_24M			0
539*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_SYS_PLL_DIV4			BIT(24)
540*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_ENET_PLL_DIV20		BIT(25)
541*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
542*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_AUDIO_PLL			BIT(26)
543*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_VIDEO_PLL			(BIT(26) | BIT(24))
544*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_USB_PLL			(BIT(26) | BIT(25))
545*91f16700Schasinglulu #define CCM_TRGT_MUX_I2C4_CLK_ROOT_SYS_PLL_PFD2_DIV2		((BIT(26) | BIT(25) | BIT(24))
546*91f16700Schasinglulu 
547*91f16700Schasinglulu /* UART1_CLK_ROOT */
548*91f16700Schasinglulu 
549*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_OSC_24M			0
550*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
551*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
552*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_ENET_PLL_DIV10		(BIT(25) | BIT(24))
553*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_SYS_PLL			BIT(26)
554*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
555*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_EXT_CLK4			(BIT(26) | BIT(25))
556*91f16700Schasinglulu #define CCM_TRGT_MUX_UART1_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
557*91f16700Schasinglulu 
558*91f16700Schasinglulu /* UART2_CLK_ROOT */
559*91f16700Schasinglulu 
560*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_OSC_24M			0
561*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
562*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
563*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_ENET_PLL_DIV10		(BIT(25) | BIT(24))
564*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_SYS_PLL			BIT(26)
565*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
566*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_EXT_CLK3			(BIT(26) | BIT(25))
567*91f16700Schasinglulu #define CCM_TRGT_MUX_UART2_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
568*91f16700Schasinglulu 
569*91f16700Schasinglulu /* UART3_CLK_ROOT */
570*91f16700Schasinglulu 
571*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_OSC_24M			0
572*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
573*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
574*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_ENET_PLL_DIV10		(BIT(25) | BIT(24))
575*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_SYS_PLL			BIT(26)
576*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
577*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_EXT_CLK4			(BIT(26) | BIT(25))
578*91f16700Schasinglulu #define CCM_TRGT_MUX_UART3_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
579*91f16700Schasinglulu 
580*91f16700Schasinglulu /* UART4_CLK_ROOT */
581*91f16700Schasinglulu 
582*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_OSC_24M			0
583*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
584*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
585*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_ENET_PLL_DIV10		(BIT(25) | BIT(24))
586*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_SYS_PLL			BIT(26)
587*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
588*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_EXT_CLK3			(BIT(26) | BIT(25))
589*91f16700Schasinglulu #define CCM_TRGT_MUX_UART4_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
590*91f16700Schasinglulu 
591*91f16700Schasinglulu /* UART5_CLK_ROOT */
592*91f16700Schasinglulu 
593*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_OSC_24M			0
594*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
595*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
596*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_ENET_PLL_DIV10		(BIT(25) | BIT(24))
597*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_SYS_PLL			BIT(26)
598*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
599*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_EXT_CLK4			(BIT(26) | BIT(25))
600*91f16700Schasinglulu #define CCM_TRGT_MUX_UART5_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
601*91f16700Schasinglulu 
602*91f16700Schasinglulu /* UART6_CLK_ROOT */
603*91f16700Schasinglulu 
604*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_OSC_24M			0
605*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
606*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
607*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_ENET_PLL_DIV10		(BIT(25) | BIT(24))
608*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_SYS_PLL			BIT(26)
609*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
610*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_EXT_CLK3			(BIT(26) | BIT(25))
611*91f16700Schasinglulu #define CCM_TRGT_MUX_UART6_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
612*91f16700Schasinglulu 
613*91f16700Schasinglulu /* UART7_CLK_ROOT */
614*91f16700Schasinglulu 
615*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_OSC_24M			0
616*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
617*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
618*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_ENET_PLL_DIV10		(BIT(25) | BIT(24))
619*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_SYS_PLL			BIT(26)
620*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
621*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_EXT_CLK4			(BIT(26) | BIT(25))
622*91f16700Schasinglulu #define CCM_TRGT_MUX_UART7_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
623*91f16700Schasinglulu 
624*91f16700Schasinglulu /* ECSPI1_CLK_ROOT */
625*91f16700Schasinglulu 
626*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_OSC_24M			0
627*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
628*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
629*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_SYS_PLL_DIV4		(BIT(25) | BIT(24))
630*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_SYS_PLL			BIT(26)
631*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_SYS_PLL_PFD4		(BIT(26) | BIT(24))
632*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_ENET_PLL_DIV4		(BIT(26) | BIT(25))
633*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI1_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
634*91f16700Schasinglulu 
635*91f16700Schasinglulu /* ECSPI2_CLK_ROOT */
636*91f16700Schasinglulu 
637*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_OSC_24M			0
638*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
639*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
640*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_SYS_PLL_DIV4		(BIT(25) | BIT(24))
641*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_SYS_PLL			BIT(26)
642*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_SYS_PLL_PFD4		(BIT(26) | BIT(24))
643*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_ENET_PLL_DIV4		(BIT(26) | BIT(25))
644*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI2_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
645*91f16700Schasinglulu 
646*91f16700Schasinglulu /* ECSPI3_CLK_ROOT */
647*91f16700Schasinglulu 
648*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_OSC_24M			0
649*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
650*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
651*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_SYS_PLL_DIV4		(BIT(25) | BIT(24))
652*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_SYS_PLL			BIT(26)
653*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_SYS_PLL_PFD4		(BIT(26) | BIT(24))
654*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_ENET_PLL_DIV4		(BIT(26) | BIT(25))
655*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI3_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
656*91f16700Schasinglulu 
657*91f16700Schasinglulu /* ECSPI4_CLK_ROOT */
658*91f16700Schasinglulu 
659*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_OSC_24M			0
660*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_SYS_PLL_DIV2		BIT(24)
661*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_ENET_PLL_DIV25		BIT(25)
662*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_SYS_PLL_DIV4		(BIT(25) | BIT(24))
663*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_SYS_PLL			BIT(26)
664*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_SYS_PLL_PFD4		(BIT(26) | BIT(24))
665*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_ENET_PLL_DIV4		(BIT(26) | BIT(25))
666*91f16700Schasinglulu #define CCM_TRGT_MUX_ECSPI4_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
667*91f16700Schasinglulu 
668*91f16700Schasinglulu /* PWM1_CLK_ROOT */
669*91f16700Schasinglulu 
670*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_OSC_24M			0
671*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
672*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
673*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
674*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_AUDIO_PLL			BIT(26)
675*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_EXT_CLK1			(BIT(26) | BIT(24))
676*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_REF_1M			(BIT(26) | BIT(25))
677*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM1_CLK_ROOT_VIDEO_PLL			((BIT(26) | BIT(25) | BIT(24))
678*91f16700Schasinglulu 
679*91f16700Schasinglulu /* PWM2_CLK_ROOT */
680*91f16700Schasinglulu 
681*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_OSC_24M			0
682*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
683*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
684*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
685*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_AUDIO_PLL			BIT(26)
686*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_EXT_CLK1			(BIT(26) | BIT(24))
687*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_REF_1M			(BIT(26) | BIT(25))
688*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM2_CLK_ROOT_VIDEO_PLL			((BIT(26) | BIT(25) | BIT(24))
689*91f16700Schasinglulu 
690*91f16700Schasinglulu /* PWM3_CLK_ROOT */
691*91f16700Schasinglulu 
692*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_OSC_24M			0
693*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
694*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
695*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
696*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_AUDIO_PLL			BIT(26)
697*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
698*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_REF_1M			(BIT(26) | BIT(25))
699*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM3_CLK_ROOT_VIDEO_PLL			((BIT(26) | BIT(25) | BIT(24))
700*91f16700Schasinglulu 
701*91f16700Schasinglulu /* PWM4_CLK_ROOT */
702*91f16700Schasinglulu 
703*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_OSC_24M			0
704*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
705*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
706*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
707*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_AUDIO_PLL			BIT(26)
708*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(24))
709*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_REF_1M			(BIT(26) | BIT(25))
710*91f16700Schasinglulu #define CCM_TRGT_MUX_PWM4_CLK_ROOT_VIDEO_PLL			((BIT(26) | BIT(25) | BIT(24))
711*91f16700Schasinglulu 
712*91f16700Schasinglulu /* FLEXTIMER1_CLK_ROOT */
713*91f16700Schasinglulu 
714*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_OSC_24M		0
715*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
716*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_SYS_PLL_DIV4		BIT(25)
717*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
718*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_AUDIO_PLL		BIT(26)
719*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_EXT_CLK3		(BIT(26) | BIT(24))
720*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_REF_1M			(BIT(26) | BIT(25))
721*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER1_CLK_ROOT_VIDEO_PLL		((BIT(26) | BIT(25) | BIT(24))
722*91f16700Schasinglulu 
723*91f16700Schasinglulu /* FLEXTIMER2_CLK_ROOT */
724*91f16700Schasinglulu 
725*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_OSC_24M		0
726*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
727*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_SYS_PLL_DIV4		BIT(25)
728*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
729*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_AUDIO_PLL		BIT(26)
730*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_EXT_CLK3		(BIT(26) | BIT(24))
731*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_REF_1M			(BIT(26) | BIT(25))
732*91f16700Schasinglulu #define CCM_TRGT_MUX_FLEXTIMER2_CLK_ROOT_VIDEO_PLL		((BIT(26) | BIT(25) | BIT(24))
733*91f16700Schasinglulu 
734*91f16700Schasinglulu /* Target SIM1_CLK_ROOT */
735*91f16700Schasinglulu 
736*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_OSC_24M			0
737*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
738*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
739*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
740*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_USB_PLL			BIT(26)
741*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(24))
742*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_ENET_PLL_DIV8		(BIT(26) | BIT(25))
743*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM1_CLK_ROOT_SYS_PLL_PFD7			((BIT(26) | BIT(25) | BIT(24))
744*91f16700Schasinglulu 
745*91f16700Schasinglulu /* Target SIM2_CLK_ROOT */
746*91f16700Schasinglulu 
747*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_OSC_24M			0
748*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
749*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
750*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
751*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_USB_PLL			BIT(26)
752*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_VIDEO_PLL			(BIT(26) | BIT(24))
753*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_ENET_PLL_DIV8		(BIT(26) | BIT(25))
754*91f16700Schasinglulu #define CCM_TRGT_MUX_SIM2_CLK_ROOT_SYS_PLL_PFD7			((BIT(26) | BIT(25) | BIT(24))
755*91f16700Schasinglulu 
756*91f16700Schasinglulu /* Target GPT1_CLK_ROOT */
757*91f16700Schasinglulu 
758*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_OSC_24M			0
759*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
760*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_SYS_PLL_PFD0			BIT(25)
761*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
762*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_VIDEO_PLL			BIT(26)
763*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_REF_1M			(BIT(26) | BIT(24))
764*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(25))
765*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT1_CLK_ROOT_EXT_CLK1			((BIT(26) | BIT(25) | BIT(24))
766*91f16700Schasinglulu 
767*91f16700Schasinglulu /* Target GPT2_CLK_ROOT */
768*91f16700Schasinglulu 
769*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_OSC_24M			0
770*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
771*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_SYS_PLL_PFD0			BIT(25)
772*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
773*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_VIDEO_PLL			BIT(26)
774*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_REF_1M			(BIT(26) | BIT(24))
775*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(25))
776*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT2_CLK_ROOT_EXT_CLK2			((BIT(26) | BIT(25) | BIT(24))
777*91f16700Schasinglulu 
778*91f16700Schasinglulu /* Target GPT3_CLK_ROOT */
779*91f16700Schasinglulu 
780*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_OSC_24M			0
781*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
782*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_SYS_PLL_PFD0			BIT(25)
783*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
784*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_VIDEO_PLL			BIT(26)
785*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_REF_1M			(BIT(26) | BIT(24))
786*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(25))
787*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT3_CLK_ROOT_EXT_CLK3			((BIT(26) | BIT(25) | BIT(24))
788*91f16700Schasinglulu 
789*91f16700Schasinglulu /*Target GPT4_CLK_ROOT */
790*91f16700Schasinglulu 
791*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_OSC_24M			0
792*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_ENET_PLL_DIV10		BIT(24)
793*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_SYS_PLL_PFD0			BIT(25)
794*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_ENET_PLL_DIV25		(BIT(25) | BIT(24))
795*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_VIDEO_PLL			BIT(26)
796*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_REF_1M			(BIT(26) | BIT(24))
797*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_AUDIO_PLL			(BIT(26) | BIT(25))
798*91f16700Schasinglulu #define CCM_TRGT_MUX_GPT4_CLK_ROOT_EXT_CLK4			((BIT(26) | BIT(25) | BIT(24))
799*91f16700Schasinglulu 
800*91f16700Schasinglulu /* Target TRACE_CLK_ROOT */
801*91f16700Schasinglulu 
802*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_OSC_24M			0
803*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
804*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_SYS_PLL_DIV4		BIT(25)
805*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_DDR_PLL_DIV2		(BIT(25) | BIT(24))
806*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_ENET_PLL_DIV8		BIT(26)
807*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_USB_PLL			(BIT(26) | BIT(24))
808*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_EXT_CLK2			(BIT(26) | BIT(25))
809*91f16700Schasinglulu #define CCM_TRGT_MUX_TRACE_CLK_ROOT_EXT_CLK3			((BIT(26) | BIT(25) | BIT(24))
810*91f16700Schasinglulu 
811*91f16700Schasinglulu /* Target WDOG_CLK_ROOT */
812*91f16700Schasinglulu 
813*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_OSC_24M			0
814*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_SYS_PLL_PFD2_DIV2		BIT(24)
815*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_SYS_PLL_DIV4			BIT(25)
816*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_DDR_PLL_DIV2			(BIT(25) | BIT(24))
817*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_ENET_PLL_DIV8		BIT(26)
818*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_USB_PLL			(BIT(26) | BIT(24))
819*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_REF_1M			(BIT(26) | BIT(25))
820*91f16700Schasinglulu #define CCM_TRGT_MUX_WDOG_CLK_ROOT_SYS_PLL_PFD1_DIV2		((BIT(26) | BIT(25) | BIT(24))
821*91f16700Schasinglulu #define WDOG_DEFAULT_CLK_SELECT					(CCM_TARGET_ROOT_ENABLE |\
822*91f16700Schasinglulu 								CCM_TRGT_MUX_WDOG_CLK_ROOT_OSC_24M)
823*91f16700Schasinglulu 
824*91f16700Schasinglulu /* Target CSI_MCLK_CLK_ROOT */
825*91f16700Schasinglulu 
826*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_OSC_24M			0
827*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_SYS_PLL_PFD2_DIV2	BIT(24)
828*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_SYS_PLL_DIV4		BIT(25)
829*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_DDR_PLL_DIV2		(BIT(25) | BIT(24))
830*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_ENET_PLL_DIV8		BIT(26)
831*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(24))
832*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
833*91f16700Schasinglulu #define CCM_TRGT_MUX_CSI_MCLK_CLK_ROOT_USB_PLL			((BIT(26) | BIT(25) | BIT(24))
834*91f16700Schasinglulu 
835*91f16700Schasinglulu /* Target AUDIO_MCLK_CLK_ROOT */
836*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_OSC_24M		0
837*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_SYS_PLL_PFD2_DIV2	BIT(24)
838*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_SYS_PLL_DIV4		BIT(25)
839*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_DDR_PLL_DIV2		(BIT(25) | BIT(24))
840*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_ENET_PLL_DIV8		BIT(26)
841*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_AUDIO_PLL		(BIT(26) | BIT(24))
842*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_VIDEO_PLL		(BIT(26) | BIT(25))
843*91f16700Schasinglulu #define CCM_TRGT_MUX_AUDIO_MCLK_CLK_ROOT_USB_PLL		((BIT(26) | BIT(25) | BIT(24))
844*91f16700Schasinglulu 
845*91f16700Schasinglulu /* Target CCM_CLKO1 */
846*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_OSC_24M				0
847*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_SYS_PLL				BIT(24)
848*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_SYS_PLL_DIV2			BIT(25)
849*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_SYS_PLL_PFD0_DIV2		(BIT(25) | BIT(24))
850*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_SYS_PLL_PFD3			BIT(26)
851*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_ENET_PLL_DIV2			(BIT(26) | BIT(24))
852*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_DDR_PLL_DIV2			(BIT(26) | BIT(25))
853*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO1_REF_1M				((BIT(26) | BIT(25) | BIT(24))
854*91f16700Schasinglulu 
855*91f16700Schasinglulu /* Target CCM_CLKO2 */
856*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_OSC_24M				0
857*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_SYS_PLL_DIV2			BIT(24)
858*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_SYS_PLL_PFD0			BIT(25)
859*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_SYS_PLL_PFD1_DIV2		(BIT(25) | BIT(24))
860*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_SYS_PLL_PFD4			BIT(26)
861*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_AUDIO_PLL			(BIT(26) | BIT(24))
862*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_VIDEO_PLL			(BIT(26) | BIT(25))
863*91f16700Schasinglulu #define CCM_TRGT_MUX_CCM_CLKO2_OSC_32K				((BIT(26) | BIT(25) | BIT(24))
864*91f16700Schasinglulu 
865*91f16700Schasinglulu /*
866*91f16700Schasinglulu  * See Table 5-11 in i.MX7 Solo Reference manual rev 0.1
867*91f16700Schasinglulu  * The indices must be calculated by dividing the offset by
868*91f16700Schasinglulu  * sizeof (struct ccm_target_root_ctrl) => 0x80 bytes for each index
869*91f16700Schasinglulu  */
870*91f16700Schasinglulu enum {
871*91f16700Schasinglulu 	CCM_TRT_ID_ARM_A7_CLK_ROOT = 0,
872*91f16700Schasinglulu 	CCM_TRT_ID_ARM_M4_CLK_ROOT = 1,
873*91f16700Schasinglulu 	CCM_TRT_ID_MAIN_AXI_CLK_ROOT = 16,
874*91f16700Schasinglulu 	CCM_TRT_ID_DISP_AXI_CLK_ROOT = 17,
875*91f16700Schasinglulu 	CCM_TRT_ID_ENET_AXI_CLK_ROOT = 18,
876*91f16700Schasinglulu 	CCM_TRT_ID_NAND_USDHC_BUS_CLK_ROOT = 19,
877*91f16700Schasinglulu 	CCM_TRT_ID_AHB_CLK_ROOT = 32,
878*91f16700Schasinglulu 	CCM_TRT_ID_IPG_CLK_ROOT = 33,
879*91f16700Schasinglulu 	CCM_TRT_ID_DRAM_PHYM_CLK_ROOT = 48,
880*91f16700Schasinglulu 	CCM_TRT_ID_DRAM_CLK_ROOT = 49,
881*91f16700Schasinglulu 	CCM_TRT_ID_DRAM_PHYM_ALT_CLK_ROOT = 64,
882*91f16700Schasinglulu 	CCM_TRT_ID_DRAM_ALT_CLK_ROOT = 65,
883*91f16700Schasinglulu 	CCM_TRT_ID_USB_HSIC_CLK_ROOT = 66,
884*91f16700Schasinglulu 	CCM_TRT_ID_LCDIF_PIXEL_CLK_ROOT = 70,
885*91f16700Schasinglulu 	CCM_TRT_ID_MIPI_DSI_CLK_ROOT = 71,
886*91f16700Schasinglulu 	CCM_TRT_ID_MIPI_CSI_CLK_ROOT = 72,
887*91f16700Schasinglulu 	CCM_TRT_ID_MIPI_DPHY_REF_CLK_ROOT = 73,
888*91f16700Schasinglulu 	CCM_TRT_ID_SAI1_CLK_ROOT = 74,
889*91f16700Schasinglulu 	CCM_TRT_ID_SAI2_CLK_ROOT = 75,
890*91f16700Schasinglulu 	CCM_TRT_ID_SAI3_CLK_ROOT = 76,
891*91f16700Schasinglulu 	CCM_TRT_ID_ENET1_REF_CLK_ROOT = 78,
892*91f16700Schasinglulu 	CCM_TRT_ID_ENET1_TIME_CLK_ROOT = 79,
893*91f16700Schasinglulu 	CCM_TRT_ID_ENET_PHY_REF_CLK_ROOT = 82,
894*91f16700Schasinglulu 	CCM_TRT_ID_EIM_CLK_ROOT = 83,
895*91f16700Schasinglulu 	CCM_TRT_ID_NAND_CLK_ROOT = 84,
896*91f16700Schasinglulu 	CCM_TRT_ID_QSPI_CLK_ROOT = 85,
897*91f16700Schasinglulu 	CCM_TRT_ID_USDHC1_CLK_ROOT = 86,
898*91f16700Schasinglulu 	CCM_TRT_ID_USDHC2_CLK_ROOT = 87,
899*91f16700Schasinglulu 	CCM_TRT_ID_USDHC3_CLK_ROOT = 88,
900*91f16700Schasinglulu 	CCM_TRT_ID_CAN1_CLK_ROOT = 89,
901*91f16700Schasinglulu 	CCM_TRT_ID_CAN2_CLK_ROOT = 90,
902*91f16700Schasinglulu 	CCM_TRT_ID_I2C1_CLK_ROOT = 91,
903*91f16700Schasinglulu 	CCM_TRT_ID_I2C2_CLK_ROOT = 92,
904*91f16700Schasinglulu 	CCM_TRT_ID_I2C3_CLK_ROOT = 93,
905*91f16700Schasinglulu 	CCM_TRT_ID_I2C4_CLK_ROOT = 94,
906*91f16700Schasinglulu 	CCM_TRT_ID_UART1_CLK_ROOT = 95,
907*91f16700Schasinglulu 	CCM_TRT_ID_UART2_CLK_ROOT = 96,
908*91f16700Schasinglulu 	CCM_TRT_ID_UART3_CLK_ROOT = 97,
909*91f16700Schasinglulu 	CCM_TRT_ID_UART4_CLK_ROOT = 98,
910*91f16700Schasinglulu 	CCM_TRT_ID_UART5_CLK_ROOT = 99,
911*91f16700Schasinglulu 	CCM_TRT_ID_UART6_CLK_ROOT = 100,
912*91f16700Schasinglulu 	CCM_TRT_ID_UART7_CLK_ROOT = 101,
913*91f16700Schasinglulu 	CCM_TRT_ID_ECSPI1_CLK_ROOT = 102,
914*91f16700Schasinglulu 	CCM_TRT_ID_ECSPI2_CLK_ROOT = 103,
915*91f16700Schasinglulu 	CCM_TRT_ID_ECSPI3_CLK_ROOT = 104,
916*91f16700Schasinglulu 	CCM_TRT_ID_ECSPI4_CLK_ROOT = 105,
917*91f16700Schasinglulu 	CCM_TRT_ID_PWM1_CLK_ROOT = 106,
918*91f16700Schasinglulu 	CCM_TRT_ID_PWM2_CLK_ROOT = 107,
919*91f16700Schasinglulu 	CCM_TRT_ID_PWM3_CLK_ROOT = 108,
920*91f16700Schasinglulu 	CCM_TRT_ID_PWM4_CLK_ROOT = 109,
921*91f16700Schasinglulu 	CCM_TRT_ID_FLEXTIMER1_CLK_ROOT = 110,
922*91f16700Schasinglulu 	CCM_TRT_ID_FLEXTIMER2_CLK_ROOT = 111,
923*91f16700Schasinglulu 	CCM_TRT_ID_SIM1_CLK_ROOT = 112,
924*91f16700Schasinglulu 	CCM_TRT_ID_SIM2_CLK_ROOT = 113,
925*91f16700Schasinglulu 	CCM_TRT_ID_GPT1_CLK_ROOT = 114,
926*91f16700Schasinglulu 	CCM_TRT_ID_GPT2_CLK_ROOT = 115,
927*91f16700Schasinglulu 	CCM_TRT_ID_GPT3_CLK_ROOT = 116,
928*91f16700Schasinglulu 	CCM_TRT_ID_GPT4_CLK_ROOT = 117,
929*91f16700Schasinglulu 	CCM_TRT_ID_TRACE_CLK_ROOT = 118,
930*91f16700Schasinglulu 	CCM_TRT_ID_WDOG_CLK_ROOT = 119,
931*91f16700Schasinglulu 	CCM_TRT_ID_CSI_MCLK_CLK_ROOT = 120,
932*91f16700Schasinglulu 	CCM_TRT_ID_AUDIO_MCLK_CLK_ROOT = 121,
933*91f16700Schasinglulu 	CCM_TRT_ID_CCM_CLKO1 = 123,
934*91f16700Schasinglulu 	CCM_TRT_ID_CCM_CLKO2 = 124,
935*91f16700Schasinglulu };
936*91f16700Schasinglulu 
937*91f16700Schasinglulu #define CCM_MISC_VIOLATE		BIT(8)
938*91f16700Schasinglulu #define CCM_MISC_TIMEOUT		BIT(4)
939*91f16700Schasinglulu #define CCM_MISC_AUTHEN_FAIL		BIT(0)
940*91f16700Schasinglulu 
941*91f16700Schasinglulu #define CCM_POST_BUSY2			BIT(31)
942*91f16700Schasinglulu #define CCM_POST_SELECT_BRANCH_A	BIT(28)
943*91f16700Schasinglulu #define CCM_POST_BUSY1			BIT(7)
944*91f16700Schasinglulu #define CCM_POST_POST_PODF(x)		((x) - 1)
945*91f16700Schasinglulu 
946*91f16700Schasinglulu #define CCM_PRE_BUSY4			BIT(31)
947*91f16700Schasinglulu #define CCM_PRE_ENABLE_A		BIT(28)
948*91f16700Schasinglulu #define CCM_PRE_MUX_A(x)		(((x) - 1) << 24)
949*91f16700Schasinglulu #define CCM_PRE_BUSY3			BIT(19)
950*91f16700Schasinglulu #define CCM_PRE_PODF_A(x)		(((x) - 1) << 16)
951*91f16700Schasinglulu #define CCM_PRE_BUSY1			BIT(15)
952*91f16700Schasinglulu #define CCM_PRE_ENABLE_B		BIT(12)
953*91f16700Schasinglulu #define CCM_PRE_MUX_B(x)		(((x) - 1) << 8)
954*91f16700Schasinglulu #define CCM_PRE_BUSY0			BIT(3)
955*91f16700Schasinglulu #define CCM_PRE_POST_PODF(x)		((x) - 1)
956*91f16700Schasinglulu 
957*91f16700Schasinglulu #define CCM_ACCESS_CTRL_LOCK		BIT(31)
958*91f16700Schasinglulu #define CCM_ACCESS_SEMA_ENABLE		BIT(28)
959*91f16700Schasinglulu #define CCM_ACCESS_DOM3_WHITELIST	BIT(27)
960*91f16700Schasinglulu #define CCM_ACCESS_DOM2_WHITELIST	BIT(26)
961*91f16700Schasinglulu #define CCM_ACCESS_DOM1_WHITELIST	BIT(25)
962*91f16700Schasinglulu #define CCM_ACCESS_DOM0_WHITELIST	BIT(24)
963*91f16700Schasinglulu #define CCM_ACCESS_MUTEX		BIT(20)
964*91f16700Schasinglulu #define CCM_ACCESS_OWNER_ID(x)		((x) << 16)
965*91f16700Schasinglulu #define CCM_ACCESS_DOM3_INFO(x)		((x) << 12)
966*91f16700Schasinglulu #define CCM_ACCESS_DOM2_INFO(x)		((x) << 8)
967*91f16700Schasinglulu #define CCM_ACCESS_DOM1_INFO(x)		((x) << 4)
968*91f16700Schasinglulu #define CCM_ACCESS_DOM0_INFO(x)		(x)
969*91f16700Schasinglulu 
970*91f16700Schasinglulu #define CCM_PLL_CTRL_NUM	0x21
971*91f16700Schasinglulu #define CCM_CLK_GATE_CTRL_NUM	0xbf
972*91f16700Schasinglulu #define CCM_ROOT_CTRL_NUM	0x79
973*91f16700Schasinglulu 
974*91f16700Schasinglulu struct ccm {
975*91f16700Schasinglulu 	uint32_t ccm_gpr0;
976*91f16700Schasinglulu 	uint32_t ccm_gpr0_set;
977*91f16700Schasinglulu 	uint32_t ccm_gpr0_clr;
978*91f16700Schasinglulu 	uint32_t ccm_grp0_tog;
979*91f16700Schasinglulu 	uint32_t reserved[0x1fc];
980*91f16700Schasinglulu 	struct ccm_pll_ctrl ccm_pll_ctrl[CCM_PLL_CTRL_NUM];
981*91f16700Schasinglulu 	uint32_t reserved1[0xd7c];
982*91f16700Schasinglulu 	struct ccm_clk_gate_ctrl ccm_clk_gate_ctrl[CCM_CLK_GATE_CTRL_NUM];
983*91f16700Schasinglulu 	uint32_t reserved2[0xd04];
984*91f16700Schasinglulu 	struct ccm_target_root_ctrl ccm_root_ctrl[CCM_ROOT_CTRL_NUM];
985*91f16700Schasinglulu };
986*91f16700Schasinglulu 
987*91f16700Schasinglulu void imx_clock_target_set(unsigned int id, uint32_t val);
988*91f16700Schasinglulu void imx_clock_target_clr(unsigned int id, uint32_t val);
989*91f16700Schasinglulu void imx_clock_gate_enable(unsigned int id, bool enable);
990*91f16700Schasinglulu 
991*91f16700Schasinglulu void imx_clock_init(void);
992*91f16700Schasinglulu 
993*91f16700Schasinglulu void imx_clock_enable_uart(unsigned int uart_id, uint32_t uart_clk_en_bits);
994*91f16700Schasinglulu void imx_clock_disable_uart(unsigned int uart_id);
995*91f16700Schasinglulu void imx_clock_enable_usdhc(unsigned int usdhc_id, uint32_t usdhc_clk_en_bits);
996*91f16700Schasinglulu void imx_clock_set_wdog_clk_root_bits(uint32_t wdog_clk_root_en_bits);
997*91f16700Schasinglulu void imx_clock_enable_wdog(unsigned int wdog_id);
998*91f16700Schasinglulu void imx_clock_disable_wdog(unsigned int wdog_id);
999*91f16700Schasinglulu void imx_clock_enable_usb(unsigned int usb_id);
1000*91f16700Schasinglulu void imx_clock_disable_usb(unsigned int usb_id);
1001*91f16700Schasinglulu void imx_clock_set_usb_clk_root_bits(uint32_t usb_clk_root_en_bits);
1002*91f16700Schasinglulu 
1003*91f16700Schasinglulu #endif /* IMX_CLOCK_H */
1004