xref: /openbsd/sys/dev/fdt/imxccm_clocks.h (revision 37c734d3)
14bed6a7dSpatrick /* Public Domain */
24bed6a7dSpatrick 
34bed6a7dSpatrick /*
44bed6a7dSpatrick  * i.MX6Q clocks.
54bed6a7dSpatrick  */
64bed6a7dSpatrick 
74bed6a7dSpatrick #define IMX6_CLK_IPG		0x3e
84bed6a7dSpatrick #define IMX6_CLK_IPG_PER	0x3f
9e45f7b26Spatrick #define IMX6_CLK_ECSPI_ROOT	0x47
104bed6a7dSpatrick #define IMX6_CLK_ARM		0x68
114bed6a7dSpatrick #define IMX6_CLK_AHB		0x69
12e45f7b26Spatrick #define IMX6_CLK_ECSPI2		0x71
134bed6a7dSpatrick #define IMX6_CLK_ENET		0x75
144bed6a7dSpatrick #define IMX6_CLK_I2C1		0x7d
154bed6a7dSpatrick #define IMX6_CLK_I2C2		0x7e
164bed6a7dSpatrick #define IMX6_CLK_I2C3		0x7f
174bed6a7dSpatrick #define IMX6_CLK_SATA		0x9a
184bed6a7dSpatrick #define IMX6_CLK_UART_IPG	0xa0
194bed6a7dSpatrick #define IMX6_CLK_UART_SERIAL	0xa1
204bed6a7dSpatrick #define IMX6_CLK_USBOH3		0xa2
214bed6a7dSpatrick #define IMX6_CLK_USDHC1		0xa3
224bed6a7dSpatrick #define IMX6_CLK_USDHC2		0xa4
234bed6a7dSpatrick #define IMX6_CLK_USDHC3		0xa5
244bed6a7dSpatrick #define IMX6_CLK_USDHC4		0xa6
256c60662eSkettenis #define IMX6_CLK_PLL3_USB_OTG	0xac
266c60662eSkettenis #define IMX6_CLK_PLL7_USB_HOST	0xb0
276c60662eSkettenis #define IMX6_CLK_PLL6_ENET	0xb1
284bed6a7dSpatrick #define IMX6_CLK_USBPHY1	0xb6
294bed6a7dSpatrick #define IMX6_CLK_USBPHY2	0xb7
304bed6a7dSpatrick #define IMX6_CLK_SATA_REF	0xba
314bed6a7dSpatrick #define IMX6_CLK_SATA_REF_100	0xbb
324bed6a7dSpatrick #define IMX6_CLK_ENET_REF	0xbe
336c60662eSkettenis #define IMX6_CLK_PLL3		0xe1
346c60662eSkettenis #define IMX6_CLK_PLL6		0xe4
356c60662eSkettenis #define IMX6_CLK_PLL7		0xe5
364bed6a7dSpatrick 
37*37c734d3Snaddy const struct imxccm_gate imx6_gates[] = {
38e45f7b26Spatrick 	[IMX6_CLK_ECSPI2] = { CCM_CCGR1, 1, IMX6_CLK_ECSPI_ROOT },
394bed6a7dSpatrick 	[IMX6_CLK_ENET] = { CCM_CCGR1, 5, IMX6_CLK_IPG },
404bed6a7dSpatrick 	[IMX6_CLK_I2C1] = { CCM_CCGR2, 3, IMX6_CLK_IPG_PER },
414bed6a7dSpatrick 	[IMX6_CLK_I2C2] = { CCM_CCGR2, 4, IMX6_CLK_IPG_PER },
424bed6a7dSpatrick 	[IMX6_CLK_I2C3] = { CCM_CCGR2, 5, IMX6_CLK_IPG_PER },
434bed6a7dSpatrick 	[IMX6_CLK_SATA] = { CCM_CCGR5, 2 },
444bed6a7dSpatrick 	[IMX6_CLK_UART_IPG] = { CCM_CCGR5, 12, IMX6_CLK_IPG },
454bed6a7dSpatrick 	[IMX6_CLK_UART_SERIAL] = { CCM_CCGR5, 13 },
464bed6a7dSpatrick 	[IMX6_CLK_USBOH3] = { CCM_CCGR6, 0 },
474bed6a7dSpatrick 	[IMX6_CLK_USDHC1] = { CCM_CCGR6, 1 },
484bed6a7dSpatrick 	[IMX6_CLK_USDHC2] = { CCM_CCGR6, 2 },
494bed6a7dSpatrick 	[IMX6_CLK_USDHC3] = { CCM_CCGR6, 3 },
504bed6a7dSpatrick 	[IMX6_CLK_USDHC4] = { CCM_CCGR6, 4 },
514bed6a7dSpatrick };
524bed6a7dSpatrick 
534bed6a7dSpatrick /*
544bed6a7dSpatrick  * i.MX6UL clocks.
554bed6a7dSpatrick  */
564bed6a7dSpatrick 
574bed6a7dSpatrick #define IMX6UL_CLK_ARM		0x5d
584bed6a7dSpatrick #define IMX6UL_CLK_PERCLK	0x63
594bed6a7dSpatrick #define IMX6UL_CLK_IPG		0x64
604bed6a7dSpatrick #define IMX6UL_CLK_GPT1_BUS	0x98
614bed6a7dSpatrick #define IMX6UL_CLK_GPT1_SERIAL	0x99
624bed6a7dSpatrick #define IMX6UL_CLK_I2C1		0x9c
634bed6a7dSpatrick #define IMX6UL_CLK_I2C2		0x9d
644bed6a7dSpatrick #define IMX6UL_CLK_I2C3		0x9e
654bed6a7dSpatrick #define IMX6UL_CLK_I2C4		0x9f
664bed6a7dSpatrick #define IMX6UL_CLK_UART1_IPG	0xbd
674bed6a7dSpatrick #define IMX6UL_CLK_UART1_SERIAL	0xbe
684bed6a7dSpatrick #define IMX6UL_CLK_USBOH3	0xcd
694bed6a7dSpatrick #define IMX6UL_CLK_USDHC1	0xce
704bed6a7dSpatrick #define IMX6UL_CLK_USDHC2	0xcf
714bed6a7dSpatrick 
72*37c734d3Snaddy const struct imxccm_gate imx6ul_gates[] = {
734bed6a7dSpatrick 	[IMX6UL_CLK_GPT1_BUS] = { CCM_CCGR1, 10, IMX6UL_CLK_PERCLK },
744bed6a7dSpatrick 	[IMX6UL_CLK_GPT1_SERIAL] = { CCM_CCGR1, 11, IMX6UL_CLK_PERCLK },
754bed6a7dSpatrick 	[IMX6UL_CLK_I2C1] = { CCM_CCGR2, 3, IMX6UL_CLK_PERCLK },
764bed6a7dSpatrick 	[IMX6UL_CLK_I2C2] = { CCM_CCGR2, 4, IMX6UL_CLK_PERCLK },
774bed6a7dSpatrick 	[IMX6UL_CLK_I2C3] = { CCM_CCGR2, 5, IMX6UL_CLK_PERCLK },
784bed6a7dSpatrick 	[IMX6UL_CLK_I2C4] = { CCM_CCGR6, 12, IMX6UL_CLK_PERCLK },
794bed6a7dSpatrick 	[IMX6UL_CLK_UART1_IPG] = { CCM_CCGR5, 12, IMX6UL_CLK_IPG },
804bed6a7dSpatrick 	[IMX6UL_CLK_UART1_SERIAL] = { CCM_CCGR5, 12 },
814bed6a7dSpatrick 	[IMX6UL_CLK_USBOH3] = { CCM_CCGR6, 0 },
824bed6a7dSpatrick 	[IMX6UL_CLK_USDHC1] = { CCM_CCGR6, 1 },
834bed6a7dSpatrick 	[IMX6UL_CLK_USDHC2] = { CCM_CCGR6, 2 },
844bed6a7dSpatrick };
85e88e8a4fSpatrick 
86e88e8a4fSpatrick /*
87b7ac005eSkettenis  * i.MX7D clocks.
88b7ac005eSkettenis  */
89b7ac005eSkettenis 
9058d1c2c8Skettenis #define IMX7D_PLL_ENET_MAIN_125M_CLK	0x2a
9158d1c2c8Skettenis #define IMX7D_ENET_AXI_ROOT_CLK		0x52
9258d1c2c8Skettenis #define IMX7D_ENET_AXI_ROOT_SRC		0x53
9358d1c2c8Skettenis #define IMX7D_ENET_AXI_ROOT_CG		0x54
9458d1c2c8Skettenis #define IMX7D_ENET_AXI_ROOT_DIV		0x55
95f984b708Skettenis #define IMX7D_ENET1_IPG_ROOT_CLK	0x9e
9658d1c2c8Skettenis #define IMX7D_ENET1_TIME_ROOT_CLK	0xa2
9758d1c2c8Skettenis #define IMX7D_ENET1_TIME_ROOT_SRC	0xa3
9858d1c2c8Skettenis #define IMX7D_ENET1_TIME_ROOT_CG	0xa4
9958d1c2c8Skettenis #define IMX7D_ENET1_TIME_ROOT_DIV	0xa5
100f984b708Skettenis #define IMX7D_ENET2_IPG_ROOT_CLK	0xa6
10158d1c2c8Skettenis #define IMX7D_ENET2_TIME_ROOT_CLK	0xaa
10258d1c2c8Skettenis #define IMX7D_ENET2_TIME_ROOT_SRC	0xab
10358d1c2c8Skettenis #define IMX7D_ENET2_TIME_ROOT_CG	0xac
10458d1c2c8Skettenis #define IMX7D_ENET2_TIME_ROOT_DIV	0xad
10558d1c2c8Skettenis #define IMX7D_ENET_PHY_REF_ROOT_CLK	0xae
10658d1c2c8Skettenis #define IMX7D_ENET_PHY_REF_ROOT_SRC	0xaf
10758d1c2c8Skettenis #define IMX7D_ENET_PHY_REF_ROOT_CG	0xb0
10858d1c2c8Skettenis #define IMX7D_ENET_PHY_REF_ROOT_DIV	0xb1
109b7ac005eSkettenis #define IMX7D_USDHC1_ROOT_CLK		0xbe
110b7ac005eSkettenis #define IMX7D_USDHC1_ROOT_SRC		0xbf
111b7ac005eSkettenis #define IMX7D_USDHC1_ROOT_CG		0xc0
112b7ac005eSkettenis #define IMX7D_USDHC1_ROOT_DIV		0xc1
113b7ac005eSkettenis #define IMX7D_USDHC2_ROOT_CLK		0xc2
114b7ac005eSkettenis #define IMX7D_USDHC2_ROOT_SRC		0xc3
115b7ac005eSkettenis #define IMX7D_USDHC2_ROOT_CG		0xc4
116b7ac005eSkettenis #define IMX7D_USDHC2_ROOT_DIV		0xc5
117b7ac005eSkettenis #define IMX7D_USDHC3_ROOT_CLK		0xc6
118b7ac005eSkettenis #define IMX7D_USDHC3_ROOT_SRC		0xc7
119b7ac005eSkettenis #define IMX7D_USDHC3_ROOT_CG		0xc8
120b7ac005eSkettenis #define IMX7D_USDHC3_ROOT_DIV		0xc9
121b7ac005eSkettenis #define IMX7D_I2C1_ROOT_CLK		0xd2
122b7ac005eSkettenis #define IMX7D_I2C1_ROOT_SRC		0xd3
123b7ac005eSkettenis #define IMX7D_I2C1_ROOT_CG		0xd4
124b7ac005eSkettenis #define IMX7D_I2C1_ROOT_DIV		0xd5
125b7ac005eSkettenis #define IMX7D_I2C2_ROOT_CLK		0xd6
126b7ac005eSkettenis #define IMX7D_I2C2_ROOT_SRC		0xd7
127b7ac005eSkettenis #define IMX7D_I2C2_ROOT_CG		0xd8
128b7ac005eSkettenis #define IMX7D_I2C2_ROOT_DIV		0xd9
129b7ac005eSkettenis #define IMX7D_I2C3_ROOT_CLK		0xda
130b7ac005eSkettenis #define IMX7D_I2C3_ROOT_SRC		0xdb
131b7ac005eSkettenis #define IMX7D_I2C3_ROOT_CG		0xdc
132b7ac005eSkettenis #define IMX7D_I2C3_ROOT_DIV		0xdd
133b7ac005eSkettenis #define IMX7D_I2C4_ROOT_CLK		0xde
134b7ac005eSkettenis #define IMX7D_I2C4_ROOT_SRC		0xdf
135b7ac005eSkettenis #define IMX7D_I2C4_ROOT_CG		0xe0
136b7ac005eSkettenis #define IMX7D_I2C4_ROOT_DIV		0xe1
137b7ac005eSkettenis #define IMX7D_UART1_ROOT_CLK		0xe2
138b7ac005eSkettenis #define IMX7D_UART1_ROOT_SRC		0xe3
139b7ac005eSkettenis #define IMX7D_UART1_ROOT_CG		0xe4
140b7ac005eSkettenis #define IMX7D_UART1_ROOT_DIV		0xe5
141b7ac005eSkettenis #define IMX7D_UART2_ROOT_CLK		0xe6
142b7ac005eSkettenis #define IMX7D_UART2_ROOT_SRC		0xe7
143b7ac005eSkettenis #define IMX7D_UART2_ROOT_CG		0xe8
144b7ac005eSkettenis #define IMX7D_UART2_ROOT_DIV		0xe9
145b7ac005eSkettenis #define IMX7D_UART3_ROOT_CLK		0xea
146b7ac005eSkettenis #define IMX7D_UART3_ROOT_SRC		0xeb
147b7ac005eSkettenis #define IMX7D_UART3_ROOT_CG		0xec
148b7ac005eSkettenis #define IMX7D_UART3_ROOT_DIV		0xed
149b7ac005eSkettenis #define IMX7D_UART4_ROOT_CLK		0xee
150b7ac005eSkettenis #define IMX7D_UART4_ROOT_SRC		0xef
151b7ac005eSkettenis #define IMX7D_UART4_ROOT_CG		0xf0
152b7ac005eSkettenis #define IMX7D_UART4_ROOT_DIV		0xf1
153b7ac005eSkettenis #define IMX7D_UART5_ROOT_CLK		0xf2
154b7ac005eSkettenis #define IMX7D_UART5_ROOT_SRC		0xf3
155b7ac005eSkettenis #define IMX7D_UART5_ROOT_CG		0xf4
156b7ac005eSkettenis #define IMX7D_UART5_ROOT_DIV		0xf5
157b7ac005eSkettenis #define IMX7D_UART6_ROOT_CLK		0xf6
158b7ac005eSkettenis #define IMX7D_UART6_ROOT_SRC		0xf7
159b7ac005eSkettenis #define IMX7D_UART6_ROOT_CG		0xf8
160b7ac005eSkettenis #define IMX7D_UART6_ROOT_DIV		0xf9
161b7ac005eSkettenis #define IMX7D_UART7_ROOT_CLK		0xfa
162b7ac005eSkettenis #define IMX7D_UART7_ROOT_SRC		0xfb
163b7ac005eSkettenis #define IMX7D_UART7_ROOT_CG		0xfc
164b7ac005eSkettenis #define IMX7D_UART7_ROOT_DIV		0xfd
16558d1c2c8Skettenis #define IMX7D_ENET_AXI_ROOT_PRE_DIV	0x15a
16658d1c2c8Skettenis #define IMX7D_ENET1_TIME_ROOT_PRE_DIV	0x16a
16758d1c2c8Skettenis #define IMX7D_ENET2_TIME_ROOT_PRE_DIV	0x16c
16858d1c2c8Skettenis #define IMX7D_ENET_PHY_REF_ROOT_PRE_DIV	0x16d
169b7ac005eSkettenis #define IMX7D_USDHC1_ROOT_PRE_DIV	0x171
170b7ac005eSkettenis #define IMX7D_USDHC2_ROOT_PRE_DIV	0x172
171b7ac005eSkettenis #define IMX7D_USDHC3_ROOT_PRE_DIV	0x173
172b7ac005eSkettenis #define IMX7D_I2C1_ROOT_PRE_DIV		0x176
173b7ac005eSkettenis #define IMX7D_I2C2_ROOT_PRE_DIV		0x177
174b7ac005eSkettenis #define IMX7D_I2C3_ROOT_PRE_DIV		0x178
175b7ac005eSkettenis #define IMX7D_I2C4_ROOT_PRE_DIV		0x179
176b7ac005eSkettenis #define IMX7D_UART1_ROOT_PRE_DIV	0x17a
177b7ac005eSkettenis #define IMX7D_UART2_ROOT_PRE_DIV	0x17b
178b7ac005eSkettenis #define IMX7D_UART3_ROOT_PRE_DIV	0x17c
179b7ac005eSkettenis #define IMX7D_UART4_ROOT_PRE_DIV	0x17d
180b7ac005eSkettenis #define IMX7D_UART5_ROOT_PRE_DIV	0x17e
181b7ac005eSkettenis #define IMX7D_UART6_ROOT_PRE_DIV	0x17f
182b7ac005eSkettenis #define IMX7D_UART7_ROOT_PRE_DIV	0x180
183b7ac005eSkettenis #define IMX7D_USB_CTRL_CLK		0x1a6
184b7ac005eSkettenis #define IMX7D_USB_PHY1_CLK		0x1a7
185b7ac005eSkettenis #define IMX7D_USB_PHY2_CLK		0x1a8
186b7ac005eSkettenis 
187*37c734d3Snaddy const struct imxccm_gate imx7d_gates[] = {
18858d1c2c8Skettenis 	[IMX7D_ENET_AXI_ROOT_CG] = { 0x8900, 28, IMX7D_ENET_AXI_ROOT_SRC },
18958d1c2c8Skettenis 	[IMX7D_ENET1_TIME_ROOT_CG] = { 0xa780, 28, IMX7D_ENET1_TIME_ROOT_SRC },
19058d1c2c8Skettenis 	[IMX7D_ENET2_TIME_ROOT_CG] = { 0xa880, 28, IMX7D_ENET2_TIME_ROOT_SRC },
19158d1c2c8Skettenis 	[IMX7D_ENET_PHY_REF_ROOT_CG] = { 0xa900, 28, IMX7D_ENET_PHY_REF_ROOT_SRC },
192b7ac005eSkettenis 	[IMX7D_USDHC1_ROOT_CG] = { 0xab00, 28, IMX7D_USDHC1_ROOT_SRC },
193b7ac005eSkettenis 	[IMX7D_USDHC2_ROOT_CG] = { 0xab80, 28, IMX7D_USDHC2_ROOT_SRC },
194b7ac005eSkettenis 	[IMX7D_USDHC3_ROOT_CG] = { 0xabc0, 28, IMX7D_USDHC3_ROOT_SRC },
195b7ac005eSkettenis 	[IMX7D_I2C1_ROOT_CG] = { 0xad80, 28, IMX7D_I2C1_ROOT_SRC },
196b7ac005eSkettenis 	[IMX7D_I2C2_ROOT_CG] = { 0xae00, 28, IMX7D_I2C2_ROOT_SRC },
197b7ac005eSkettenis 	[IMX7D_I2C3_ROOT_CG] = { 0xae80, 28, IMX7D_I2C3_ROOT_SRC },
198b7ac005eSkettenis 	[IMX7D_I2C4_ROOT_CG] = { 0xaf00, 28, IMX7D_I2C4_ROOT_SRC },
199b7ac005eSkettenis 	[IMX7D_UART1_ROOT_CG] = { 0xaf80, 28, IMX7D_UART1_ROOT_SRC },
200b7ac005eSkettenis 	[IMX7D_UART2_ROOT_CG] = { 0xb000, 28, IMX7D_UART2_ROOT_SRC },
201b7ac005eSkettenis 	[IMX7D_UART3_ROOT_CG] = { 0xb080, 28, IMX7D_UART3_ROOT_SRC },
202b7ac005eSkettenis 	[IMX7D_UART4_ROOT_CG] = { 0xb100, 28, IMX7D_UART4_ROOT_SRC },
203b7ac005eSkettenis 	[IMX7D_UART5_ROOT_CG] = { 0xb180, 28, IMX7D_UART5_ROOT_SRC },
204b7ac005eSkettenis 	[IMX7D_UART6_ROOT_CG] = { 0xb200, 28, IMX7D_UART6_ROOT_SRC },
205b7ac005eSkettenis 	[IMX7D_UART7_ROOT_CG] = { 0xb280, 28, IMX7D_UART7_ROOT_SRC },
20658d1c2c8Skettenis 	[IMX7D_ENET_AXI_ROOT_CLK] = { 0x4060, 0, IMX7D_ENET_AXI_ROOT_DIV },
207b7ac005eSkettenis 	[IMX7D_USB_CTRL_CLK] = { 0x4680, 0 },
208b7ac005eSkettenis 	[IMX7D_USB_PHY1_CLK] = { 0x46a0, 0 },
209b7ac005eSkettenis 	[IMX7D_USB_PHY2_CLK] = { 0x46b0, 0 },
210b7ac005eSkettenis 	[IMX7D_USDHC1_ROOT_CLK] = { 0x46c0, 0, IMX7D_USDHC1_ROOT_DIV },
211b7ac005eSkettenis 	[IMX7D_USDHC2_ROOT_CLK] = { 0x46d0, 0, IMX7D_USDHC2_ROOT_DIV },
212b7ac005eSkettenis 	[IMX7D_USDHC3_ROOT_CLK] = { 0x46e0, 0, IMX7D_USDHC3_ROOT_DIV },
213f984b708Skettenis 	[IMX7D_ENET1_IPG_ROOT_CLK] = { 0x4700, 0, IMX7D_ENET_AXI_ROOT_DIV },
214f984b708Skettenis 	[IMX7D_ENET1_TIME_ROOT_CLK] = { 0x4700, 0, IMX7D_ENET1_TIME_ROOT_DIV },
215f984b708Skettenis 	[IMX7D_ENET2_IPG_ROOT_CLK] = { 0x4710, 0, IMX7D_ENET_AXI_ROOT_DIV },
216f984b708Skettenis 	[IMX7D_ENET2_TIME_ROOT_CLK] = { 0x4710, 0, IMX7D_ENET1_TIME_ROOT_DIV },
217b7ac005eSkettenis 	[IMX7D_I2C1_ROOT_CLK] = { 0x4880, 0, IMX7D_I2C1_ROOT_DIV },
218b7ac005eSkettenis 	[IMX7D_I2C2_ROOT_CLK] = { 0x4890, 0, IMX7D_I2C2_ROOT_DIV },
219b7ac005eSkettenis 	[IMX7D_I2C3_ROOT_CLK] = { 0x48a0, 0, IMX7D_I2C3_ROOT_DIV },
220b7ac005eSkettenis 	[IMX7D_I2C4_ROOT_CLK] = { 0x48b0, 0, IMX7D_I2C4_ROOT_DIV },
221b7ac005eSkettenis 	[IMX7D_UART1_ROOT_CLK] = { 0x4940, 0, IMX7D_UART1_ROOT_DIV },
222b7ac005eSkettenis 	[IMX7D_UART2_ROOT_CLK] = { 0x4950, 0, IMX7D_UART2_ROOT_DIV },
223b7ac005eSkettenis 	[IMX7D_UART3_ROOT_CLK] = { 0x4960, 0, IMX7D_UART3_ROOT_DIV },
224b7ac005eSkettenis 	[IMX7D_UART4_ROOT_CLK] = { 0x4970, 0, IMX7D_UART4_ROOT_DIV },
225b7ac005eSkettenis 	[IMX7D_UART5_ROOT_CLK] = { 0x4980, 0, IMX7D_UART5_ROOT_DIV },
226b7ac005eSkettenis 	[IMX7D_UART6_ROOT_CLK] = { 0x4990, 0, IMX7D_UART6_ROOT_DIV },
227b7ac005eSkettenis 	[IMX7D_UART7_ROOT_CLK] = { 0x49a0, 0, IMX7D_UART7_ROOT_DIV },
228b7ac005eSkettenis };
229b7ac005eSkettenis 
230*37c734d3Snaddy const struct imxccm_divider imx7d_divs[] = {
23158d1c2c8Skettenis 	[IMX7D_ENET_AXI_ROOT_PRE_DIV] = { 0x8900, 16, 0x7, IMX7D_ENET_AXI_ROOT_CG },
23258d1c2c8Skettenis 	[IMX7D_ENET1_TIME_ROOT_PRE_DIV] = { 0xa780, 16, 0x7, IMX7D_ENET1_TIME_ROOT_CG },
23358d1c2c8Skettenis 	[IMX7D_ENET2_TIME_ROOT_PRE_DIV] = { 0xa880, 16, 0x7, IMX7D_ENET2_TIME_ROOT_CG },
23458d1c2c8Skettenis 	[IMX7D_ENET_PHY_REF_ROOT_PRE_DIV] = { 0xa900, 16, 0x7, IMX7D_ENET_PHY_REF_ROOT_CG },
235b7ac005eSkettenis 	[IMX7D_USDHC1_ROOT_PRE_DIV] = { 0xab00, 16, 0x7, IMX7D_USDHC1_ROOT_CG },
236b7ac005eSkettenis 	[IMX7D_USDHC2_ROOT_PRE_DIV] = { 0xab80, 16, 0x7, IMX7D_USDHC2_ROOT_CG },
237b7ac005eSkettenis 	[IMX7D_USDHC3_ROOT_PRE_DIV] = { 0xac00, 16, 0x7, IMX7D_USDHC3_ROOT_CG },
238b7ac005eSkettenis 	[IMX7D_I2C1_ROOT_PRE_DIV] = { 0xad80, 16, 0x7, IMX7D_I2C1_ROOT_CG },
239b7ac005eSkettenis 	[IMX7D_I2C2_ROOT_PRE_DIV] = { 0xae00, 16, 0x7, IMX7D_I2C2_ROOT_CG },
240b7ac005eSkettenis 	[IMX7D_I2C3_ROOT_PRE_DIV] = { 0xae80, 16, 0x7, IMX7D_I2C3_ROOT_CG },
241b7ac005eSkettenis 	[IMX7D_I2C4_ROOT_PRE_DIV] = { 0xaf00, 16, 0x7, IMX7D_I2C4_ROOT_CG },
242b7ac005eSkettenis 	[IMX7D_UART1_ROOT_PRE_DIV] = { 0xaf80, 16, 0x7, IMX7D_UART1_ROOT_CG },
243b7ac005eSkettenis 	[IMX7D_UART2_ROOT_PRE_DIV] = { 0xb000, 16, 0x7, IMX7D_UART2_ROOT_CG },
244b7ac005eSkettenis 	[IMX7D_UART3_ROOT_PRE_DIV] = { 0xb080, 16, 0x7, IMX7D_UART3_ROOT_CG },
245b7ac005eSkettenis 	[IMX7D_UART4_ROOT_PRE_DIV] = { 0xb100, 16, 0x7, IMX7D_UART4_ROOT_CG },
246b7ac005eSkettenis 	[IMX7D_UART5_ROOT_PRE_DIV] = { 0xb180, 16, 0x7, IMX7D_UART5_ROOT_CG },
247b7ac005eSkettenis 	[IMX7D_UART6_ROOT_PRE_DIV] = { 0xb200, 16, 0x7, IMX7D_UART6_ROOT_CG },
248b7ac005eSkettenis 	[IMX7D_UART7_ROOT_PRE_DIV] = { 0xb280, 16, 0x7, IMX7D_UART7_ROOT_CG },
24958d1c2c8Skettenis 	[IMX7D_ENET_AXI_ROOT_DIV] = { 0x8900, 0, 0x3f, IMX7D_ENET_AXI_ROOT_PRE_DIV },
25058d1c2c8Skettenis 	[IMX7D_ENET1_TIME_ROOT_DIV] = { 0xa780, 0, 0x3f, IMX7D_ENET1_TIME_ROOT_PRE_DIV },
25158d1c2c8Skettenis 	[IMX7D_ENET2_TIME_ROOT_DIV] = { 0xa880, 0, 0x3f, IMX7D_ENET2_TIME_ROOT_PRE_DIV },
252f984b708Skettenis 	[IMX7D_ENET_PHY_REF_ROOT_CLK] = { 0xa900, 0, 0x3f, IMX7D_ENET_PHY_REF_ROOT_PRE_DIV },
253b7ac005eSkettenis 	[IMX7D_USDHC1_ROOT_DIV] = { 0xab00, 0, 0x3f, IMX7D_USDHC1_ROOT_PRE_DIV },
254b7ac005eSkettenis 	[IMX7D_USDHC2_ROOT_DIV] = { 0xab80, 0, 0x3f, IMX7D_USDHC2_ROOT_PRE_DIV },
255b7ac005eSkettenis 	[IMX7D_USDHC3_ROOT_DIV] = { 0xac00, 0, 0x3f, IMX7D_USDHC3_ROOT_PRE_DIV },
256b7ac005eSkettenis 	[IMX7D_I2C1_ROOT_DIV] = { 0xad80, 0, 0x3f, IMX7D_I2C1_ROOT_PRE_DIV },
257b7ac005eSkettenis 	[IMX7D_I2C2_ROOT_DIV] = { 0xae00, 0, 0x3f, IMX7D_I2C2_ROOT_PRE_DIV },
258b7ac005eSkettenis 	[IMX7D_I2C3_ROOT_DIV] = { 0xae80, 0, 0x3f, IMX7D_I2C3_ROOT_PRE_DIV },
259b7ac005eSkettenis 	[IMX7D_I2C4_ROOT_DIV] = { 0xaf00, 0, 0x3f, IMX7D_I2C4_ROOT_PRE_DIV },
260b7ac005eSkettenis 	[IMX7D_UART1_ROOT_DIV] = { 0xaf80, 0, 0x3f, IMX7D_UART1_ROOT_PRE_DIV },
261b7ac005eSkettenis 	[IMX7D_UART2_ROOT_DIV] = { 0xb000, 0, 0x3f, IMX7D_UART2_ROOT_PRE_DIV },
262b7ac005eSkettenis 	[IMX7D_UART3_ROOT_DIV] = { 0xb080, 0, 0x3f, IMX7D_UART3_ROOT_PRE_DIV },
263b7ac005eSkettenis 	[IMX7D_UART4_ROOT_DIV] = { 0xb100, 0, 0x3f, IMX7D_UART4_ROOT_PRE_DIV },
264b7ac005eSkettenis 	[IMX7D_UART5_ROOT_DIV] = { 0xb180, 0, 0x3f, IMX7D_UART5_ROOT_PRE_DIV },
265b7ac005eSkettenis 	[IMX7D_UART6_ROOT_DIV] = { 0xb200, 0, 0x3f, IMX7D_UART6_ROOT_PRE_DIV },
266b7ac005eSkettenis 	[IMX7D_UART7_ROOT_DIV] = { 0xb280, 0, 0x3f, IMX7D_UART7_ROOT_PRE_DIV },
267b7ac005eSkettenis };
268b7ac005eSkettenis 
269*37c734d3Snaddy const struct imxccm_mux imx7d_muxs[] = {
27058d1c2c8Skettenis 	[IMX7D_ENET_AXI_ROOT_SRC] = { 0x8900, 24, 0x7 },
27158d1c2c8Skettenis 	[IMX7D_ENET1_TIME_ROOT_SRC] = { 0xa780, 24, 0x7 },
27258d1c2c8Skettenis 	[IMX7D_ENET2_TIME_ROOT_SRC] = { 0xa880, 24, 0x7 },
27358d1c2c8Skettenis 	[IMX7D_ENET_PHY_REF_ROOT_SRC] = { 0xa900, 24, 0x7 },
274b7ac005eSkettenis 	[IMX7D_USDHC1_ROOT_SRC] = { 0xab00, 24, 0x7 },
275b7ac005eSkettenis 	[IMX7D_USDHC2_ROOT_SRC] = { 0xab80, 24, 0x7 },
276b7ac005eSkettenis 	[IMX7D_USDHC3_ROOT_SRC] = { 0xac00, 24, 0x7 },
277b7ac005eSkettenis 	[IMX7D_I2C1_ROOT_SRC] = { 0xad80, 24, 0x7 },
278b7ac005eSkettenis 	[IMX7D_I2C2_ROOT_SRC] = { 0xae00, 24, 0x7 },
279b7ac005eSkettenis 	[IMX7D_I2C3_ROOT_SRC] = { 0xae80, 24, 0x7 },
280b7ac005eSkettenis 	[IMX7D_I2C4_ROOT_SRC] = { 0xaf00, 24, 0x7 },
281b7ac005eSkettenis 	[IMX7D_UART1_ROOT_SRC] = { 0xaf80, 24, 0x7 },
282b7ac005eSkettenis 	[IMX7D_UART2_ROOT_SRC] = { 0xb000, 24, 0x7 },
283b7ac005eSkettenis 	[IMX7D_UART3_ROOT_SRC] = { 0xb080, 24, 0x7 },
284b7ac005eSkettenis 	[IMX7D_UART4_ROOT_SRC] = { 0xb100, 24, 0x7 },
285b7ac005eSkettenis 	[IMX7D_UART5_ROOT_SRC] = { 0xb180, 24, 0x7 },
286b7ac005eSkettenis 	[IMX7D_UART6_ROOT_SRC] = { 0xb200, 24, 0x7 },
287b7ac005eSkettenis 	[IMX7D_UART7_ROOT_SRC] = { 0xb280, 24, 0x7 },
288b7ac005eSkettenis };
289b7ac005eSkettenis 
290b7ac005eSkettenis /*
2916e71e8feSpatrick  * i.MX8MM clocks.
2926e71e8feSpatrick  */
2936e71e8feSpatrick 
2946e71e8feSpatrick #define IMX8MM_ARM_PLL			0x18
2958186a0b7Spatrick #define IMX8MM_SYS_PLL1_100M		0x32
2966e71e8feSpatrick #define IMX8MM_SYS_PLL1_800M		0x38
29765c9ab81Spatrick #define IMX8MM_SYS_PLL2_100M		0x3a
29865c9ab81Spatrick #define IMX8MM_SYS_PLL2_250M		0x3e
2998186a0b7Spatrick #define IMX8MM_SYS_PLL2_500M		0x40
3006e71e8feSpatrick #define IMX8MM_CLK_A53_SRC		0x42
3016e71e8feSpatrick #define IMX8MM_ARM_PLL_OUT		0x2c
3026e71e8feSpatrick #define IMX8MM_CLK_A53_CG		0x47
3036e71e8feSpatrick #define IMX8MM_CLK_A53_DIV		0x4c
3046e71e8feSpatrick #define IMX8MM_CLK_ENET_AXI		0x52
30588b7f41eSpatrick #define IMX8MM_CLK_NAND_USDHC_BUS	0x53
3068186a0b7Spatrick #define IMX8MM_CLK_USB_BUS		0x58
30788b7f41eSpatrick #define IMX8MM_CLK_AHB			0x5d
30888b7f41eSpatrick #define IMX8MM_CLK_IPG_ROOT		0x5f
30965c9ab81Spatrick #define IMX8MM_CLK_PCIE1_CTRL		0x67
31065c9ab81Spatrick #define IMX8MM_CLK_PCIE1_PHY		0x68
31165c9ab81Spatrick #define IMX8MM_CLK_PCIE1_AUX		0x69
3126e71e8feSpatrick #define IMX8MM_CLK_ENET_REF		0x74
3136e71e8feSpatrick #define IMX8MM_CLK_ENET_TIMER		0x75
3146e71e8feSpatrick #define IMX8MM_CLK_ENET_PHY_REF		0x76
3156e71e8feSpatrick #define IMX8MM_CLK_USDHC1		0x79
3166e71e8feSpatrick #define IMX8MM_CLK_USDHC2		0x7a
3176e71e8feSpatrick #define IMX8MM_CLK_I2C1			0x7b
3186e71e8feSpatrick #define IMX8MM_CLK_I2C2			0x7c
3196e71e8feSpatrick #define IMX8MM_CLK_I2C3			0x7d
3206e71e8feSpatrick #define IMX8MM_CLK_I2C4			0x7e
3216e71e8feSpatrick #define IMX8MM_CLK_UART1		0x7f
3226e71e8feSpatrick #define IMX8MM_CLK_UART2		0x80
3236e71e8feSpatrick #define IMX8MM_CLK_UART3		0x81
3246e71e8feSpatrick #define IMX8MM_CLK_UART4		0x82
3258186a0b7Spatrick #define IMX8MM_CLK_USB_CORE_REF		0x83
3268186a0b7Spatrick #define IMX8MM_CLK_USB_PHY_REF		0x84
3276e71e8feSpatrick #define IMX8MM_CLK_USDHC3		0x91
32865c9ab81Spatrick #define IMX8MM_CLK_PCIE2_CTRL		0x98
32965c9ab81Spatrick #define IMX8MM_CLK_PCIE2_PHY		0x99
33065c9ab81Spatrick #define IMX8MM_CLK_PCIE2_AUX		0x9a
3316e71e8feSpatrick #define IMX8MM_CLK_ENET1_ROOT		0xa2
3326e71e8feSpatrick #define IMX8MM_CLK_I2C1_ROOT		0xa4
3336e71e8feSpatrick #define IMX8MM_CLK_I2C2_ROOT		0xa5
3346e71e8feSpatrick #define IMX8MM_CLK_I2C3_ROOT		0xa6
3356e71e8feSpatrick #define IMX8MM_CLK_I2C4_ROOT		0xa7
3369d2954c3Spatrick #define IMX8MM_CLK_OCOTP_ROOT		0xa8
33765c9ab81Spatrick #define IMX8MM_CLK_PCIE1_ROOT		0xa9
3386e71e8feSpatrick #define IMX8MM_CLK_UART1_ROOT		0xbc
3396e71e8feSpatrick #define IMX8MM_CLK_UART2_ROOT		0xbd
3406e71e8feSpatrick #define IMX8MM_CLK_UART3_ROOT		0xbe
3416e71e8feSpatrick #define IMX8MM_CLK_UART4_ROOT		0xbf
3428186a0b7Spatrick #define IMX8MM_CLK_USB1_CTRL_ROOT	0xc0
3436e71e8feSpatrick #define IMX8MM_CLK_USDHC1_ROOT		0xc2
3446e71e8feSpatrick #define IMX8MM_CLK_USDHC2_ROOT		0xc3
3456e71e8feSpatrick #define IMX8MM_CLK_USDHC3_ROOT		0xd0
3466e71e8feSpatrick #define IMX8MM_CLK_TMU_ROOT		0xd1
3476e71e8feSpatrick #define IMX8MM_CLK_ARM			0xd7
3486e71e8feSpatrick 
349*37c734d3Snaddy const struct imxccm_gate imx8mm_gates[] = {
3506e71e8feSpatrick 	[IMX8MM_CLK_A53_CG] = { 0x8000, 14 },
3516e71e8feSpatrick 	[IMX8MM_CLK_ENET_AXI] = { 0x8880, 14 },
35288b7f41eSpatrick 	[IMX8MM_CLK_NAND_USDHC_BUS] = { 0x8900, 14 },
3538186a0b7Spatrick 	[IMX8MM_CLK_USB_BUS] = { 0x8b80, 14 },
35488b7f41eSpatrick 	[IMX8MM_CLK_AHB] = { 0x9000, 14 },
35565c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_CTRL] = { 0xa300, 14 },
35665c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_PHY] = { 0xa380, 14 },
35765c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_AUX] = { 0xa400, 14 },
3586e71e8feSpatrick 	[IMX8MM_CLK_ENET_REF] = { 0xa980, 14 },
3596e71e8feSpatrick 	[IMX8MM_CLK_ENET_TIMER] = { 0xaa00, 14 },
3606e71e8feSpatrick 	[IMX8MM_CLK_ENET_PHY_REF] = { 0xaa80, 14 },
3616e71e8feSpatrick 	[IMX8MM_CLK_USDHC1] = { 0xac00, 14 },
3626e71e8feSpatrick 	[IMX8MM_CLK_USDHC2] = { 0xac80, 14 },
3636e71e8feSpatrick 	[IMX8MM_CLK_I2C1] = { 0xad00, 14 },
3646e71e8feSpatrick 	[IMX8MM_CLK_I2C2] = { 0xad80, 14 },
3656e71e8feSpatrick 	[IMX8MM_CLK_I2C3] = { 0xae00, 14 },
3666e71e8feSpatrick 	[IMX8MM_CLK_I2C4] = { 0xae80, 14 },
3676e71e8feSpatrick 	[IMX8MM_CLK_UART1] = { 0xaf00, 14 },
3686e71e8feSpatrick 	[IMX8MM_CLK_UART2] = { 0xaf80, 14 },
3696e71e8feSpatrick 	[IMX8MM_CLK_UART3] = { 0xb000, 14 },
3706e71e8feSpatrick 	[IMX8MM_CLK_UART4] = { 0xb080, 14 },
3718186a0b7Spatrick 	[IMX8MM_CLK_USB_CORE_REF] = { 0xb100, 14 },
3728186a0b7Spatrick 	[IMX8MM_CLK_USB_PHY_REF] = { 0xb180, 14 },
3736e71e8feSpatrick 	[IMX8MM_CLK_USDHC3] = { 0xbc80, 14 },
37465c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_CTRL] = { 0xc000, 24, 0x7 },
37565c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_PHY] = { 0xc080, 24, 0x7 },
37665c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_AUX] = { 0xc100, 24, 0x7 },
3776e71e8feSpatrick 	[IMX8MM_CLK_ENET1_ROOT] = { 0x40a0, 0, IMX8MM_CLK_ENET_AXI },
3786e71e8feSpatrick 	[IMX8MM_CLK_I2C1_ROOT] = { 0x4170, 0, IMX8MM_CLK_I2C1 },
3796e71e8feSpatrick 	[IMX8MM_CLK_I2C2_ROOT] = { 0x4180, 0, IMX8MM_CLK_I2C2 },
3806e71e8feSpatrick 	[IMX8MM_CLK_I2C3_ROOT] = { 0x4190, 0, IMX8MM_CLK_I2C3 },
3816e71e8feSpatrick 	[IMX8MM_CLK_I2C4_ROOT] = { 0x41a0, 0, IMX8MM_CLK_I2C4 },
382783aabe8Spatrick 	[IMX8MM_CLK_OCOTP_ROOT] = { 0x4220, 0, IMX8MM_CLK_IPG_ROOT },
38365c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_ROOT] = { 0x4250, 0, IMX8MM_CLK_PCIE1_CTRL },
3846e71e8feSpatrick 	[IMX8MM_CLK_UART1_ROOT] = { 0x4490, 0, IMX8MM_CLK_UART1 },
3856e71e8feSpatrick 	[IMX8MM_CLK_UART2_ROOT] = { 0x44a0, 0, IMX8MM_CLK_UART2 },
3866e71e8feSpatrick 	[IMX8MM_CLK_UART3_ROOT] = { 0x44b0, 0, IMX8MM_CLK_UART3 },
3876e71e8feSpatrick 	[IMX8MM_CLK_UART4_ROOT] = { 0x44c0, 0, IMX8MM_CLK_UART4 },
388ab2b5bd0Spatrick 	[IMX8MM_CLK_USB1_CTRL_ROOT] = { 0x44d0, 0, IMX8MM_CLK_USB_BUS },
3896e71e8feSpatrick 	[IMX8MM_CLK_USDHC1_ROOT] = { 0x4510, 0, IMX8MM_CLK_USDHC1 },
3906e71e8feSpatrick 	[IMX8MM_CLK_USDHC2_ROOT] = { 0x4520, 0, IMX8MM_CLK_USDHC2 },
3916e71e8feSpatrick 	[IMX8MM_CLK_USDHC3_ROOT] = { 0x45e0, 0, IMX8MM_CLK_USDHC3 },
3926e71e8feSpatrick 	[IMX8MM_CLK_TMU_ROOT] = { 0x4620, 0 },
3936e71e8feSpatrick };
3946e71e8feSpatrick 
395*37c734d3Snaddy const struct imxccm_divider imx8mm_divs[] = {
3966e71e8feSpatrick 	[IMX8MM_CLK_A53_DIV] = { 0x8000, 0, 0x7, IMX8MM_CLK_A53_CG },
3976e71e8feSpatrick 	[IMX8MM_CLK_ENET_AXI] = { 0x8880, 0, 0x3f },
39888b7f41eSpatrick 	[IMX8MM_CLK_NAND_USDHC_BUS] = { 0x8900, 0, 0x3f },
3998186a0b7Spatrick 	[IMX8MM_CLK_USB_BUS] = { 0x8b80, 0, 0x3f },
40088b7f41eSpatrick 	[IMX8MM_CLK_AHB] = { 0x9000, 0, 0x3f },
40188b7f41eSpatrick 	[IMX8MM_CLK_IPG_ROOT] = { 0x9080, 0, 0x1, IMX8MM_CLK_AHB },
40265c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_CTRL] = { 0xa300, 0, 0x3f },
40365c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_PHY] = { 0xa380, 0, 0x3f },
40465c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_AUX] = { 0xa400, 0, 0x3f },
4056e71e8feSpatrick 	[IMX8MM_CLK_USDHC1] = { 0xac00, 0, 0x3f },
4066e71e8feSpatrick 	[IMX8MM_CLK_USDHC2] = { 0xac80, 0, 0x3f },
4076e71e8feSpatrick 	[IMX8MM_CLK_I2C1] = { 0xad00, 0, 0x3f },
4086e71e8feSpatrick 	[IMX8MM_CLK_I2C2] = { 0xad80, 0, 0x3f },
4096e71e8feSpatrick 	[IMX8MM_CLK_I2C3] = { 0xae00, 0, 0x3f },
4106e71e8feSpatrick 	[IMX8MM_CLK_I2C4] = { 0xae80, 0, 0x3f },
4116e71e8feSpatrick 	[IMX8MM_CLK_UART1] = { 0xaf00, 0, 0x3f },
4126e71e8feSpatrick 	[IMX8MM_CLK_UART2] = { 0xaf80, 0, 0x3f },
4136e71e8feSpatrick 	[IMX8MM_CLK_UART3] = { 0xb000, 0, 0x3f },
4146e71e8feSpatrick 	[IMX8MM_CLK_UART4] = { 0xb080, 0, 0x3f },
4158186a0b7Spatrick 	[IMX8MM_CLK_USB_CORE_REF] = { 0xb100, 0, 0x3f },
4168186a0b7Spatrick 	[IMX8MM_CLK_USB_PHY_REF] = { 0xb180, 0, 0x3f },
4176e71e8feSpatrick 	[IMX8MM_CLK_USDHC3] = { 0xbc80, 0, 0x3f },
41865c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_CTRL] = { 0xc000, 0, 0x3f },
41965c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_PHY] = { 0xc080, 0, 0x3f },
42065c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_AUX] = { 0xc100, 0, 0x3f },
4216e71e8feSpatrick };
4226e71e8feSpatrick 
423*37c734d3Snaddy const struct imxccm_divider imx8mm_predivs[] = {
4246e71e8feSpatrick 	[IMX8MM_CLK_ENET_AXI] = { 0x8880, 16, 0x7 },
42588b7f41eSpatrick 	[IMX8MM_CLK_NAND_USDHC_BUS] = { 0x8900, 16, 0x7 },
4268186a0b7Spatrick 	[IMX8MM_CLK_USB_BUS] = { 0x8b80, 16, 0x7 },
42788b7f41eSpatrick 	[IMX8MM_CLK_AHB] = { 0x9000, 16, 0x7 },
42865c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_CTRL] = { 0xa300, 16, 0x7 },
42965c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_PHY] = { 0xa380, 16, 0x7 },
43065c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_AUX] = { 0xa400, 16, 0x7 },
4316e71e8feSpatrick 	[IMX8MM_CLK_USDHC1] = { 0xac00, 16, 0x7 },
4326e71e8feSpatrick 	[IMX8MM_CLK_USDHC2] = { 0xac80, 16, 0x7 },
4336e71e8feSpatrick 	[IMX8MM_CLK_I2C1] = { 0xad00, 16, 0x7 },
4346e71e8feSpatrick 	[IMX8MM_CLK_I2C2] = { 0xad80, 16, 0x7 },
4356e71e8feSpatrick 	[IMX8MM_CLK_I2C3] = { 0xae00, 16, 0x7 },
4366e71e8feSpatrick 	[IMX8MM_CLK_I2C4] = { 0xae80, 16, 0x7 },
4376e71e8feSpatrick 	[IMX8MM_CLK_UART1] = { 0xaf00, 16, 0x7 },
4386e71e8feSpatrick 	[IMX8MM_CLK_UART2] = { 0xaf80, 16, 0x7 },
4396e71e8feSpatrick 	[IMX8MM_CLK_UART3] = { 0xb000, 16, 0x7 },
4406e71e8feSpatrick 	[IMX8MM_CLK_UART4] = { 0xb080, 16, 0x7 },
4418186a0b7Spatrick 	[IMX8MM_CLK_USB_CORE_REF] = { 0xb100, 16, 0x7 },
4428186a0b7Spatrick 	[IMX8MM_CLK_USB_PHY_REF] = { 0xb180, 16, 0x7 },
4436e71e8feSpatrick 	[IMX8MM_CLK_USDHC3] = { 0xbc80, 16, 0x7 },
44465c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_CTRL] = { 0xc000, 16, 0x7 },
44565c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_PHY] = { 0xc080, 16, 0x7 },
44665c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_AUX] = { 0xc100, 16, 0x7 },
4476e71e8feSpatrick };
4486e71e8feSpatrick 
449*37c734d3Snaddy const struct imxccm_mux imx8mm_muxs[] = {
4506e71e8feSpatrick 	[IMX8MM_CLK_A53_SRC] = { 0x8000, 24, 0x7 },
4516e71e8feSpatrick 	[IMX8MM_CLK_ENET_AXI] = { 0x8880, 24, 0x7 },
45288b7f41eSpatrick 	[IMX8MM_CLK_NAND_USDHC_BUS] = { 0x8900, 24, 0x7 },
4538186a0b7Spatrick 	[IMX8MM_CLK_USB_BUS] = { 0x8b80, 24, 0x7 },
45488b7f41eSpatrick 	[IMX8MM_CLK_AHB] = { 0x9000, 24, 0x7 },
45565c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_CTRL] = { 0xa300, 24, 0x7 },
45665c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_PHY] = { 0xa380, 24, 0x7 },
45765c9ab81Spatrick 	[IMX8MM_CLK_PCIE1_AUX] = { 0xa400, 24, 0x7 },
4586e71e8feSpatrick 	[IMX8MM_CLK_USDHC1] = { 0xac00, 24, 0x7 },
4596e71e8feSpatrick 	[IMX8MM_CLK_USDHC2] = { 0xac80, 24, 0x7 },
4606e71e8feSpatrick 	[IMX8MM_CLK_I2C1] = { 0xad00, 24, 0x7 },
4616e71e8feSpatrick 	[IMX8MM_CLK_I2C2] = { 0xad80, 24, 0x7 },
4626e71e8feSpatrick 	[IMX8MM_CLK_I2C3] = { 0xae00, 24, 0x7 },
4636e71e8feSpatrick 	[IMX8MM_CLK_I2C4] = { 0xae80, 24, 0x7 },
4646e71e8feSpatrick 	[IMX8MM_CLK_UART1] = { 0xaf00, 24, 0x7 },
4656e71e8feSpatrick 	[IMX8MM_CLK_UART2] = { 0xaf80, 24, 0x7 },
4666e71e8feSpatrick 	[IMX8MM_CLK_UART3] = { 0xb000, 24, 0x7 },
4676e71e8feSpatrick 	[IMX8MM_CLK_UART4] = { 0xb080, 24, 0x7 },
4688186a0b7Spatrick 	[IMX8MM_CLK_USB_CORE_REF] = { 0xb100, 24, 0x7 },
4698186a0b7Spatrick 	[IMX8MM_CLK_USB_PHY_REF] = { 0xb180, 24, 0x7 },
4706e71e8feSpatrick 	[IMX8MM_CLK_USDHC3] = { 0xbc80, 24, 0x7 },
47165c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_CTRL] = { 0xc000, 24, 0x7 },
47265c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_PHY] = { 0xc080, 24, 0x7 },
47365c9ab81Spatrick 	[IMX8MM_CLK_PCIE2_AUX] = { 0xc100, 24, 0x7 },
4746e71e8feSpatrick };
4756e71e8feSpatrick 
4766e71e8feSpatrick /*
47722a4f870Spatrick  * i.MX8MP clocks.
47822a4f870Spatrick  */
47922a4f870Spatrick 
48059cc782fSpatrick #define IMX8MP_CLK_24M			0x02
48122a4f870Spatrick #define IMX8MP_SYS_PLL1_266M		0x36
48267129edcSpatrick #define IMX8MP_SYS_PLL2_50M		0x39
48322a4f870Spatrick #define IMX8MP_SYS_PLL2_100M		0x3a
48422a4f870Spatrick #define IMX8MP_SYS_PLL2_125M		0x3b
48559cc782fSpatrick #define IMX8MP_SYS_PLL2_500M		0x40
48622a4f870Spatrick #define IMX8MP_CLK_ENET_AXI		0x5e
48722a4f870Spatrick #define IMX8MP_CLK_NAND_USDHC_BUS	0x5f
48859cc782fSpatrick #define IMX8MP_CLK_AHB			0x6b
48959cc782fSpatrick #define IMX8MP_CLK_IPG_ROOT		0x6e
49067129edcSpatrick #define IMX8MP_CLK_PCIE_PHY		0x77
49167129edcSpatrick #define IMX8MP_CLK_PCIE_AUX		0x78
49222a4f870Spatrick #define IMX8MP_CLK_I2C5			0x79
49322a4f870Spatrick #define IMX8MP_CLK_I2C6			0x7a
49422a4f870Spatrick #define IMX8MP_CLK_ENET_QOS		0x81
49522a4f870Spatrick #define IMX8MP_CLK_ENET_QOS_TIMER	0x82
49622a4f870Spatrick #define IMX8MP_CLK_ENET_REF		0x83
49722a4f870Spatrick #define IMX8MP_CLK_ENET_TIMER		0x84
49822a4f870Spatrick #define IMX8MP_CLK_ENET_PHY_REF		0x85
49922a4f870Spatrick #define IMX8MP_CLK_USDHC1		0x88
50022a4f870Spatrick #define IMX8MP_CLK_USDHC2		0x89
50122a4f870Spatrick #define IMX8MP_CLK_I2C1			0x8a
50222a4f870Spatrick #define IMX8MP_CLK_I2C2			0x8b
50322a4f870Spatrick #define IMX8MP_CLK_I2C3			0x8c
50422a4f870Spatrick #define IMX8MP_CLK_I2C4			0x8d
50522a4f870Spatrick #define IMX8MP_CLK_UART1		0x8e
50622a4f870Spatrick #define IMX8MP_CLK_UART2		0x8f
50722a4f870Spatrick #define IMX8MP_CLK_UART3		0x90
50822a4f870Spatrick #define IMX8MP_CLK_UART4		0x91
50959cc782fSpatrick #define IMX8MP_CLK_USB_CORE_REF		0x92
51059cc782fSpatrick #define IMX8MP_CLK_USB_PHY_REF		0x93
51159cc782fSpatrick #define IMX8MP_CLK_USDHC3		0xa9
51267129edcSpatrick #define IMX8MP_CLK_PCIE2_CTRL		0xb0
51367129edcSpatrick #define IMX8MP_CLK_PCIE2_PHY		0xb1
51422a4f870Spatrick #define IMX8MP_CLK_ENET1_ROOT		0xc0
51522a4f870Spatrick #define IMX8MP_CLK_I2C1_ROOT		0xcd
51622a4f870Spatrick #define IMX8MP_CLK_I2C2_ROOT		0xce
51722a4f870Spatrick #define IMX8MP_CLK_I2C3_ROOT		0xcf
51822a4f870Spatrick #define IMX8MP_CLK_I2C4_ROOT		0xd0
51967129edcSpatrick #define IMX8MP_CLK_PCIE_ROOT		0xd9
52022a4f870Spatrick #define IMX8MP_CLK_QOS_ROOT		0xe0
52122a4f870Spatrick #define IMX8MP_CLK_QOS_ENET_ROOT	0xe1
52222a4f870Spatrick #define IMX8MP_CLK_I2C5_ROOT		0xe7
52322a4f870Spatrick #define IMX8MP_CLK_I2C6_ROOT		0xe8
52422a4f870Spatrick #define IMX8MP_CLK_ENET_QOS_ROOT	0xed
52522a4f870Spatrick #define IMX8MP_CLK_SIM_ENET_ROOT	0xf2
52622a4f870Spatrick #define IMX8MP_CLK_UART1_ROOT		0xfb
52722a4f870Spatrick #define IMX8MP_CLK_UART2_ROOT		0xfc
52822a4f870Spatrick #define IMX8MP_CLK_UART3_ROOT		0xfd
52922a4f870Spatrick #define IMX8MP_CLK_UART4_ROOT		0xfe
53059cc782fSpatrick #define IMX8MP_CLK_USB_ROOT		0xff
53159cc782fSpatrick #define IMX8MP_CLK_USB_PHY_ROOT		0x100
53222a4f870Spatrick #define IMX8MP_CLK_USDHC1_ROOT		0x101
53322a4f870Spatrick #define IMX8MP_CLK_USDHC2_ROOT		0x102
53459cc782fSpatrick #define IMX8MP_CLK_HSIO_ROOT		0x10c
53522a4f870Spatrick #define IMX8MP_CLK_USDHC3_ROOT		0x115
53659cc782fSpatrick #define IMX8MP_CLK_HSIO_AXI		0x137
53722a4f870Spatrick 
538*37c734d3Snaddy const struct imxccm_gate imx8mp_gates[] = {
53922a4f870Spatrick 	[IMX8MP_CLK_ENET_AXI] = { 0x8880, 14 },
54022a4f870Spatrick 	[IMX8MP_CLK_NAND_USDHC_BUS] = { 0x8900, 14 },
54159cc782fSpatrick 	[IMX8MP_CLK_AHB] = { 0x9000, 14 },
54267129edcSpatrick 	[IMX8MP_CLK_PCIE_PHY] = { 0xa380, 14 },
54367129edcSpatrick 	[IMX8MP_CLK_PCIE_AUX] = { 0xa400, 14 },
54422a4f870Spatrick 	[IMX8MP_CLK_I2C5] = { 0xa480, 14 },
54522a4f870Spatrick 	[IMX8MP_CLK_I2C6] = { 0xa500, 14 },
546a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS] = { 0xa880, 14 },
547a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS_TIMER] = { 0xa900, 14 },
54822a4f870Spatrick 	[IMX8MP_CLK_ENET_REF] = { 0xa980, 14 },
54922a4f870Spatrick 	[IMX8MP_CLK_ENET_TIMER] = { 0xaa00, 14 },
55022a4f870Spatrick 	[IMX8MP_CLK_ENET_PHY_REF] = { 0xaa80, 14 },
55122a4f870Spatrick 	[IMX8MP_CLK_USDHC1] = { 0xac00, 14 },
55222a4f870Spatrick 	[IMX8MP_CLK_USDHC2] = { 0xac80, 14 },
55322a4f870Spatrick 	[IMX8MP_CLK_I2C1] = { 0xad00, 14 },
55422a4f870Spatrick 	[IMX8MP_CLK_I2C2] = { 0xad80, 14 },
55522a4f870Spatrick 	[IMX8MP_CLK_I2C3] = { 0xae00, 14 },
55622a4f870Spatrick 	[IMX8MP_CLK_I2C4] = { 0xae80, 14 },
55722a4f870Spatrick 	[IMX8MP_CLK_UART1] = { 0xaf00, 14 },
55822a4f870Spatrick 	[IMX8MP_CLK_UART2] = { 0xaf80, 14 },
55922a4f870Spatrick 	[IMX8MP_CLK_UART3] = { 0xb000, 14 },
56022a4f870Spatrick 	[IMX8MP_CLK_UART4] = { 0xb080, 14 },
56159cc782fSpatrick 	[IMX8MP_CLK_USB_CORE_REF] = { 0xb100, 14 },
56259cc782fSpatrick 	[IMX8MP_CLK_USB_PHY_REF] = { 0xb180, 14 },
56322a4f870Spatrick 	[IMX8MP_CLK_USDHC3] = { 0xbc80, 14 },
56467129edcSpatrick 	[IMX8MP_CLK_PCIE2_CTRL] = { 0xc000, 14 },
56567129edcSpatrick 	[IMX8MP_CLK_PCIE2_PHY] = { 0xc080, 14 },
56622a4f870Spatrick 	[IMX8MP_CLK_ENET1_ROOT] = { 0x40a0, 0, IMX8MP_CLK_ENET_AXI },
56722a4f870Spatrick 	[IMX8MP_CLK_I2C1_ROOT] = { 0x4170, 0, IMX8MP_CLK_I2C1 },
56822a4f870Spatrick 	[IMX8MP_CLK_I2C2_ROOT] = { 0x4180, 0, IMX8MP_CLK_I2C2 },
56922a4f870Spatrick 	[IMX8MP_CLK_I2C3_ROOT] = { 0x4190, 0, IMX8MP_CLK_I2C3 },
57022a4f870Spatrick 	[IMX8MP_CLK_I2C4_ROOT] = { 0x41a0, 0, IMX8MP_CLK_I2C4 },
57167129edcSpatrick 	[IMX8MP_CLK_PCIE_ROOT] = { 0x4250, 0, IMX8MP_CLK_PCIE_AUX },
572a74ead0bSpatrick 	[IMX8MP_CLK_QOS_ROOT] = { 0x42c0, 0, IMX8MP_CLK_IPG_ROOT },
573a74ead0bSpatrick 	[IMX8MP_CLK_QOS_ENET_ROOT] = { 0x42e0, 0, IMX8MP_CLK_IPG_ROOT },
57422a4f870Spatrick 	[IMX8MP_CLK_I2C5_ROOT] = { 0x4330, 0, IMX8MP_CLK_I2C5 },
57522a4f870Spatrick 	[IMX8MP_CLK_I2C6_ROOT] = { 0x4340, 0, IMX8MP_CLK_I2C6 },
576a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS_ROOT] = { 0x43b0, 0, IMX8MP_CLK_SIM_ENET_ROOT },
57722a4f870Spatrick 	[IMX8MP_CLK_SIM_ENET_ROOT] = { 0x4400, 0, IMX8MP_CLK_ENET_AXI },
57822a4f870Spatrick 	[IMX8MP_CLK_UART1_ROOT] = { 0x4490, 0, IMX8MP_CLK_UART1 },
57922a4f870Spatrick 	[IMX8MP_CLK_UART2_ROOT] = { 0x44a0, 0, IMX8MP_CLK_UART2 },
58022a4f870Spatrick 	[IMX8MP_CLK_UART3_ROOT] = { 0x44b0, 0, IMX8MP_CLK_UART3 },
58122a4f870Spatrick 	[IMX8MP_CLK_UART4_ROOT] = { 0x44c0, 0, IMX8MP_CLK_UART4 },
58259cc782fSpatrick 	[IMX8MP_CLK_USB_ROOT] = { 0x44d0, 0 },
58359cc782fSpatrick 	[IMX8MP_CLK_USB_PHY_ROOT] = { 0x44f0, 0, IMX8MP_CLK_USB_PHY_REF },
58422a4f870Spatrick 	[IMX8MP_CLK_USDHC1_ROOT] = { 0x4510, 0, IMX8MP_CLK_USDHC1 },
58522a4f870Spatrick 	[IMX8MP_CLK_USDHC2_ROOT] = { 0x4520, 0, IMX8MP_CLK_USDHC2 },
58659cc782fSpatrick 	[IMX8MP_CLK_HSIO_ROOT] = { 0x45c0, 0, IMX8MP_CLK_IPG_ROOT },
58722a4f870Spatrick 	[IMX8MP_CLK_USDHC3_ROOT] = { 0x45e0, 0, IMX8MP_CLK_USDHC3 },
58859cc782fSpatrick 	[IMX8MP_CLK_HSIO_AXI] = { 0x8400, 14 },
58922a4f870Spatrick };
59022a4f870Spatrick 
591*37c734d3Snaddy const struct imxccm_divider imx8mp_divs[] = {
59222a4f870Spatrick 	[IMX8MP_CLK_ENET_AXI] = { 0x8880, 0, 0x3f },
59322a4f870Spatrick 	[IMX8MP_CLK_NAND_USDHC_BUS] = { 0x8900, 0, 0x3f },
59459cc782fSpatrick 	[IMX8MP_CLK_AHB] = { 0x9000, 0, 0x3f },
59559cc782fSpatrick 	[IMX8MP_CLK_IPG_ROOT] = { 0x9080, 0, 0x1, IMX8MP_CLK_AHB },
59667129edcSpatrick 	[IMX8MP_CLK_PCIE_PHY] = { 0xa380, 0, 0x3f },
59767129edcSpatrick 	[IMX8MP_CLK_PCIE_AUX] = { 0xa400, 0, 0x3f },
59822a4f870Spatrick 	[IMX8MP_CLK_I2C5] = { 0xa480, 0, 0x3f },
59922a4f870Spatrick 	[IMX8MP_CLK_I2C6] = { 0xa500, 0, 0x3f },
600a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS] = { 0xa880, 0, 0x3f },
601a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS_TIMER] = { 0xa900, 0, 0x3f },
60222a4f870Spatrick 	[IMX8MP_CLK_ENET_REF] = { 0xa980, 0, 0x3f },
60322a4f870Spatrick 	[IMX8MP_CLK_ENET_TIMER] = { 0xaa00, 0, 0x3f },
60422a4f870Spatrick 	[IMX8MP_CLK_ENET_PHY_REF] = { 0xaa80, 0, 0x3f},
60522a4f870Spatrick 	[IMX8MP_CLK_USDHC1] = { 0xac00, 0, 0x3f },
60622a4f870Spatrick 	[IMX8MP_CLK_USDHC2] = { 0xac80, 0, 0x3f },
60722a4f870Spatrick 	[IMX8MP_CLK_I2C1] = { 0xad00, 0, 0x3f },
60822a4f870Spatrick 	[IMX8MP_CLK_I2C2] = { 0xad80, 0, 0x3f },
60922a4f870Spatrick 	[IMX8MP_CLK_I2C3] = { 0xae00, 0, 0x3f },
61022a4f870Spatrick 	[IMX8MP_CLK_I2C4] = { 0xae80, 0, 0x3f },
61122a4f870Spatrick 	[IMX8MP_CLK_UART1] = { 0xaf00, 0, 0x3f },
61222a4f870Spatrick 	[IMX8MP_CLK_UART2] = { 0xaf80, 0, 0x3f },
61322a4f870Spatrick 	[IMX8MP_CLK_UART3] = { 0xb000, 0, 0x3f },
61422a4f870Spatrick 	[IMX8MP_CLK_UART4] = { 0xb080, 0, 0x3f },
61559cc782fSpatrick 	[IMX8MP_CLK_USB_CORE_REF] = { 0xb100, 0, 0x3f },
61659cc782fSpatrick 	[IMX8MP_CLK_USB_PHY_REF] = { 0xb180, 0, 0x3f },
61722a4f870Spatrick 	[IMX8MP_CLK_USDHC3] = { 0xbc80, 0, 0x3f },
61867129edcSpatrick 	[IMX8MP_CLK_PCIE2_CTRL] = { 0xc000, 0, 0x3f },
61967129edcSpatrick 	[IMX8MP_CLK_PCIE2_PHY] = { 0xc080, 0, 0x3f },
62059cc782fSpatrick 	[IMX8MP_CLK_HSIO_AXI] = { 0x8400, 0, 0x3f },
62122a4f870Spatrick };
62222a4f870Spatrick 
623*37c734d3Snaddy const struct imxccm_divider imx8mp_predivs[] = {
62422a4f870Spatrick 	[IMX8MP_CLK_ENET_AXI] = { 0x8880, 16, 0x7 },
62522a4f870Spatrick 	[IMX8MP_CLK_NAND_USDHC_BUS] = { 0x8900, 16, 0x7 },
62659cc782fSpatrick 	[IMX8MP_CLK_AHB] = { 0x9000, 16, 0x7 },
62767129edcSpatrick 	[IMX8MP_CLK_PCIE_PHY] = { 0xa380, 16, 0x7 },
62867129edcSpatrick 	[IMX8MP_CLK_PCIE_AUX] = { 0xa400, 16, 0x7 },
62922a4f870Spatrick 	[IMX8MP_CLK_I2C5] = { 0xa480, 16, 0x7 },
63022a4f870Spatrick 	[IMX8MP_CLK_I2C6] = { 0xa500, 16, 0x7 },
631a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS] = { 0xa880, 16, 0x7 },
632a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS_TIMER] = { 0xa900, 16, 0x7 },
63322a4f870Spatrick 	[IMX8MP_CLK_ENET_REF] = { 0xa980, 16, 0x7 },
63422a4f870Spatrick 	[IMX8MP_CLK_ENET_TIMER] = { 0xaa00, 16, 0x7 },
63522a4f870Spatrick 	[IMX8MP_CLK_ENET_PHY_REF] = { 0xaa80, 16, 0x7 },
63622a4f870Spatrick 	[IMX8MP_CLK_USDHC1] = { 0xac00, 16, 0x7 },
63722a4f870Spatrick 	[IMX8MP_CLK_USDHC2] = { 0xac80, 16, 0x7 },
63822a4f870Spatrick 	[IMX8MP_CLK_I2C1] = { 0xad00, 16, 0x7 },
63922a4f870Spatrick 	[IMX8MP_CLK_I2C2] = { 0xad80, 16, 0x7 },
64022a4f870Spatrick 	[IMX8MP_CLK_I2C3] = { 0xae00, 16, 0x7 },
64122a4f870Spatrick 	[IMX8MP_CLK_I2C4] = { 0xae80, 16, 0x7 },
64222a4f870Spatrick 	[IMX8MP_CLK_UART1] = { 0xaf00, 16, 0x7 },
64322a4f870Spatrick 	[IMX8MP_CLK_UART2] = { 0xaf80, 16, 0x7 },
64422a4f870Spatrick 	[IMX8MP_CLK_UART3] = { 0xb000, 16, 0x7 },
64522a4f870Spatrick 	[IMX8MP_CLK_UART4] = { 0xb080, 16, 0x7 },
64659cc782fSpatrick 	[IMX8MP_CLK_USB_CORE_REF] = { 0xb100, 16, 0x7 },
64759cc782fSpatrick 	[IMX8MP_CLK_USB_PHY_REF] = { 0xb180, 16, 0x7 },
64822a4f870Spatrick 	[IMX8MP_CLK_USDHC3] = { 0xbc80, 16, 0x7 },
64967129edcSpatrick 	[IMX8MP_CLK_PCIE2_CTRL] = { 0xc000, 16, 0x7 },
65067129edcSpatrick 	[IMX8MP_CLK_PCIE2_PHY] = { 0xc080, 16, 0x7 },
65159cc782fSpatrick 	[IMX8MP_CLK_HSIO_AXI] = { 0x8400, 16, 0x7 },
65222a4f870Spatrick };
65322a4f870Spatrick 
654*37c734d3Snaddy const struct imxccm_mux imx8mp_muxs[] = {
65522a4f870Spatrick 	[IMX8MP_CLK_ENET_AXI] = { 0x8880, 24, 0x7 },
65622a4f870Spatrick 	[IMX8MP_CLK_NAND_USDHC_BUS] = { 0x8900, 24, 0x7 },
65759cc782fSpatrick 	[IMX8MP_CLK_AHB] = { 0x9000, 24, 0x7 },
65867129edcSpatrick 	[IMX8MP_CLK_PCIE_PHY] = { 0xa380, 24, 0x7 },
65967129edcSpatrick 	[IMX8MP_CLK_PCIE_AUX] = { 0xa400, 24, 0x7 },
66022a4f870Spatrick 	[IMX8MP_CLK_I2C5] = { 0xa480, 24, 0x7 },
66122a4f870Spatrick 	[IMX8MP_CLK_I2C6] = { 0xa500, 24, 0x7 },
662a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS] = { 0xa880, 24, 0x7 },
663a74ead0bSpatrick 	[IMX8MP_CLK_ENET_QOS_TIMER] = { 0xa900, 24, 0x7 },
66422a4f870Spatrick 	[IMX8MP_CLK_ENET_REF] = { 0xa980, 24, 0x7 },
66522a4f870Spatrick 	[IMX8MP_CLK_ENET_TIMER] = { 0xaa00, 24, 0x7 },
66622a4f870Spatrick 	[IMX8MP_CLK_ENET_PHY_REF] = { 0xaa80, 24, 0x7 },
66722a4f870Spatrick 	[IMX8MP_CLK_USDHC1] = { 0xac00, 24, 0x7 },
66822a4f870Spatrick 	[IMX8MP_CLK_USDHC2] = { 0xac80, 24, 0x7 },
66922a4f870Spatrick 	[IMX8MP_CLK_I2C1] = { 0xad00, 24, 0x7 },
67022a4f870Spatrick 	[IMX8MP_CLK_I2C2] = { 0xad80, 24, 0x7 },
67122a4f870Spatrick 	[IMX8MP_CLK_I2C3] = { 0xae00, 24, 0x7 },
67222a4f870Spatrick 	[IMX8MP_CLK_I2C4] = { 0xae80, 24, 0x7 },
67322a4f870Spatrick 	[IMX8MP_CLK_UART1] = { 0xaf00, 24, 0x7 },
67422a4f870Spatrick 	[IMX8MP_CLK_UART2] = { 0xaf80, 24, 0x7 },
67522a4f870Spatrick 	[IMX8MP_CLK_UART3] = { 0xb000, 24, 0x7 },
67622a4f870Spatrick 	[IMX8MP_CLK_UART4] = { 0xb080, 24, 0x7 },
67759cc782fSpatrick 	[IMX8MP_CLK_USB_CORE_REF] = { 0xb100, 24, 0x7 },
67859cc782fSpatrick 	[IMX8MP_CLK_USB_PHY_REF] = { 0xb180, 24, 0x7 },
67922a4f870Spatrick 	[IMX8MP_CLK_USDHC3] = { 0xbc80, 24, 0x7 },
68067129edcSpatrick 	[IMX8MP_CLK_PCIE2_CTRL] = { 0xc000, 24, 0x7 },
68167129edcSpatrick 	[IMX8MP_CLK_PCIE2_PHY] = { 0xc080, 24, 0x7 },
68259cc782fSpatrick 	[IMX8MP_CLK_HSIO_AXI] = { 0x8400, 24, 0x7 },
68322a4f870Spatrick };
68422a4f870Spatrick 
68522a4f870Spatrick /*
686e88e8a4fSpatrick  * i.MX8MQ clocks.
687e88e8a4fSpatrick  */
688e88e8a4fSpatrick 
689a455bd9dSpatrick #define IMX8MQ_CLK_32K			0x01
690b31392d8Spatrick #define IMX8MQ_ARM_PLL			0x0a
691b31392d8Spatrick #define IMX8MQ_ARM_PLL_OUT		0x0c
692e88e8a4fSpatrick #define IMX8MQ_SYS1_PLL_100M		0x48
693e88e8a4fSpatrick #define IMX8MQ_SYS1_PLL_266M		0x4c
694e88e8a4fSpatrick #define IMX8MQ_SYS1_PLL_400M		0x4d
695b31392d8Spatrick #define IMX8MQ_SYS1_PLL_800M		0x4e
696845ecb9bSpatrick #define IMX8MQ_SYS2_PLL_100M		0x50
697845ecb9bSpatrick #define IMX8MQ_SYS2_PLL_250M		0x54
698e88e8a4fSpatrick #define IMX8MQ_SYS2_PLL_500M		0x56
699e88e8a4fSpatrick #define IMX8MQ_CLK_A53_SRC		0x58
700e88e8a4fSpatrick #define IMX8MQ_CLK_A53_CG		0x59
701e88e8a4fSpatrick #define IMX8MQ_CLK_A53_DIV		0x5a
702071150a2Spatrick #define IMX8MQ_CLK_ENET_AXI		0x68
703071150a2Spatrick #define IMX8MQ_CLK_NAND_USDHC_BUS	0x69
704071150a2Spatrick #define IMX8MQ_CLK_USB_BUS		0x6e
70588b7f41eSpatrick #define IMX8MQ_CLK_AHB			0x74
706071150a2Spatrick #define IMX8MQ_CLK_PCIE1_CTRL		0x7c
707071150a2Spatrick #define IMX8MQ_CLK_PCIE1_PHY		0x7d
708071150a2Spatrick #define IMX8MQ_CLK_PCIE1_AUX		0x7e
709071150a2Spatrick #define IMX8MQ_CLK_ENET_REF		0x89
710071150a2Spatrick #define IMX8MQ_CLK_ENET_TIMER		0x8a
711071150a2Spatrick #define IMX8MQ_CLK_ENET_PHY_REF		0x8b
712071150a2Spatrick #define IMX8MQ_CLK_USDHC1		0x8e
713071150a2Spatrick #define IMX8MQ_CLK_USDHC2		0x8f
714071150a2Spatrick #define IMX8MQ_CLK_I2C1			0x90
715071150a2Spatrick #define IMX8MQ_CLK_I2C2			0x91
716071150a2Spatrick #define IMX8MQ_CLK_I2C3			0x92
717071150a2Spatrick #define IMX8MQ_CLK_I2C4			0x93
718071150a2Spatrick #define IMX8MQ_CLK_UART1		0x94
719071150a2Spatrick #define IMX8MQ_CLK_UART2		0x95
720071150a2Spatrick #define IMX8MQ_CLK_UART3		0x96
721071150a2Spatrick #define IMX8MQ_CLK_UART4		0x97
722071150a2Spatrick #define IMX8MQ_CLK_USB_CORE_REF		0x98
723071150a2Spatrick #define IMX8MQ_CLK_USB_PHY_REF		0x99
724071150a2Spatrick #define IMX8MQ_CLK_ECSPI1		0x9a
725071150a2Spatrick #define IMX8MQ_CLK_ECSPI2		0x9b
726071150a2Spatrick #define IMX8MQ_CLK_PWM1			0x9c
727071150a2Spatrick #define IMX8MQ_CLK_PWM2			0x9d
728071150a2Spatrick #define IMX8MQ_CLK_PWM3			0x9e
729071150a2Spatrick #define IMX8MQ_CLK_PWM4			0x9f
730071150a2Spatrick #define IMX8MQ_CLK_PCIE2_CTRL		0xad
731071150a2Spatrick #define IMX8MQ_CLK_PCIE2_PHY		0xae
732071150a2Spatrick #define IMX8MQ_CLK_PCIE2_AUX		0xaf
733071150a2Spatrick #define IMX8MQ_CLK_ECSPI3		0xb0
734071150a2Spatrick #define IMX8MQ_CLK_ECSPI1_ROOT		0xb3
735071150a2Spatrick #define IMX8MQ_CLK_ECSPI2_ROOT		0xb4
736071150a2Spatrick #define IMX8MQ_CLK_ECSPI3_ROOT		0xb5
737071150a2Spatrick #define IMX8MQ_CLK_ENET1_ROOT		0xb6
738071150a2Spatrick #define IMX8MQ_CLK_I2C1_ROOT		0xb8
739071150a2Spatrick #define IMX8MQ_CLK_I2C2_ROOT		0xb9
740071150a2Spatrick #define IMX8MQ_CLK_I2C3_ROOT		0xba
741071150a2Spatrick #define IMX8MQ_CLK_I2C4_ROOT		0xbb
742071150a2Spatrick #define IMX8MQ_CLK_PCIE1_ROOT		0xbd
743071150a2Spatrick #define IMX8MQ_CLK_PCIE2_ROOT		0xbe
744071150a2Spatrick #define IMX8MQ_CLK_PWM1_ROOT		0xbf
745071150a2Spatrick #define IMX8MQ_CLK_PWM2_ROOT		0xc0
746071150a2Spatrick #define IMX8MQ_CLK_PWM3_ROOT		0xc1
747071150a2Spatrick #define IMX8MQ_CLK_PWM4_ROOT		0xc2
748071150a2Spatrick #define IMX8MQ_CLK_UART1_ROOT		0xca
749071150a2Spatrick #define IMX8MQ_CLK_UART2_ROOT		0xcb
750071150a2Spatrick #define IMX8MQ_CLK_UART3_ROOT		0xcc
751071150a2Spatrick #define IMX8MQ_CLK_UART4_ROOT		0xcd
752071150a2Spatrick #define IMX8MQ_CLK_USB1_CTRL_ROOT	0xce
753071150a2Spatrick #define IMX8MQ_CLK_USB2_CTRL_ROOT	0xcf
754071150a2Spatrick #define IMX8MQ_CLK_USB1_PHY_ROOT	0xd0
755071150a2Spatrick #define IMX8MQ_CLK_USB2_PHY_ROOT	0xd1
756071150a2Spatrick #define IMX8MQ_CLK_USDHC1_ROOT		0xd2
757071150a2Spatrick #define IMX8MQ_CLK_USDHC2_ROOT		0xd3
75888b7f41eSpatrick #define IMX8MQ_CLK_IPG_ROOT		0xec
7599d2954c3Spatrick #define IMX8MQ_CLK_TMU_ROOT		0xf6
7609d2954c3Spatrick #define IMX8MQ_CLK_OCOTP_ROOT		0xfa
761071150a2Spatrick #define IMX8MQ_CLK_ARM			0x102
762e88e8a4fSpatrick 
763*37c734d3Snaddy const struct imxccm_gate imx8mq_gates[] = {
764071150a2Spatrick 	[IMX8MQ_CLK_A53_CG] = { 0x8000, 14 },
765071150a2Spatrick 	[IMX8MQ_CLK_ENET_AXI] = { 0x8880, 14 },
766071150a2Spatrick 	[IMX8MQ_CLK_NAND_USDHC_BUS] = { 0x8900, 14 },
767071150a2Spatrick 	[IMX8MQ_CLK_USB_BUS] = { 0x8b80, 14 },
76888b7f41eSpatrick 	[IMX8MQ_CLK_AHB] = { 0x9000, 14 },
769071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_CTRL] = { 0xa300, 14 },
770071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_PHY] = { 0xa380, 14 },
771071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_AUX] = { 0xa400, 14 },
772071150a2Spatrick 	[IMX8MQ_CLK_ENET_REF] = { 0xa980, 14 },
773071150a2Spatrick 	[IMX8MQ_CLK_ENET_TIMER] = { 0xaa00, 14 },
774071150a2Spatrick 	[IMX8MQ_CLK_ENET_PHY_REF] = { 0xaa80, 14 },
775071150a2Spatrick 	[IMX8MQ_CLK_USDHC1] = { 0xac00, 14 },
776071150a2Spatrick 	[IMX8MQ_CLK_USDHC2] = { 0xac80, 14 },
777071150a2Spatrick 	[IMX8MQ_CLK_I2C1] = { 0xad00, 14 },
778071150a2Spatrick 	[IMX8MQ_CLK_I2C2] = { 0xad80, 14 },
779071150a2Spatrick 	[IMX8MQ_CLK_I2C3] = { 0xae00, 14 },
780071150a2Spatrick 	[IMX8MQ_CLK_I2C4] = { 0xae80, 14 },
781071150a2Spatrick 	[IMX8MQ_CLK_UART1] = { 0xaf00, 14 },
782071150a2Spatrick 	[IMX8MQ_CLK_UART2] = { 0xaf80, 14 },
783071150a2Spatrick 	[IMX8MQ_CLK_UART3] = { 0xb000, 14 },
784071150a2Spatrick 	[IMX8MQ_CLK_UART4] = { 0xb080, 14 },
785071150a2Spatrick 	[IMX8MQ_CLK_USB_CORE_REF] = { 0xb100, 14 },
786071150a2Spatrick 	[IMX8MQ_CLK_USB_PHY_REF] = { 0xb180, 14 },
787071150a2Spatrick 	[IMX8MQ_CLK_ECSPI1] = { 0xb280, 14 },
788071150a2Spatrick 	[IMX8MQ_CLK_ECSPI2] = { 0xb300, 14 },
789071150a2Spatrick 	[IMX8MQ_CLK_PWM1] = { 0xb380, 14 },
790071150a2Spatrick 	[IMX8MQ_CLK_PWM2] = { 0xb400, 14 },
791071150a2Spatrick 	[IMX8MQ_CLK_PWM3] = { 0xb480, 14 },
792071150a2Spatrick 	[IMX8MQ_CLK_PWM4] = { 0xb500, 14 },
793071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_CTRL] = { 0xc000, 14 },
794071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_PHY] = { 0xc080, 14 },
795071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_AUX] = { 0xc100, 14 },
796071150a2Spatrick 	[IMX8MQ_CLK_ECSPI3] = { 0xc180, 14 },
797071150a2Spatrick 	[IMX8MQ_CLK_ECSPI1_ROOT] = { 0x4070, 0, IMX8MQ_CLK_ECSPI1 },
798071150a2Spatrick 	[IMX8MQ_CLK_ECSPI2_ROOT] = { 0x4080, 0, IMX8MQ_CLK_ECSPI2 },
799071150a2Spatrick 	[IMX8MQ_CLK_ECSPI3_ROOT] = { 0x4090, 0, IMX8MQ_CLK_ECSPI3 },
800071150a2Spatrick 	[IMX8MQ_CLK_ENET1_ROOT] = { 0x40a0, 0, IMX8MQ_CLK_ENET_AXI },
801071150a2Spatrick 	[IMX8MQ_CLK_I2C1_ROOT] = { 0x4170, 0, IMX8MQ_CLK_I2C1 },
802071150a2Spatrick 	[IMX8MQ_CLK_I2C2_ROOT] = { 0x4180, 0, IMX8MQ_CLK_I2C2 },
803071150a2Spatrick 	[IMX8MQ_CLK_I2C3_ROOT] = { 0x4190, 0, IMX8MQ_CLK_I2C3 },
804071150a2Spatrick 	[IMX8MQ_CLK_I2C4_ROOT] = { 0x41a0, 0, IMX8MQ_CLK_I2C4 },
805071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_ROOT] = { 0x4250, 0, IMX8MQ_CLK_PCIE1_CTRL },
806071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_ROOT] = { 0x4640, 0, IMX8MQ_CLK_PCIE2_CTRL },
807071150a2Spatrick 	[IMX8MQ_CLK_PWM1_ROOT] = { 0x4280, 0, IMX8MQ_CLK_PWM1 },
808071150a2Spatrick 	[IMX8MQ_CLK_PWM2_ROOT] = { 0x4290, 0, IMX8MQ_CLK_PWM2 },
809071150a2Spatrick 	[IMX8MQ_CLK_PWM3_ROOT] = { 0x42a0, 0, IMX8MQ_CLK_PWM3 },
810071150a2Spatrick 	[IMX8MQ_CLK_PWM4_ROOT] = { 0x42b0, 0, IMX8MQ_CLK_PWM4 },
811071150a2Spatrick 	[IMX8MQ_CLK_UART1_ROOT] = { 0x4490, 0, IMX8MQ_CLK_UART1 },
812071150a2Spatrick 	[IMX8MQ_CLK_UART2_ROOT] = { 0x44a0, 0, IMX8MQ_CLK_UART2 },
813071150a2Spatrick 	[IMX8MQ_CLK_UART3_ROOT] = { 0x44b0, 0, IMX8MQ_CLK_UART3 },
814071150a2Spatrick 	[IMX8MQ_CLK_UART4_ROOT] = { 0x44c0, 0, IMX8MQ_CLK_UART4 },
815ab2b5bd0Spatrick 	[IMX8MQ_CLK_USB1_CTRL_ROOT] = { 0x44d0, 0, IMX8MQ_CLK_USB_BUS },
816ab2b5bd0Spatrick 	[IMX8MQ_CLK_USB2_CTRL_ROOT] = { 0x44e0, 0, IMX8MQ_CLK_USB_BUS },
817071150a2Spatrick 	[IMX8MQ_CLK_USB1_PHY_ROOT] = { 0x44f0, 0, IMX8MQ_CLK_USB_PHY_REF },
818071150a2Spatrick 	[IMX8MQ_CLK_USB2_PHY_ROOT] = { 0x4500, 0, IMX8MQ_CLK_USB_PHY_REF },
819071150a2Spatrick 	[IMX8MQ_CLK_USDHC1_ROOT] = { 0x4510, 0, IMX8MQ_CLK_USDHC1 },
820071150a2Spatrick 	[IMX8MQ_CLK_USDHC2_ROOT] = { 0x4520, 0, IMX8MQ_CLK_USDHC2 },
8219d2954c3Spatrick 	[IMX8MQ_CLK_TMU_ROOT] = { 0x4620, 0 },
822783aabe8Spatrick 	[IMX8MQ_CLK_OCOTP_ROOT] = { 0x4220, 0, IMX8MQ_CLK_IPG_ROOT },
823e88e8a4fSpatrick };
824e88e8a4fSpatrick 
825*37c734d3Snaddy const struct imxccm_divider imx8mq_divs[] = {
826e88e8a4fSpatrick 	[IMX8MQ_CLK_A53_DIV] = { 0x8000, 0, 0x7, IMX8MQ_CLK_A53_CG },
827071150a2Spatrick 	[IMX8MQ_CLK_ENET_AXI] = { 0x8880, 0, 0x3f },
828071150a2Spatrick 	[IMX8MQ_CLK_NAND_USDHC_BUS] = { 0x8900, 0, 0x3f },
829071150a2Spatrick 	[IMX8MQ_CLK_USB_BUS] = { 0x8b80, 0, 0x3f },
83088b7f41eSpatrick 	[IMX8MQ_CLK_AHB] = { 0x9000, 0, 0x3f },
831071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_CTRL] = { 0xa300, 0, 0x3f },
832071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_PHY] = { 0xa380, 0, 0x3f },
833071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_AUX] = { 0xa400, 0, 0x3f },
834071150a2Spatrick 	[IMX8MQ_CLK_ENET_REF] = { 0xa980, 0, 0x3f },
835071150a2Spatrick 	[IMX8MQ_CLK_ENET_TIMER] = { 0xaa00, 0, 0x3f },
836071150a2Spatrick 	[IMX8MQ_CLK_ENET_PHY_REF] = { 0xaa80, 0, 0x3f },
837071150a2Spatrick 	[IMX8MQ_CLK_USDHC1] = { 0xac00, 0, 0x3f },
838071150a2Spatrick 	[IMX8MQ_CLK_USDHC2] = { 0xac80, 0, 0x3f },
839071150a2Spatrick 	[IMX8MQ_CLK_I2C1] = { 0xad00, 0, 0x3f },
840071150a2Spatrick 	[IMX8MQ_CLK_I2C2] = { 0xad80, 0, 0x3f },
841071150a2Spatrick 	[IMX8MQ_CLK_I2C3] = { 0xae00, 0, 0x3f },
842071150a2Spatrick 	[IMX8MQ_CLK_I2C4] = { 0xae80, 0, 0x3f },
843071150a2Spatrick 	[IMX8MQ_CLK_UART1] = { 0xaf00, 0, 0x3f },
844071150a2Spatrick 	[IMX8MQ_CLK_UART2] = { 0xaf80, 0, 0x3f },
845071150a2Spatrick 	[IMX8MQ_CLK_UART3] = { 0xb000, 0, 0x3f },
846071150a2Spatrick 	[IMX8MQ_CLK_UART4] = { 0xb080, 0, 0x3f },
847071150a2Spatrick 	[IMX8MQ_CLK_USB_CORE_REF] = { 0xb100, 0, 0x3f },
848071150a2Spatrick 	[IMX8MQ_CLK_USB_PHY_REF] = { 0xb180, 0, 0x3f },
849071150a2Spatrick 	[IMX8MQ_CLK_ECSPI1] = { 0xb280, 0, 0x3f },
850071150a2Spatrick 	[IMX8MQ_CLK_ECSPI2] = { 0xb300, 0, 0x3f },
851071150a2Spatrick 	[IMX8MQ_CLK_PWM1] = { 0xb380, 0, 0x3f },
852071150a2Spatrick 	[IMX8MQ_CLK_PWM2] = { 0xb400, 0, 0x3f },
853071150a2Spatrick 	[IMX8MQ_CLK_PWM3] = { 0xb480, 0, 0x3f },
854071150a2Spatrick 	[IMX8MQ_CLK_PWM4] = { 0xb500, 0, 0x3f },
855071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_CTRL] = { 0xc000, 0, 0x3f },
856071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_PHY] = { 0xc080, 0, 0x3f },
857071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_AUX] = { 0xc100, 0, 0x3f },
858071150a2Spatrick 	[IMX8MQ_CLK_ECSPI3] = { 0xc180, 0, 0x3f },
85988b7f41eSpatrick 	[IMX8MQ_CLK_IPG_ROOT] = { 0x9080, 0, 0x1, IMX8MQ_CLK_AHB },
860071150a2Spatrick };
861071150a2Spatrick 
862*37c734d3Snaddy const struct imxccm_divider imx8mq_predivs[] = {
863071150a2Spatrick 	[IMX8MQ_CLK_ENET_AXI] = { 0x8880, 16, 0x7 },
864071150a2Spatrick 	[IMX8MQ_CLK_NAND_USDHC_BUS] = { 0x8900, 16, 0x7 },
865071150a2Spatrick 	[IMX8MQ_CLK_USB_BUS] = { 0x8b80, 16, 0x7 },
86688b7f41eSpatrick 	[IMX8MQ_CLK_AHB] = { 0x9000, 16, 0x7 },
867071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_CTRL] = { 0xa300, 16, 0x7 },
868071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_PHY] = { 0xa380, 16, 0x7 },
869071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_AUX] = { 0xa400, 16, 0x7 },
870071150a2Spatrick 	[IMX8MQ_CLK_ENET_REF] = { 0xa980, 16, 0x7 },
871071150a2Spatrick 	[IMX8MQ_CLK_ENET_TIMER] = { 0xaa00, 16, 0x7 },
872071150a2Spatrick 	[IMX8MQ_CLK_ENET_PHY_REF] = { 0xaa80, 16, 0x7 },
873071150a2Spatrick 	[IMX8MQ_CLK_USDHC1] = { 0xac00, 16, 0x7 },
874071150a2Spatrick 	[IMX8MQ_CLK_USDHC2] = { 0xac80, 16, 0x7 },
875071150a2Spatrick 	[IMX8MQ_CLK_I2C1] = { 0xad00, 16, 0x7 },
876071150a2Spatrick 	[IMX8MQ_CLK_I2C2] = { 0xad80, 16, 0x7 },
877071150a2Spatrick 	[IMX8MQ_CLK_I2C3] = { 0xae00, 16, 0x7 },
878071150a2Spatrick 	[IMX8MQ_CLK_I2C4] = { 0xae80, 16, 0x7 },
879071150a2Spatrick 	[IMX8MQ_CLK_UART1] = { 0xaf00, 16, 0x7 },
880071150a2Spatrick 	[IMX8MQ_CLK_UART2] = { 0xaf80, 16, 0x7 },
881071150a2Spatrick 	[IMX8MQ_CLK_UART3] = { 0xb000, 16, 0x7 },
882071150a2Spatrick 	[IMX8MQ_CLK_UART4] = { 0xb080, 16, 0x7 },
883071150a2Spatrick 	[IMX8MQ_CLK_USB_CORE_REF] = { 0xb100, 16, 0x7 },
884071150a2Spatrick 	[IMX8MQ_CLK_USB_PHY_REF] = { 0xb180, 16, 0x7 },
885071150a2Spatrick 	[IMX8MQ_CLK_ECSPI1] = { 0xb280, 16, 0x7 },
886071150a2Spatrick 	[IMX8MQ_CLK_ECSPI2] = { 0xb300, 16, 0x7 },
887071150a2Spatrick 	[IMX8MQ_CLK_PWM1] = { 0xb380, 16, 0x7 },
888071150a2Spatrick 	[IMX8MQ_CLK_PWM2] = { 0xb400, 16, 0x7 },
889071150a2Spatrick 	[IMX8MQ_CLK_PWM3] = { 0xb480, 16, 0x7 },
890071150a2Spatrick 	[IMX8MQ_CLK_PWM4] = { 0xb500, 16, 0x7 },
891071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_CTRL] = { 0xc000, 16, 0x7 },
892071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_PHY] = { 0xc080, 16, 0x7 },
893071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_AUX] = { 0xc100, 16, 0x7 },
894071150a2Spatrick 	[IMX8MQ_CLK_ECSPI3] = { 0xc180, 16, 0x7 },
895e88e8a4fSpatrick };
896e88e8a4fSpatrick 
897*37c734d3Snaddy const struct imxccm_mux imx8mq_muxs[] = {
898e88e8a4fSpatrick 	[IMX8MQ_CLK_A53_SRC] = { 0x8000, 24, 0x7 },
899071150a2Spatrick 	[IMX8MQ_CLK_ENET_AXI] = { 0x8880, 24, 0x7 },
900071150a2Spatrick 	[IMX8MQ_CLK_NAND_USDHC_BUS] = { 0x8900, 24, 0x7 },
901071150a2Spatrick 	[IMX8MQ_CLK_USB_BUS] = { 0x8b80, 24, 0x7 },
90288b7f41eSpatrick 	[IMX8MQ_CLK_AHB] = { 0x9000, 24, 0x7 },
903071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_CTRL] = { 0xa300, 24, 0x7 },
904071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_PHY] = { 0xa380, 24, 0x7 },
905071150a2Spatrick 	[IMX8MQ_CLK_PCIE1_AUX] = { 0xa400, 24, 0x7 },
906071150a2Spatrick 	[IMX8MQ_CLK_ENET_REF] = { 0xa980, 24, 0x7 },
907071150a2Spatrick 	[IMX8MQ_CLK_ENET_TIMER] = { 0xaa00, 24, 0x7 },
908071150a2Spatrick 	[IMX8MQ_CLK_ENET_PHY_REF] = { 0xaa80, 24, 0x7 },
909071150a2Spatrick 	[IMX8MQ_CLK_USDHC1] = { 0xac00, 24, 0x7 },
910071150a2Spatrick 	[IMX8MQ_CLK_USDHC2] = { 0xac80, 24, 0x7 },
911071150a2Spatrick 	[IMX8MQ_CLK_I2C1] = { 0xad00, 24, 0x7 },
912071150a2Spatrick 	[IMX8MQ_CLK_I2C2] = { 0xad80, 24, 0x7 },
913071150a2Spatrick 	[IMX8MQ_CLK_I2C3] = { 0xae00, 24, 0x7 },
914071150a2Spatrick 	[IMX8MQ_CLK_I2C4] = { 0xae80, 24, 0x7 },
915071150a2Spatrick 	[IMX8MQ_CLK_UART1] = { 0xaf00, 24, 0x7 },
916071150a2Spatrick 	[IMX8MQ_CLK_UART2] = { 0xaf80, 24, 0x7 },
917071150a2Spatrick 	[IMX8MQ_CLK_UART3] = { 0xb000, 24, 0x7 },
918071150a2Spatrick 	[IMX8MQ_CLK_UART4] = { 0xb080, 24, 0x7 },
919071150a2Spatrick 	[IMX8MQ_CLK_USB_CORE_REF] = { 0xb100, 24, 0x7 },
920071150a2Spatrick 	[IMX8MQ_CLK_USB_PHY_REF] = { 0xb180, 24, 0x7 },
921071150a2Spatrick 	[IMX8MQ_CLK_ECSPI1] = { 0xb280, 24, 0x7 },
922071150a2Spatrick 	[IMX8MQ_CLK_ECSPI2] = { 0xb300, 24, 0x7 },
923071150a2Spatrick 	[IMX8MQ_CLK_PWM1] = { 0xb380, 24, 0x7 },
924071150a2Spatrick 	[IMX8MQ_CLK_PWM2] = { 0xb400, 24, 0x7 },
925071150a2Spatrick 	[IMX8MQ_CLK_PWM3] = { 0xb480, 24, 0x7 },
926071150a2Spatrick 	[IMX8MQ_CLK_PWM4] = { 0xb500, 24, 0x7 },
927071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_CTRL] = { 0xc000, 24, 0x7 },
928071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_PHY] = { 0xc080, 24, 0x7 },
929071150a2Spatrick 	[IMX8MQ_CLK_PCIE2_AUX] = { 0xc100, 24, 0x7 },
930071150a2Spatrick 	[IMX8MQ_CLK_ECSPI3] = { 0xc180, 24, 0x7 },
931e88e8a4fSpatrick };
932