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