Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: imx5: introduce DT includes for clock provider

Use clock defines in order to make devicetrees more
human readable.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>

authored by

Lucas Stach and committed by
Shawn Guo
490dd880 c2ddbdf1

+569 -599
+3 -193
Documentation/devicetree/bindings/clock/imx5-clock.txt
··· 7 7 - #clock-cells: Should be <1> 8 8 9 9 The clock consumer should specify the desired clock by having the clock 10 - ID in its "clocks" phandle cell. The following is a full list of i.MX5 11 - clocks and IDs. 12 - 13 - Clock ID 14 - --------------------------- 15 - dummy 0 16 - ckil 1 17 - osc 2 18 - ckih1 3 19 - ckih2 4 20 - ahb 5 21 - ipg 6 22 - axi_a 7 23 - axi_b 8 24 - uart_pred 9 25 - uart_root 10 26 - esdhc_a_pred 11 27 - esdhc_b_pred 12 28 - esdhc_c_s 13 29 - esdhc_d_s 14 30 - emi_sel 15 31 - emi_slow_podf 16 32 - nfc_podf 17 33 - ecspi_pred 18 34 - ecspi_podf 19 35 - usboh3_pred 20 36 - usboh3_podf 21 37 - usb_phy_pred 22 38 - usb_phy_podf 23 39 - cpu_podf 24 40 - di_pred 25 41 - tve_s 27 42 - uart1_ipg_gate 28 43 - uart1_per_gate 29 44 - uart2_ipg_gate 30 45 - uart2_per_gate 31 46 - uart3_ipg_gate 32 47 - uart3_per_gate 33 48 - i2c1_gate 34 49 - i2c2_gate 35 50 - gpt_ipg_gate 36 51 - pwm1_ipg_gate 37 52 - pwm1_hf_gate 38 53 - pwm2_ipg_gate 39 54 - pwm2_hf_gate 40 55 - gpt_hf_gate 41 56 - fec_gate 42 57 - usboh3_per_gate 43 58 - esdhc1_ipg_gate 44 59 - esdhc2_ipg_gate 45 60 - esdhc3_ipg_gate 46 61 - esdhc4_ipg_gate 47 62 - ssi1_ipg_gate 48 63 - ssi2_ipg_gate 49 64 - ssi3_ipg_gate 50 65 - ecspi1_ipg_gate 51 66 - ecspi1_per_gate 52 67 - ecspi2_ipg_gate 53 68 - ecspi2_per_gate 54 69 - cspi_ipg_gate 55 70 - sdma_gate 56 71 - emi_slow_gate 57 72 - ipu_s 58 73 - ipu_gate 59 74 - nfc_gate 60 75 - ipu_di1_gate 61 76 - vpu_s 62 77 - vpu_gate 63 78 - vpu_reference_gate 64 79 - uart4_ipg_gate 65 80 - uart4_per_gate 66 81 - uart5_ipg_gate 67 82 - uart5_per_gate 68 83 - tve_gate 69 84 - tve_pred 70 85 - esdhc1_per_gate 71 86 - esdhc2_per_gate 72 87 - esdhc3_per_gate 73 88 - esdhc4_per_gate 74 89 - usb_phy_gate 75 90 - hsi2c_gate 76 91 - mipi_hsc1_gate 77 92 - mipi_hsc2_gate 78 93 - mipi_esc_gate 79 94 - mipi_hsp_gate 80 95 - ldb_di1_div_3_5 81 96 - ldb_di1_div 82 97 - ldb_di0_div_3_5 83 98 - ldb_di0_div 84 99 - ldb_di1_gate 85 100 - can2_serial_gate 86 101 - can2_ipg_gate 87 102 - i2c3_gate 88 103 - lp_apm 89 104 - periph_apm 90 105 - main_bus 91 106 - ahb_max 92 107 - aips_tz1 93 108 - aips_tz2 94 109 - tmax1 95 110 - tmax2 96 111 - tmax3 97 112 - spba 98 113 - uart_sel 99 114 - esdhc_a_sel 100 115 - esdhc_b_sel 101 116 - esdhc_a_podf 102 117 - esdhc_b_podf 103 118 - ecspi_sel 104 119 - usboh3_sel 105 120 - usb_phy_sel 106 121 - iim_gate 107 122 - usboh3_gate 108 123 - emi_fast_gate 109 124 - ipu_di0_gate 110 125 - gpc_dvfs 111 126 - pll1_sw 112 127 - pll2_sw 113 128 - pll3_sw 114 129 - ipu_di0_sel 115 130 - ipu_di1_sel 116 131 - tve_ext_sel 117 132 - mx51_mipi 118 133 - pll4_sw 119 134 - ldb_di1_sel 120 135 - di_pll4_podf 121 136 - ldb_di0_sel 122 137 - ldb_di0_gate 123 138 - usb_phy1_gate 124 139 - usb_phy2_gate 125 140 - per_lp_apm 126 141 - per_pred1 127 142 - per_pred2 128 143 - per_podf 129 144 - per_root 130 145 - ssi_apm 131 146 - ssi1_root_sel 132 147 - ssi2_root_sel 133 148 - ssi3_root_sel 134 149 - ssi_ext1_sel 135 150 - ssi_ext2_sel 136 151 - ssi_ext1_com_sel 137 152 - ssi_ext2_com_sel 138 153 - ssi1_root_pred 139 154 - ssi1_root_podf 140 155 - ssi2_root_pred 141 156 - ssi2_root_podf 142 157 - ssi_ext1_pred 143 158 - ssi_ext1_podf 144 159 - ssi_ext2_pred 145 160 - ssi_ext2_podf 146 161 - ssi1_root_gate 147 162 - ssi2_root_gate 148 163 - ssi3_root_gate 149 164 - ssi_ext1_gate 150 165 - ssi_ext2_gate 151 166 - epit1_ipg_gate 152 167 - epit1_hf_gate 153 168 - epit2_ipg_gate 154 169 - epit2_hf_gate 155 170 - can_sel 156 171 - can1_serial_gate 157 172 - can1_ipg_gate 158 173 - owire_gate 159 174 - gpu3d_s 160 175 - gpu2d_s 161 176 - gpu3d_gate 162 177 - gpu2d_gate 163 178 - garb_gate 164 179 - cko1_sel 165 180 - cko1_podf 166 181 - cko1 167 182 - cko2_sel 168 183 - cko2_podf 169 184 - cko2 170 185 - srtc_gate 171 186 - pata_gate 172 187 - sata_gate 173 188 - spdif_xtal_sel 174 189 - spdif0_sel 175 190 - spdif1_sel 176 191 - spdif0_pred 177 192 - spdif0_podf 178 193 - spdif1_pred 179 194 - spdif1_podf 180 195 - spdif0_com_sel 181 196 - spdif1_com_sel 182 197 - spdif0_gate 183 198 - spdif1_gate 184 199 - spdif_ipg_gate 185 200 - ocram 186 201 - sahara_ipg_gate 187 10 + ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx5-clock.h 11 + for the full list of i.MX5 clock IDs. 202 12 203 13 Examples (for mx53): 204 14 ··· 23 213 compatible = "fsl,imx53-flexcan", "fsl,p1010-flexcan"; 24 214 reg = <0x53fc8000 0x4000>; 25 215 interrupts = <82>; 26 - clocks = <&clks 158>, <&clks 157>; 216 + clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>; 27 217 clock-names = "ipg", "per"; 28 218 status = "disabled"; 29 219 };
+364 -406
arch/arm/mach-imx/clk-imx51-imx53.c
··· 16 16 #include <linux/of.h> 17 17 #include <linux/of_address.h> 18 18 #include <linux/of_irq.h> 19 + #include <dt-bindings/clock/imx5-clock.h> 19 20 20 21 #include "crm-regs-imx5.h" 21 22 #include "clk.h" ··· 83 82 static const char *spdif0_com_sel[] = { "spdif0_podf", "ssi1_root_gate", }; 84 83 static const char *mx51_spdif1_com_sel[] = { "spdif1_podf", "ssi2_root_gate", }; 85 84 86 - 87 - enum imx5_clks { 88 - dummy, ckil, osc, ckih1, ckih2, ahb, ipg, axi_a, axi_b, uart_pred, 89 - uart_root, esdhc_a_pred, esdhc_b_pred, esdhc_c_s, esdhc_d_s, 90 - emi_sel, emi_slow_podf, nfc_podf, ecspi_pred, ecspi_podf, usboh3_pred, 91 - usboh3_podf, usb_phy_pred, usb_phy_podf, cpu_podf, di_pred, tve_di_unused, 92 - tve_s, uart1_ipg_gate, uart1_per_gate, uart2_ipg_gate, 93 - uart2_per_gate, uart3_ipg_gate, uart3_per_gate, i2c1_gate, i2c2_gate, 94 - gpt_ipg_gate, pwm1_ipg_gate, pwm1_hf_gate, pwm2_ipg_gate, pwm2_hf_gate, 95 - gpt_hf_gate, fec_gate, usboh3_per_gate, esdhc1_ipg_gate, esdhc2_ipg_gate, 96 - esdhc3_ipg_gate, esdhc4_ipg_gate, ssi1_ipg_gate, ssi2_ipg_gate, 97 - ssi3_ipg_gate, ecspi1_ipg_gate, ecspi1_per_gate, ecspi2_ipg_gate, 98 - ecspi2_per_gate, cspi_ipg_gate, sdma_gate, emi_slow_gate, ipu_s, 99 - ipu_gate, nfc_gate, ipu_di1_gate, vpu_s, vpu_gate, 100 - vpu_reference_gate, uart4_ipg_gate, uart4_per_gate, uart5_ipg_gate, 101 - uart5_per_gate, tve_gate, tve_pred, esdhc1_per_gate, esdhc2_per_gate, 102 - esdhc3_per_gate, esdhc4_per_gate, usb_phy_gate, hsi2c_gate, 103 - mipi_hsc1_gate, mipi_hsc2_gate, mipi_esc_gate, mipi_hsp_gate, 104 - ldb_di1_div_3_5, ldb_di1_div, ldb_di0_div_3_5, ldb_di0_div, 105 - ldb_di1_gate, can2_serial_gate, can2_ipg_gate, i2c3_gate, lp_apm, 106 - periph_apm, main_bus, ahb_max, aips_tz1, aips_tz2, tmax1, tmax2, 107 - tmax3, spba, uart_sel, esdhc_a_sel, esdhc_b_sel, esdhc_a_podf, 108 - esdhc_b_podf, ecspi_sel, usboh3_sel, usb_phy_sel, iim_gate, 109 - usboh3_gate, emi_fast_gate, ipu_di0_gate,gpc_dvfs, pll1_sw, pll2_sw, 110 - pll3_sw, ipu_di0_sel, ipu_di1_sel, tve_ext_sel, mx51_mipi, pll4_sw, 111 - ldb_di1_sel, di_pll4_podf, ldb_di0_sel, ldb_di0_gate, usb_phy1_gate, 112 - usb_phy2_gate, per_lp_apm, per_pred1, per_pred2, per_podf, per_root, 113 - ssi_apm, ssi1_root_sel, ssi2_root_sel, ssi3_root_sel, ssi_ext1_sel, 114 - ssi_ext2_sel, ssi_ext1_com_sel, ssi_ext2_com_sel, ssi1_root_pred, 115 - ssi1_root_podf, ssi2_root_pred, ssi2_root_podf, ssi_ext1_pred, 116 - ssi_ext1_podf, ssi_ext2_pred, ssi_ext2_podf, ssi1_root_gate, 117 - ssi2_root_gate, ssi3_root_gate, ssi_ext1_gate, ssi_ext2_gate, 118 - epit1_ipg_gate, epit1_hf_gate, epit2_ipg_gate, epit2_hf_gate, 119 - can_sel, can1_serial_gate, can1_ipg_gate, 120 - owire_gate, gpu3d_s, gpu2d_s, gpu3d_gate, gpu2d_gate, garb_gate, 121 - cko1_sel, cko1_podf, cko1, 122 - cko2_sel, cko2_podf, cko2, 123 - srtc_gate, pata_gate, sata_gate, spdif_xtal_sel, spdif0_sel, 124 - spdif1_sel, spdif0_pred, spdif0_podf, spdif1_pred, spdif1_podf, 125 - spdif0_com_s, spdif1_com_sel, spdif0_gate, spdif1_gate, spdif_ipg_gate, 126 - ocram, sahara_ipg_gate, clk_max 127 - }; 128 - 129 - static struct clk *clk[clk_max]; 85 + static struct clk *clk[IMX5_CLK_END]; 130 86 static struct clk_onecell_data clk_data; 131 87 132 88 static void __init mx5_clocks_common_init(unsigned long rate_ckil, ··· 92 134 { 93 135 int i; 94 136 95 - clk[dummy] = imx_clk_fixed("dummy", 0); 96 - clk[ckil] = imx_obtain_fixed_clock("ckil", rate_ckil); 97 - clk[osc] = imx_obtain_fixed_clock("osc", rate_osc); 98 - clk[ckih1] = imx_obtain_fixed_clock("ckih1", rate_ckih1); 99 - clk[ckih2] = imx_obtain_fixed_clock("ckih2", rate_ckih2); 137 + clk[IMX5_CLK_DUMMY] = imx_clk_fixed("dummy", 0); 138 + clk[IMX5_CLK_CKIL] = imx_obtain_fixed_clock("ckil", rate_ckil); 139 + clk[IMX5_CLK_OSC] = imx_obtain_fixed_clock("osc", rate_osc); 140 + clk[IMX5_CLK_CKIH1] = imx_obtain_fixed_clock("ckih1", rate_ckih1); 141 + clk[IMX5_CLK_CKIH2] = imx_obtain_fixed_clock("ckih2", rate_ckih2); 100 142 101 - clk[lp_apm] = imx_clk_mux("lp_apm", MXC_CCM_CCSR, 9, 1, 102 - lp_apm_sel, ARRAY_SIZE(lp_apm_sel)); 103 - clk[periph_apm] = imx_clk_mux("periph_apm", MXC_CCM_CBCMR, 12, 2, 104 - periph_apm_sel, ARRAY_SIZE(periph_apm_sel)); 105 - clk[main_bus] = imx_clk_mux("main_bus", MXC_CCM_CBCDR, 25, 1, 106 - main_bus_sel, ARRAY_SIZE(main_bus_sel)); 107 - clk[per_lp_apm] = imx_clk_mux("per_lp_apm", MXC_CCM_CBCMR, 1, 1, 108 - per_lp_apm_sel, ARRAY_SIZE(per_lp_apm_sel)); 109 - clk[per_pred1] = imx_clk_divider("per_pred1", "per_lp_apm", MXC_CCM_CBCDR, 6, 2); 110 - clk[per_pred2] = imx_clk_divider("per_pred2", "per_pred1", MXC_CCM_CBCDR, 3, 3); 111 - clk[per_podf] = imx_clk_divider("per_podf", "per_pred2", MXC_CCM_CBCDR, 0, 3); 112 - clk[per_root] = imx_clk_mux("per_root", MXC_CCM_CBCMR, 0, 1, 113 - per_root_sel, ARRAY_SIZE(per_root_sel)); 114 - clk[ahb] = imx_clk_divider("ahb", "main_bus", MXC_CCM_CBCDR, 10, 3); 115 - clk[ahb_max] = imx_clk_gate2("ahb_max", "ahb", MXC_CCM_CCGR0, 28); 116 - clk[aips_tz1] = imx_clk_gate2("aips_tz1", "ahb", MXC_CCM_CCGR0, 24); 117 - clk[aips_tz2] = imx_clk_gate2("aips_tz2", "ahb", MXC_CCM_CCGR0, 26); 118 - clk[tmax1] = imx_clk_gate2("tmax1", "ahb", MXC_CCM_CCGR1, 0); 119 - clk[tmax2] = imx_clk_gate2("tmax2", "ahb", MXC_CCM_CCGR1, 2); 120 - clk[tmax3] = imx_clk_gate2("tmax3", "ahb", MXC_CCM_CCGR1, 4); 121 - clk[spba] = imx_clk_gate2("spba", "ipg", MXC_CCM_CCGR5, 0); 122 - clk[ipg] = imx_clk_divider("ipg", "ahb", MXC_CCM_CBCDR, 8, 2); 123 - clk[axi_a] = imx_clk_divider("axi_a", "main_bus", MXC_CCM_CBCDR, 16, 3); 124 - clk[axi_b] = imx_clk_divider("axi_b", "main_bus", MXC_CCM_CBCDR, 19, 3); 125 - clk[uart_sel] = imx_clk_mux("uart_sel", MXC_CCM_CSCMR1, 24, 2, 126 - standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 127 - clk[uart_pred] = imx_clk_divider("uart_pred", "uart_sel", MXC_CCM_CSCDR1, 3, 3); 128 - clk[uart_root] = imx_clk_divider("uart_root", "uart_pred", MXC_CCM_CSCDR1, 0, 3); 143 + clk[IMX5_CLK_LP_APM] = imx_clk_mux("lp_apm", MXC_CCM_CCSR, 9, 1, 144 + lp_apm_sel, ARRAY_SIZE(lp_apm_sel)); 145 + clk[IMX5_CLK_PERIPH_APM] = imx_clk_mux("periph_apm", MXC_CCM_CBCMR, 12, 2, 146 + periph_apm_sel, ARRAY_SIZE(periph_apm_sel)); 147 + clk[IMX5_CLK_MAIN_BUS] = imx_clk_mux("main_bus", MXC_CCM_CBCDR, 25, 1, 148 + main_bus_sel, ARRAY_SIZE(main_bus_sel)); 149 + clk[IMX5_CLK_PER_LP_APM] = imx_clk_mux("per_lp_apm", MXC_CCM_CBCMR, 1, 1, 150 + per_lp_apm_sel, ARRAY_SIZE(per_lp_apm_sel)); 151 + clk[IMX5_CLK_PER_PRED1] = imx_clk_divider("per_pred1", "per_lp_apm", MXC_CCM_CBCDR, 6, 2); 152 + clk[IMX5_CLK_PER_PRED2] = imx_clk_divider("per_pred2", "per_pred1", MXC_CCM_CBCDR, 3, 3); 153 + clk[IMX5_CLK_PER_PODF] = imx_clk_divider("per_podf", "per_pred2", MXC_CCM_CBCDR, 0, 3); 154 + clk[IMX5_CLK_PER_ROOT] = imx_clk_mux("per_root", MXC_CCM_CBCMR, 0, 1, 155 + per_root_sel, ARRAY_SIZE(per_root_sel)); 156 + clk[IMX5_CLK_AHB] = imx_clk_divider("ahb", "main_bus", MXC_CCM_CBCDR, 10, 3); 157 + clk[IMX5_CLK_AHB_MAX] = imx_clk_gate2("ahb_max", "ahb", MXC_CCM_CCGR0, 28); 158 + clk[IMX5_CLK_AIPS_TZ1] = imx_clk_gate2("aips_tz1", "ahb", MXC_CCM_CCGR0, 24); 159 + clk[IMX5_CLK_AIPS_TZ2] = imx_clk_gate2("aips_tz2", "ahb", MXC_CCM_CCGR0, 26); 160 + clk[IMX5_CLK_TMAX1] = imx_clk_gate2("tmax1", "ahb", MXC_CCM_CCGR1, 0); 161 + clk[IMX5_CLK_TMAX2] = imx_clk_gate2("tmax2", "ahb", MXC_CCM_CCGR1, 2); 162 + clk[IMX5_CLK_TMAX3] = imx_clk_gate2("tmax3", "ahb", MXC_CCM_CCGR1, 4); 163 + clk[IMX5_CLK_SPBA] = imx_clk_gate2("spba", "ipg", MXC_CCM_CCGR5, 0); 164 + clk[IMX5_CLK_IPG] = imx_clk_divider("ipg", "ahb", MXC_CCM_CBCDR, 8, 2); 165 + clk[IMX5_CLK_AXI_A] = imx_clk_divider("axi_a", "main_bus", MXC_CCM_CBCDR, 16, 3); 166 + clk[IMX5_CLK_AXI_B] = imx_clk_divider("axi_b", "main_bus", MXC_CCM_CBCDR, 19, 3); 167 + clk[IMX5_CLK_UART_SEL] = imx_clk_mux("uart_sel", MXC_CCM_CSCMR1, 24, 2, 168 + standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 169 + clk[IMX5_CLK_UART_PRED] = imx_clk_divider("uart_pred", "uart_sel", MXC_CCM_CSCDR1, 3, 3); 170 + clk[IMX5_CLK_UART_ROOT] = imx_clk_divider("uart_root", "uart_pred", MXC_CCM_CSCDR1, 0, 3); 129 171 130 - clk[esdhc_a_sel] = imx_clk_mux("esdhc_a_sel", MXC_CCM_CSCMR1, 20, 2, 131 - standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 132 - clk[esdhc_b_sel] = imx_clk_mux("esdhc_b_sel", MXC_CCM_CSCMR1, 16, 2, 133 - standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 134 - clk[esdhc_a_pred] = imx_clk_divider("esdhc_a_pred", "esdhc_a_sel", MXC_CCM_CSCDR1, 16, 3); 135 - clk[esdhc_a_podf] = imx_clk_divider("esdhc_a_podf", "esdhc_a_pred", MXC_CCM_CSCDR1, 11, 3); 136 - clk[esdhc_b_pred] = imx_clk_divider("esdhc_b_pred", "esdhc_b_sel", MXC_CCM_CSCDR1, 22, 3); 137 - clk[esdhc_b_podf] = imx_clk_divider("esdhc_b_podf", "esdhc_b_pred", MXC_CCM_CSCDR1, 19, 3); 138 - clk[esdhc_c_s] = imx_clk_mux("esdhc_c_sel", MXC_CCM_CSCMR1, 19, 1, esdhc_c_sel, ARRAY_SIZE(esdhc_c_sel)); 139 - clk[esdhc_d_s] = imx_clk_mux("esdhc_d_sel", MXC_CCM_CSCMR1, 18, 1, esdhc_d_sel, ARRAY_SIZE(esdhc_d_sel)); 172 + clk[IMX5_CLK_ESDHC_A_SEL] = imx_clk_mux("esdhc_a_sel", MXC_CCM_CSCMR1, 20, 2, 173 + standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 174 + clk[IMX5_CLK_ESDHC_B_SEL] = imx_clk_mux("esdhc_b_sel", MXC_CCM_CSCMR1, 16, 2, 175 + standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 176 + clk[IMX5_CLK_ESDHC_A_PRED] = imx_clk_divider("esdhc_a_pred", "esdhc_a_sel", MXC_CCM_CSCDR1, 16, 3); 177 + clk[IMX5_CLK_ESDHC_A_PODF] = imx_clk_divider("esdhc_a_podf", "esdhc_a_pred", MXC_CCM_CSCDR1, 11, 3); 178 + clk[IMX5_CLK_ESDHC_B_PRED] = imx_clk_divider("esdhc_b_pred", "esdhc_b_sel", MXC_CCM_CSCDR1, 22, 3); 179 + clk[IMX5_CLK_ESDHC_B_PODF] = imx_clk_divider("esdhc_b_podf", "esdhc_b_pred", MXC_CCM_CSCDR1, 19, 3); 180 + clk[IMX5_CLK_ESDHC_C_SEL] = imx_clk_mux("esdhc_c_sel", MXC_CCM_CSCMR1, 19, 1, esdhc_c_sel, ARRAY_SIZE(esdhc_c_sel)); 181 + clk[IMX5_CLK_ESDHC_D_SEL] = imx_clk_mux("esdhc_d_sel", MXC_CCM_CSCMR1, 18, 1, esdhc_d_sel, ARRAY_SIZE(esdhc_d_sel)); 140 182 141 - clk[emi_sel] = imx_clk_mux("emi_sel", MXC_CCM_CBCDR, 26, 1, 142 - emi_slow_sel, ARRAY_SIZE(emi_slow_sel)); 143 - clk[emi_slow_podf] = imx_clk_divider("emi_slow_podf", "emi_sel", MXC_CCM_CBCDR, 22, 3); 144 - clk[nfc_podf] = imx_clk_divider("nfc_podf", "emi_slow_podf", MXC_CCM_CBCDR, 13, 3); 145 - clk[ecspi_sel] = imx_clk_mux("ecspi_sel", MXC_CCM_CSCMR1, 4, 2, 146 - standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 147 - clk[ecspi_pred] = imx_clk_divider("ecspi_pred", "ecspi_sel", MXC_CCM_CSCDR2, 25, 3); 148 - clk[ecspi_podf] = imx_clk_divider("ecspi_podf", "ecspi_pred", MXC_CCM_CSCDR2, 19, 6); 149 - clk[usboh3_sel] = imx_clk_mux("usboh3_sel", MXC_CCM_CSCMR1, 22, 2, 150 - standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 151 - clk[usboh3_pred] = imx_clk_divider("usboh3_pred", "usboh3_sel", MXC_CCM_CSCDR1, 8, 3); 152 - clk[usboh3_podf] = imx_clk_divider("usboh3_podf", "usboh3_pred", MXC_CCM_CSCDR1, 6, 2); 153 - clk[usb_phy_pred] = imx_clk_divider("usb_phy_pred", "pll3_sw", MXC_CCM_CDCDR, 3, 3); 154 - clk[usb_phy_podf] = imx_clk_divider("usb_phy_podf", "usb_phy_pred", MXC_CCM_CDCDR, 0, 3); 155 - clk[usb_phy_sel] = imx_clk_mux("usb_phy_sel", MXC_CCM_CSCMR1, 26, 1, 156 - usb_phy_sel_str, ARRAY_SIZE(usb_phy_sel_str)); 157 - clk[cpu_podf] = imx_clk_divider("cpu_podf", "pll1_sw", MXC_CCM_CACRR, 0, 3); 158 - clk[di_pred] = imx_clk_divider("di_pred", "pll3_sw", MXC_CCM_CDCDR, 6, 3); 159 - clk[iim_gate] = imx_clk_gate2("iim_gate", "ipg", MXC_CCM_CCGR0, 30); 160 - clk[uart1_ipg_gate] = imx_clk_gate2("uart1_ipg_gate", "ipg", MXC_CCM_CCGR1, 6); 161 - clk[uart1_per_gate] = imx_clk_gate2("uart1_per_gate", "uart_root", MXC_CCM_CCGR1, 8); 162 - clk[uart2_ipg_gate] = imx_clk_gate2("uart2_ipg_gate", "ipg", MXC_CCM_CCGR1, 10); 163 - clk[uart2_per_gate] = imx_clk_gate2("uart2_per_gate", "uart_root", MXC_CCM_CCGR1, 12); 164 - clk[uart3_ipg_gate] = imx_clk_gate2("uart3_ipg_gate", "ipg", MXC_CCM_CCGR1, 14); 165 - clk[uart3_per_gate] = imx_clk_gate2("uart3_per_gate", "uart_root", MXC_CCM_CCGR1, 16); 166 - clk[i2c1_gate] = imx_clk_gate2("i2c1_gate", "per_root", MXC_CCM_CCGR1, 18); 167 - clk[i2c2_gate] = imx_clk_gate2("i2c2_gate", "per_root", MXC_CCM_CCGR1, 20); 168 - clk[pwm1_ipg_gate] = imx_clk_gate2("pwm1_ipg_gate", "ipg", MXC_CCM_CCGR2, 10); 169 - clk[pwm1_hf_gate] = imx_clk_gate2("pwm1_hf_gate", "per_root", MXC_CCM_CCGR2, 12); 170 - clk[pwm2_ipg_gate] = imx_clk_gate2("pwm2_ipg_gate", "ipg", MXC_CCM_CCGR2, 14); 171 - clk[pwm2_hf_gate] = imx_clk_gate2("pwm2_hf_gate", "per_root", MXC_CCM_CCGR2, 16); 172 - clk[gpt_ipg_gate] = imx_clk_gate2("gpt_ipg_gate", "ipg", MXC_CCM_CCGR2, 18); 173 - clk[gpt_hf_gate] = imx_clk_gate2("gpt_hf_gate", "per_root", MXC_CCM_CCGR2, 20); 174 - clk[fec_gate] = imx_clk_gate2("fec_gate", "ipg", MXC_CCM_CCGR2, 24); 175 - clk[usboh3_gate] = imx_clk_gate2("usboh3_gate", "ipg", MXC_CCM_CCGR2, 26); 176 - clk[usboh3_per_gate] = imx_clk_gate2("usboh3_per_gate", "usboh3_podf", MXC_CCM_CCGR2, 28); 177 - clk[esdhc1_ipg_gate] = imx_clk_gate2("esdhc1_ipg_gate", "ipg", MXC_CCM_CCGR3, 0); 178 - clk[esdhc2_ipg_gate] = imx_clk_gate2("esdhc2_ipg_gate", "ipg", MXC_CCM_CCGR3, 4); 179 - clk[esdhc3_ipg_gate] = imx_clk_gate2("esdhc3_ipg_gate", "ipg", MXC_CCM_CCGR3, 8); 180 - clk[esdhc4_ipg_gate] = imx_clk_gate2("esdhc4_ipg_gate", "ipg", MXC_CCM_CCGR3, 12); 181 - clk[ssi1_ipg_gate] = imx_clk_gate2("ssi1_ipg_gate", "ipg", MXC_CCM_CCGR3, 16); 182 - clk[ssi2_ipg_gate] = imx_clk_gate2("ssi2_ipg_gate", "ipg", MXC_CCM_CCGR3, 20); 183 - clk[ssi3_ipg_gate] = imx_clk_gate2("ssi3_ipg_gate", "ipg", MXC_CCM_CCGR3, 24); 184 - clk[ecspi1_ipg_gate] = imx_clk_gate2("ecspi1_ipg_gate", "ipg", MXC_CCM_CCGR4, 18); 185 - clk[ecspi1_per_gate] = imx_clk_gate2("ecspi1_per_gate", "ecspi_podf", MXC_CCM_CCGR4, 20); 186 - clk[ecspi2_ipg_gate] = imx_clk_gate2("ecspi2_ipg_gate", "ipg", MXC_CCM_CCGR4, 22); 187 - clk[ecspi2_per_gate] = imx_clk_gate2("ecspi2_per_gate", "ecspi_podf", MXC_CCM_CCGR4, 24); 188 - clk[cspi_ipg_gate] = imx_clk_gate2("cspi_ipg_gate", "ipg", MXC_CCM_CCGR4, 26); 189 - clk[sdma_gate] = imx_clk_gate2("sdma_gate", "ipg", MXC_CCM_CCGR4, 30); 190 - clk[emi_fast_gate] = imx_clk_gate2("emi_fast_gate", "dummy", MXC_CCM_CCGR5, 14); 191 - clk[emi_slow_gate] = imx_clk_gate2("emi_slow_gate", "emi_slow_podf", MXC_CCM_CCGR5, 16); 192 - clk[ipu_s] = imx_clk_mux("ipu_sel", MXC_CCM_CBCMR, 6, 2, ipu_sel, ARRAY_SIZE(ipu_sel)); 193 - clk[ipu_gate] = imx_clk_gate2("ipu_gate", "ipu_sel", MXC_CCM_CCGR5, 10); 194 - clk[nfc_gate] = imx_clk_gate2("nfc_gate", "nfc_podf", MXC_CCM_CCGR5, 20); 195 - clk[ipu_di0_gate] = imx_clk_gate2("ipu_di0_gate", "ipu_di0_sel", MXC_CCM_CCGR6, 10); 196 - clk[ipu_di1_gate] = imx_clk_gate2("ipu_di1_gate", "ipu_di1_sel", MXC_CCM_CCGR6, 12); 197 - clk[gpu3d_s] = imx_clk_mux("gpu3d_sel", MXC_CCM_CBCMR, 4, 2, gpu3d_sel, ARRAY_SIZE(gpu3d_sel)); 198 - clk[gpu2d_s] = imx_clk_mux("gpu2d_sel", MXC_CCM_CBCMR, 16, 2, gpu2d_sel, ARRAY_SIZE(gpu2d_sel)); 199 - clk[gpu3d_gate] = imx_clk_gate2("gpu3d_gate", "gpu3d_sel", MXC_CCM_CCGR5, 2); 200 - clk[garb_gate] = imx_clk_gate2("garb_gate", "axi_a", MXC_CCM_CCGR5, 4); 201 - clk[gpu2d_gate] = imx_clk_gate2("gpu2d_gate", "gpu2d_sel", MXC_CCM_CCGR6, 14); 202 - clk[vpu_s] = imx_clk_mux("vpu_sel", MXC_CCM_CBCMR, 14, 2, vpu_sel, ARRAY_SIZE(vpu_sel)); 203 - clk[vpu_gate] = imx_clk_gate2("vpu_gate", "vpu_sel", MXC_CCM_CCGR5, 6); 204 - clk[vpu_reference_gate] = imx_clk_gate2("vpu_reference_gate", "osc", MXC_CCM_CCGR5, 8); 205 - clk[uart4_ipg_gate] = imx_clk_gate2("uart4_ipg_gate", "ipg", MXC_CCM_CCGR7, 8); 206 - clk[uart4_per_gate] = imx_clk_gate2("uart4_per_gate", "uart_root", MXC_CCM_CCGR7, 10); 207 - clk[uart5_ipg_gate] = imx_clk_gate2("uart5_ipg_gate", "ipg", MXC_CCM_CCGR7, 12); 208 - clk[uart5_per_gate] = imx_clk_gate2("uart5_per_gate", "uart_root", MXC_CCM_CCGR7, 14); 209 - clk[gpc_dvfs] = imx_clk_gate2("gpc_dvfs", "dummy", MXC_CCM_CCGR5, 24); 183 + clk[IMX5_CLK_EMI_SEL] = imx_clk_mux("emi_sel", MXC_CCM_CBCDR, 26, 1, 184 + emi_slow_sel, ARRAY_SIZE(emi_slow_sel)); 185 + clk[IMX5_CLK_EMI_SLOW_PODF] = imx_clk_divider("emi_slow_podf", "emi_sel", MXC_CCM_CBCDR, 22, 3); 186 + clk[IMX5_CLK_NFC_PODF] = imx_clk_divider("nfc_podf", "emi_slow_podf", MXC_CCM_CBCDR, 13, 3); 187 + clk[IMX5_CLK_ECSPI_SEL] = imx_clk_mux("ecspi_sel", MXC_CCM_CSCMR1, 4, 2, 188 + standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 189 + clk[IMX5_CLK_ECSPI_PRED] = imx_clk_divider("ecspi_pred", "ecspi_sel", MXC_CCM_CSCDR2, 25, 3); 190 + clk[IMX5_CLK_ECSPI_PODF] = imx_clk_divider("ecspi_podf", "ecspi_pred", MXC_CCM_CSCDR2, 19, 6); 191 + clk[IMX5_CLK_USBOH3_SEL] = imx_clk_mux("usboh3_sel", MXC_CCM_CSCMR1, 22, 2, 192 + standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 193 + clk[IMX5_CLK_USBOH3_PRED] = imx_clk_divider("usboh3_pred", "usboh3_sel", MXC_CCM_CSCDR1, 8, 3); 194 + clk[IMX5_CLK_USBOH3_PODF] = imx_clk_divider("usboh3_podf", "usboh3_pred", MXC_CCM_CSCDR1, 6, 2); 195 + clk[IMX5_CLK_USB_PHY_PRED] = imx_clk_divider("usb_phy_pred", "pll3_sw", MXC_CCM_CDCDR, 3, 3); 196 + clk[IMX5_CLK_USB_PHY_PODF] = imx_clk_divider("usb_phy_podf", "usb_phy_pred", MXC_CCM_CDCDR, 0, 3); 197 + clk[IMX5_CLK_USB_PHY_SEL] = imx_clk_mux("usb_phy_sel", MXC_CCM_CSCMR1, 26, 1, 198 + usb_phy_sel_str, ARRAY_SIZE(usb_phy_sel_str)); 199 + clk[IMX5_CLK_CPU_PODF] = imx_clk_divider("cpu_podf", "pll1_sw", MXC_CCM_CACRR, 0, 3); 200 + clk[IMX5_CLK_DI_PRED] = imx_clk_divider("di_pred", "pll3_sw", MXC_CCM_CDCDR, 6, 3); 201 + clk[IMX5_CLK_IIM_GATE] = imx_clk_gate2("iim_gate", "ipg", MXC_CCM_CCGR0, 30); 202 + clk[IMX5_CLK_UART1_IPG_GATE] = imx_clk_gate2("uart1_ipg_gate", "ipg", MXC_CCM_CCGR1, 6); 203 + clk[IMX5_CLK_UART1_PER_GATE] = imx_clk_gate2("uart1_per_gate", "uart_root", MXC_CCM_CCGR1, 8); 204 + clk[IMX5_CLK_UART2_IPG_GATE] = imx_clk_gate2("uart2_ipg_gate", "ipg", MXC_CCM_CCGR1, 10); 205 + clk[IMX5_CLK_UART2_PER_GATE] = imx_clk_gate2("uart2_per_gate", "uart_root", MXC_CCM_CCGR1, 12); 206 + clk[IMX5_CLK_UART3_IPG_GATE] = imx_clk_gate2("uart3_ipg_gate", "ipg", MXC_CCM_CCGR1, 14); 207 + clk[IMX5_CLK_UART3_PER_GATE] = imx_clk_gate2("uart3_per_gate", "uart_root", MXC_CCM_CCGR1, 16); 208 + clk[IMX5_CLK_I2C1_GATE] = imx_clk_gate2("i2c1_gate", "per_root", MXC_CCM_CCGR1, 18); 209 + clk[IMX5_CLK_I2C2_GATE] = imx_clk_gate2("i2c2_gate", "per_root", MXC_CCM_CCGR1, 20); 210 + clk[IMX5_CLK_PWM1_IPG_GATE] = imx_clk_gate2("pwm1_ipg_gate", "ipg", MXC_CCM_CCGR2, 10); 211 + clk[IMX5_CLK_PWM1_HF_GATE] = imx_clk_gate2("pwm1_hf_gate", "per_root", MXC_CCM_CCGR2, 12); 212 + clk[IMX5_CLK_PWM2_IPG_GATE] = imx_clk_gate2("pwm2_ipg_gate", "ipg", MXC_CCM_CCGR2, 14); 213 + clk[IMX5_CLK_PWM2_HF_GATE] = imx_clk_gate2("pwm2_hf_gate", "per_root", MXC_CCM_CCGR2, 16); 214 + clk[IMX5_CLK_GPT_IPG_GATE] = imx_clk_gate2("gpt_ipg_gate", "ipg", MXC_CCM_CCGR2, 18); 215 + clk[IMX5_CLK_GPT_HF_GATE] = imx_clk_gate2("gpt_hf_gate", "per_root", MXC_CCM_CCGR2, 20); 216 + clk[IMX5_CLK_FEC_GATE] = imx_clk_gate2("fec_gate", "ipg", MXC_CCM_CCGR2, 24); 217 + clk[IMX5_CLK_USBOH3_GATE] = imx_clk_gate2("usboh3_gate", "ipg", MXC_CCM_CCGR2, 26); 218 + clk[IMX5_CLK_USBOH3_PER_GATE] = imx_clk_gate2("usboh3_per_gate", "usboh3_podf", MXC_CCM_CCGR2, 28); 219 + clk[IMX5_CLK_ESDHC1_IPG_GATE] = imx_clk_gate2("esdhc1_ipg_gate", "ipg", MXC_CCM_CCGR3, 0); 220 + clk[IMX5_CLK_ESDHC2_IPG_GATE] = imx_clk_gate2("esdhc2_ipg_gate", "ipg", MXC_CCM_CCGR3, 4); 221 + clk[IMX5_CLK_ESDHC3_IPG_GATE] = imx_clk_gate2("esdhc3_ipg_gate", "ipg", MXC_CCM_CCGR3, 8); 222 + clk[IMX5_CLK_ESDHC4_IPG_GATE] = imx_clk_gate2("esdhc4_ipg_gate", "ipg", MXC_CCM_CCGR3, 12); 223 + clk[IMX5_CLK_SSI1_IPG_GATE] = imx_clk_gate2("ssi1_ipg_gate", "ipg", MXC_CCM_CCGR3, 16); 224 + clk[IMX5_CLK_SSI2_IPG_GATE] = imx_clk_gate2("ssi2_ipg_gate", "ipg", MXC_CCM_CCGR3, 20); 225 + clk[IMX5_CLK_SSI3_IPG_GATE] = imx_clk_gate2("ssi3_ipg_gate", "ipg", MXC_CCM_CCGR3, 24); 226 + clk[IMX5_CLK_ECSPI1_IPG_GATE] = imx_clk_gate2("ecspi1_ipg_gate", "ipg", MXC_CCM_CCGR4, 18); 227 + clk[IMX5_CLK_ECSPI1_PER_GATE] = imx_clk_gate2("ecspi1_per_gate", "ecspi_podf", MXC_CCM_CCGR4, 20); 228 + clk[IMX5_CLK_ECSPI2_IPG_GATE] = imx_clk_gate2("ecspi2_ipg_gate", "ipg", MXC_CCM_CCGR4, 22); 229 + clk[IMX5_CLK_ECSPI2_PER_GATE] = imx_clk_gate2("ecspi2_per_gate", "ecspi_podf", MXC_CCM_CCGR4, 24); 230 + clk[IMX5_CLK_CSPI_IPG_GATE] = imx_clk_gate2("cspi_ipg_gate", "ipg", MXC_CCM_CCGR4, 26); 231 + clk[IMX5_CLK_SDMA_GATE] = imx_clk_gate2("sdma_gate", "ipg", MXC_CCM_CCGR4, 30); 232 + clk[IMX5_CLK_EMI_FAST_GATE] = imx_clk_gate2("emi_fast_gate", "dummy", MXC_CCM_CCGR5, 14); 233 + clk[IMX5_CLK_EMI_SLOW_GATE] = imx_clk_gate2("emi_slow_gate", "emi_slow_podf", MXC_CCM_CCGR5, 16); 234 + clk[IMX5_CLK_IPU_SEL] = imx_clk_mux("ipu_sel", MXC_CCM_CBCMR, 6, 2, ipu_sel, ARRAY_SIZE(ipu_sel)); 235 + clk[IMX5_CLK_IPU_GATE] = imx_clk_gate2("ipu_gate", "ipu_sel", MXC_CCM_CCGR5, 10); 236 + clk[IMX5_CLK_NFC_GATE] = imx_clk_gate2("nfc_gate", "nfc_podf", MXC_CCM_CCGR5, 20); 237 + clk[IMX5_CLK_IPU_DI0_GATE] = imx_clk_gate2("ipu_di0_gate", "ipu_di0_sel", MXC_CCM_CCGR6, 10); 238 + clk[IMX5_CLK_IPU_DI1_GATE] = imx_clk_gate2("ipu_di1_gate", "ipu_di1_sel", MXC_CCM_CCGR6, 12); 239 + clk[IMX5_CLK_GPU3D_SEL] = imx_clk_mux("gpu3d_sel", MXC_CCM_CBCMR, 4, 2, gpu3d_sel, ARRAY_SIZE(gpu3d_sel)); 240 + clk[IMX5_CLK_GPU2D_SEL] = imx_clk_mux("gpu2d_sel", MXC_CCM_CBCMR, 16, 2, gpu2d_sel, ARRAY_SIZE(gpu2d_sel)); 241 + clk[IMX5_CLK_GPU3D_GATE] = imx_clk_gate2("gpu3d_gate", "gpu3d_sel", MXC_CCM_CCGR5, 2); 242 + clk[IMX5_CLK_GARB_GATE] = imx_clk_gate2("garb_gate", "axi_a", MXC_CCM_CCGR5, 4); 243 + clk[IMX5_CLK_GPU2D_GATE] = imx_clk_gate2("gpu2d_gate", "gpu2d_sel", MXC_CCM_CCGR6, 14); 244 + clk[IMX5_CLK_VPU_SEL] = imx_clk_mux("vpu_sel", MXC_CCM_CBCMR, 14, 2, vpu_sel, ARRAY_SIZE(vpu_sel)); 245 + clk[IMX5_CLK_VPU_GATE] = imx_clk_gate2("vpu_gate", "vpu_sel", MXC_CCM_CCGR5, 6); 246 + clk[IMX5_CLK_VPU_REFERENCE_GATE] = imx_clk_gate2("vpu_reference_gate", "osc", MXC_CCM_CCGR5, 8); 247 + clk[IMX5_CLK_UART4_IPG_GATE] = imx_clk_gate2("uart4_ipg_gate", "ipg", MXC_CCM_CCGR7, 8); 248 + clk[IMX5_CLK_UART4_PER_GATE] = imx_clk_gate2("uart4_per_gate", "uart_root", MXC_CCM_CCGR7, 10); 249 + clk[IMX5_CLK_UART5_IPG_GATE] = imx_clk_gate2("uart5_ipg_gate", "ipg", MXC_CCM_CCGR7, 12); 250 + clk[IMX5_CLK_UART5_PER_GATE] = imx_clk_gate2("uart5_per_gate", "uart_root", MXC_CCM_CCGR7, 14); 251 + clk[IMX5_CLK_GPC_DVFS] = imx_clk_gate2("gpc_dvfs", "dummy", MXC_CCM_CCGR5, 24); 210 252 211 - clk[ssi_apm] = imx_clk_mux("ssi_apm", MXC_CCM_CSCMR1, 8, 2, ssi_apm_sels, ARRAY_SIZE(ssi_apm_sels)); 212 - clk[ssi1_root_sel] = imx_clk_mux("ssi1_root_sel", MXC_CCM_CSCMR1, 14, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 213 - clk[ssi2_root_sel] = imx_clk_mux("ssi2_root_sel", MXC_CCM_CSCMR1, 12, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 214 - clk[ssi3_root_sel] = imx_clk_mux("ssi3_root_sel", MXC_CCM_CSCMR1, 11, 1, ssi3_clk_sels, ARRAY_SIZE(ssi3_clk_sels)); 215 - clk[ssi_ext1_sel] = imx_clk_mux("ssi_ext1_sel", MXC_CCM_CSCMR1, 28, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 216 - clk[ssi_ext2_sel] = imx_clk_mux("ssi_ext2_sel", MXC_CCM_CSCMR1, 30, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 217 - clk[ssi_ext1_com_sel] = imx_clk_mux("ssi_ext1_com_sel", MXC_CCM_CSCMR1, 0, 1, ssi_ext1_com_sels, ARRAY_SIZE(ssi_ext1_com_sels)); 218 - clk[ssi_ext2_com_sel] = imx_clk_mux("ssi_ext2_com_sel", MXC_CCM_CSCMR1, 1, 1, ssi_ext2_com_sels, ARRAY_SIZE(ssi_ext2_com_sels)); 219 - clk[ssi1_root_pred] = imx_clk_divider("ssi1_root_pred", "ssi1_root_sel", MXC_CCM_CS1CDR, 6, 3); 220 - clk[ssi1_root_podf] = imx_clk_divider("ssi1_root_podf", "ssi1_root_pred", MXC_CCM_CS1CDR, 0, 6); 221 - clk[ssi2_root_pred] = imx_clk_divider("ssi2_root_pred", "ssi2_root_sel", MXC_CCM_CS2CDR, 6, 3); 222 - clk[ssi2_root_podf] = imx_clk_divider("ssi2_root_podf", "ssi2_root_pred", MXC_CCM_CS2CDR, 0, 6); 223 - clk[ssi_ext1_pred] = imx_clk_divider("ssi_ext1_pred", "ssi_ext1_sel", MXC_CCM_CS1CDR, 22, 3); 224 - clk[ssi_ext1_podf] = imx_clk_divider("ssi_ext1_podf", "ssi_ext1_pred", MXC_CCM_CS1CDR, 16, 6); 225 - clk[ssi_ext2_pred] = imx_clk_divider("ssi_ext2_pred", "ssi_ext2_sel", MXC_CCM_CS2CDR, 22, 3); 226 - clk[ssi_ext2_podf] = imx_clk_divider("ssi_ext2_podf", "ssi_ext2_pred", MXC_CCM_CS2CDR, 16, 6); 227 - clk[ssi1_root_gate] = imx_clk_gate2("ssi1_root_gate", "ssi1_root_podf", MXC_CCM_CCGR3, 18); 228 - clk[ssi2_root_gate] = imx_clk_gate2("ssi2_root_gate", "ssi2_root_podf", MXC_CCM_CCGR3, 22); 229 - clk[ssi3_root_gate] = imx_clk_gate2("ssi3_root_gate", "ssi3_root_sel", MXC_CCM_CCGR3, 26); 230 - clk[ssi_ext1_gate] = imx_clk_gate2("ssi_ext1_gate", "ssi_ext1_com_sel", MXC_CCM_CCGR3, 28); 231 - clk[ssi_ext2_gate] = imx_clk_gate2("ssi_ext2_gate", "ssi_ext2_com_sel", MXC_CCM_CCGR3, 30); 232 - clk[epit1_ipg_gate] = imx_clk_gate2("epit1_ipg_gate", "ipg", MXC_CCM_CCGR2, 2); 233 - clk[epit1_hf_gate] = imx_clk_gate2("epit1_hf_gate", "per_root", MXC_CCM_CCGR2, 4); 234 - clk[epit2_ipg_gate] = imx_clk_gate2("epit2_ipg_gate", "ipg", MXC_CCM_CCGR2, 6); 235 - clk[epit2_hf_gate] = imx_clk_gate2("epit2_hf_gate", "per_root", MXC_CCM_CCGR2, 8); 236 - clk[owire_gate] = imx_clk_gate2("owire_gate", "per_root", MXC_CCM_CCGR2, 22); 237 - clk[srtc_gate] = imx_clk_gate2("srtc_gate", "per_root", MXC_CCM_CCGR4, 28); 238 - clk[pata_gate] = imx_clk_gate2("pata_gate", "ipg", MXC_CCM_CCGR4, 0); 239 - clk[spdif0_sel] = imx_clk_mux("spdif0_sel", MXC_CCM_CSCMR2, 0, 2, spdif_sel, ARRAY_SIZE(spdif_sel)); 240 - clk[spdif0_pred] = imx_clk_divider("spdif0_pred", "spdif0_sel", MXC_CCM_CDCDR, 25, 3); 241 - clk[spdif0_podf] = imx_clk_divider("spdif0_podf", "spdif0_pred", MXC_CCM_CDCDR, 19, 6); 242 - clk[spdif0_com_s] = imx_clk_mux_flags("spdif0_com_sel", MXC_CCM_CSCMR2, 4, 1, 243 - spdif0_com_sel, ARRAY_SIZE(spdif0_com_sel), CLK_SET_RATE_PARENT); 244 - clk[spdif0_gate] = imx_clk_gate2("spdif0_gate", "spdif0_com_sel", MXC_CCM_CCGR5, 26); 245 - clk[spdif_ipg_gate] = imx_clk_gate2("spdif_ipg_gate", "ipg", MXC_CCM_CCGR5, 30); 246 - clk[sahara_ipg_gate] = imx_clk_gate2("sahara_ipg_gate", "ipg", MXC_CCM_CCGR4, 14); 253 + clk[IMX5_CLK_SSI_APM] = imx_clk_mux("ssi_apm", MXC_CCM_CSCMR1, 8, 2, ssi_apm_sels, ARRAY_SIZE(ssi_apm_sels)); 254 + clk[IMX5_CLK_SSI1_ROOT_SEL] = imx_clk_mux("ssi1_root_sel", MXC_CCM_CSCMR1, 14, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 255 + clk[IMX5_CLK_SSI2_ROOT_SEL] = imx_clk_mux("ssi2_root_sel", MXC_CCM_CSCMR1, 12, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 256 + clk[IMX5_CLK_SSI3_ROOT_SEL] = imx_clk_mux("ssi3_root_sel", MXC_CCM_CSCMR1, 11, 1, ssi3_clk_sels, ARRAY_SIZE(ssi3_clk_sels)); 257 + clk[IMX5_CLK_SSI_EXT1_SEL] = imx_clk_mux("ssi_ext1_sel", MXC_CCM_CSCMR1, 28, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 258 + clk[IMX5_CLK_SSI_EXT2_SEL] = imx_clk_mux("ssi_ext2_sel", MXC_CCM_CSCMR1, 30, 2, ssi_clk_sels, ARRAY_SIZE(ssi_clk_sels)); 259 + clk[IMX5_CLK_SSI_EXT1_COM_SEL] = imx_clk_mux("ssi_ext1_com_sel", MXC_CCM_CSCMR1, 0, 1, ssi_ext1_com_sels, ARRAY_SIZE(ssi_ext1_com_sels)); 260 + clk[IMX5_CLK_SSI_EXT2_COM_SEL] = imx_clk_mux("ssi_ext2_com_sel", MXC_CCM_CSCMR1, 1, 1, ssi_ext2_com_sels, ARRAY_SIZE(ssi_ext2_com_sels)); 261 + clk[IMX5_CLK_SSI1_ROOT_PRED] = imx_clk_divider("ssi1_root_pred", "ssi1_root_sel", MXC_CCM_CS1CDR, 6, 3); 262 + clk[IMX5_CLK_SSI1_ROOT_PODF] = imx_clk_divider("ssi1_root_podf", "ssi1_root_pred", MXC_CCM_CS1CDR, 0, 6); 263 + clk[IMX5_CLK_SSI2_ROOT_PRED] = imx_clk_divider("ssi2_root_pred", "ssi2_root_sel", MXC_CCM_CS2CDR, 6, 3); 264 + clk[IMX5_CLK_SSI2_ROOT_PODF] = imx_clk_divider("ssi2_root_podf", "ssi2_root_pred", MXC_CCM_CS2CDR, 0, 6); 265 + clk[IMX5_CLK_SSI_EXT1_PRED] = imx_clk_divider("ssi_ext1_pred", "ssi_ext1_sel", MXC_CCM_CS1CDR, 22, 3); 266 + clk[IMX5_CLK_SSI_EXT1_PODF] = imx_clk_divider("ssi_ext1_podf", "ssi_ext1_pred", MXC_CCM_CS1CDR, 16, 6); 267 + clk[IMX5_CLK_SSI_EXT2_PRED] = imx_clk_divider("ssi_ext2_pred", "ssi_ext2_sel", MXC_CCM_CS2CDR, 22, 3); 268 + clk[IMX5_CLK_SSI_EXT2_PODF] = imx_clk_divider("ssi_ext2_podf", "ssi_ext2_pred", MXC_CCM_CS2CDR, 16, 6); 269 + clk[IMX5_CLK_SSI1_ROOT_GATE] = imx_clk_gate2("ssi1_root_gate", "ssi1_root_podf", MXC_CCM_CCGR3, 18); 270 + clk[IMX5_CLK_SSI2_ROOT_GATE] = imx_clk_gate2("ssi2_root_gate", "ssi2_root_podf", MXC_CCM_CCGR3, 22); 271 + clk[IMX5_CLK_SSI3_ROOT_GATE] = imx_clk_gate2("ssi3_root_gate", "ssi3_root_sel", MXC_CCM_CCGR3, 26); 272 + clk[IMX5_CLK_SSI_EXT1_GATE] = imx_clk_gate2("ssi_ext1_gate", "ssi_ext1_com_sel", MXC_CCM_CCGR3, 28); 273 + clk[IMX5_CLK_SSI_EXT2_GATE] = imx_clk_gate2("ssi_ext2_gate", "ssi_ext2_com_sel", MXC_CCM_CCGR3, 30); 274 + clk[IMX5_CLK_EPIT1_IPG_GATE] = imx_clk_gate2("epit1_ipg_gate", "ipg", MXC_CCM_CCGR2, 2); 275 + clk[IMX5_CLK_EPIT1_HF_GATE] = imx_clk_gate2("epit1_hf_gate", "per_root", MXC_CCM_CCGR2, 4); 276 + clk[IMX5_CLK_EPIT2_IPG_GATE] = imx_clk_gate2("epit2_ipg_gate", "ipg", MXC_CCM_CCGR2, 6); 277 + clk[IMX5_CLK_EPIT2_HF_GATE] = imx_clk_gate2("epit2_hf_gate", "per_root", MXC_CCM_CCGR2, 8); 278 + clk[IMX5_CLK_OWIRE_GATE] = imx_clk_gate2("owire_gate", "per_root", MXC_CCM_CCGR2, 22); 279 + clk[IMX5_CLK_SRTC_GATE] = imx_clk_gate2("srtc_gate", "per_root", MXC_CCM_CCGR4, 28); 280 + clk[IMX5_CLK_PATA_GATE] = imx_clk_gate2("pata_gate", "ipg", MXC_CCM_CCGR4, 0); 281 + clk[IMX5_CLK_SPDIF0_SEL] = imx_clk_mux("spdif0_sel", MXC_CCM_CSCMR2, 0, 2, spdif_sel, ARRAY_SIZE(spdif_sel)); 282 + clk[IMX5_CLK_SPDIF0_PRED] = imx_clk_divider("spdif0_pred", "spdif0_sel", MXC_CCM_CDCDR, 25, 3); 283 + clk[IMX5_CLK_SPDIF0_PODF] = imx_clk_divider("spdif0_podf", "spdif0_pred", MXC_CCM_CDCDR, 19, 6); 284 + clk[IMX5_CLK_SPDIF0_COM_SEL] = imx_clk_mux_flags("spdif0_com_sel", MXC_CCM_CSCMR2, 4, 1, 285 + spdif0_com_sel, ARRAY_SIZE(spdif0_com_sel), CLK_SET_RATE_PARENT); 286 + clk[IMX5_CLK_SPDIF0_GATE] = imx_clk_gate2("spdif0_gate", "spdif0_com_sel", MXC_CCM_CCGR5, 26); 287 + clk[IMX5_CLK_SPDIF_IPG_GATE] = imx_clk_gate2("spdif_ipg_gate", "ipg", MXC_CCM_CCGR5, 30); 288 + clk[IMX5_CLK_SAHARA_IPG_GATE] = imx_clk_gate2("sahara_ipg_gate", "ipg", MXC_CCM_CCGR4, 14); 247 289 248 290 for (i = 0; i < ARRAY_SIZE(clk); i++) 249 291 if (IS_ERR(clk[i])) 250 292 pr_err("i.MX5 clk %d: register failed with %ld\n", 251 293 i, PTR_ERR(clk[i])); 252 294 253 - clk_register_clkdev(clk[gpt_hf_gate], "per", "imx-gpt.0"); 254 - clk_register_clkdev(clk[gpt_ipg_gate], "ipg", "imx-gpt.0"); 255 - clk_register_clkdev(clk[uart1_per_gate], "per", "imx21-uart.0"); 256 - clk_register_clkdev(clk[uart1_ipg_gate], "ipg", "imx21-uart.0"); 257 - clk_register_clkdev(clk[uart2_per_gate], "per", "imx21-uart.1"); 258 - clk_register_clkdev(clk[uart2_ipg_gate], "ipg", "imx21-uart.1"); 259 - clk_register_clkdev(clk[uart3_per_gate], "per", "imx21-uart.2"); 260 - clk_register_clkdev(clk[uart3_ipg_gate], "ipg", "imx21-uart.2"); 261 - clk_register_clkdev(clk[uart4_per_gate], "per", "imx21-uart.3"); 262 - clk_register_clkdev(clk[uart4_ipg_gate], "ipg", "imx21-uart.3"); 263 - clk_register_clkdev(clk[uart5_per_gate], "per", "imx21-uart.4"); 264 - clk_register_clkdev(clk[uart5_ipg_gate], "ipg", "imx21-uart.4"); 265 - clk_register_clkdev(clk[ecspi1_per_gate], "per", "imx51-ecspi.0"); 266 - clk_register_clkdev(clk[ecspi1_ipg_gate], "ipg", "imx51-ecspi.0"); 267 - clk_register_clkdev(clk[ecspi2_per_gate], "per", "imx51-ecspi.1"); 268 - clk_register_clkdev(clk[ecspi2_ipg_gate], "ipg", "imx51-ecspi.1"); 269 - clk_register_clkdev(clk[cspi_ipg_gate], NULL, "imx35-cspi.2"); 270 - clk_register_clkdev(clk[pwm1_ipg_gate], "pwm", "mxc_pwm.0"); 271 - clk_register_clkdev(clk[pwm2_ipg_gate], "pwm", "mxc_pwm.1"); 272 - clk_register_clkdev(clk[i2c1_gate], NULL, "imx21-i2c.0"); 273 - clk_register_clkdev(clk[i2c2_gate], NULL, "imx21-i2c.1"); 274 - clk_register_clkdev(clk[usboh3_per_gate], "per", "mxc-ehci.0"); 275 - clk_register_clkdev(clk[usboh3_gate], "ipg", "mxc-ehci.0"); 276 - clk_register_clkdev(clk[usboh3_gate], "ahb", "mxc-ehci.0"); 277 - clk_register_clkdev(clk[usboh3_per_gate], "per", "mxc-ehci.1"); 278 - clk_register_clkdev(clk[usboh3_gate], "ipg", "mxc-ehci.1"); 279 - clk_register_clkdev(clk[usboh3_gate], "ahb", "mxc-ehci.1"); 280 - clk_register_clkdev(clk[usboh3_per_gate], "per", "mxc-ehci.2"); 281 - clk_register_clkdev(clk[usboh3_gate], "ipg", "mxc-ehci.2"); 282 - clk_register_clkdev(clk[usboh3_gate], "ahb", "mxc-ehci.2"); 283 - clk_register_clkdev(clk[usboh3_per_gate], "per", "imx-udc-mx51"); 284 - clk_register_clkdev(clk[usboh3_gate], "ipg", "imx-udc-mx51"); 285 - clk_register_clkdev(clk[usboh3_gate], "ahb", "imx-udc-mx51"); 286 - clk_register_clkdev(clk[nfc_gate], NULL, "imx51-nand"); 287 - clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); 288 - clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); 289 - clk_register_clkdev(clk[ssi3_ipg_gate], NULL, "imx-ssi.2"); 290 - clk_register_clkdev(clk[sdma_gate], NULL, "imx35-sdma"); 291 - clk_register_clkdev(clk[cpu_podf], NULL, "cpu0"); 292 - clk_register_clkdev(clk[iim_gate], "iim", NULL); 293 - clk_register_clkdev(clk[dummy], NULL, "imx2-wdt.0"); 294 - clk_register_clkdev(clk[dummy], NULL, "imx2-wdt.1"); 295 - clk_register_clkdev(clk[dummy], NULL, "imx-keypad"); 296 - clk_register_clkdev(clk[ipu_di1_gate], "di1", "imx-tve.0"); 297 - clk_register_clkdev(clk[gpc_dvfs], "gpc_dvfs", NULL); 298 - clk_register_clkdev(clk[epit1_ipg_gate], "ipg", "imx-epit.0"); 299 - clk_register_clkdev(clk[epit1_hf_gate], "per", "imx-epit.0"); 300 - clk_register_clkdev(clk[epit2_ipg_gate], "ipg", "imx-epit.1"); 301 - clk_register_clkdev(clk[epit2_hf_gate], "per", "imx-epit.1"); 295 + clk_register_clkdev(clk[IMX5_CLK_GPT_HF_GATE], "per", "imx-gpt.0"); 296 + clk_register_clkdev(clk[IMX5_CLK_GPT_IPG_GATE], "ipg", "imx-gpt.0"); 297 + clk_register_clkdev(clk[IMX5_CLK_UART1_PER_GATE], "per", "imx21-uart.0"); 298 + clk_register_clkdev(clk[IMX5_CLK_UART1_IPG_GATE], "ipg", "imx21-uart.0"); 299 + clk_register_clkdev(clk[IMX5_CLK_UART2_PER_GATE], "per", "imx21-uart.1"); 300 + clk_register_clkdev(clk[IMX5_CLK_UART2_IPG_GATE], "ipg", "imx21-uart.1"); 301 + clk_register_clkdev(clk[IMX5_CLK_UART3_PER_GATE], "per", "imx21-uart.2"); 302 + clk_register_clkdev(clk[IMX5_CLK_UART3_IPG_GATE], "ipg", "imx21-uart.2"); 303 + clk_register_clkdev(clk[IMX5_CLK_UART4_PER_GATE], "per", "imx21-uart.3"); 304 + clk_register_clkdev(clk[IMX5_CLK_UART4_IPG_GATE], "ipg", "imx21-uart.3"); 305 + clk_register_clkdev(clk[IMX5_CLK_UART5_PER_GATE], "per", "imx21-uart.4"); 306 + clk_register_clkdev(clk[IMX5_CLK_UART5_IPG_GATE], "ipg", "imx21-uart.4"); 307 + clk_register_clkdev(clk[IMX5_CLK_ECSPI1_PER_GATE], "per", "imx51-ecspi.0"); 308 + clk_register_clkdev(clk[IMX5_CLK_ECSPI1_IPG_GATE], "ipg", "imx51-ecspi.0"); 309 + clk_register_clkdev(clk[IMX5_CLK_ECSPI2_PER_GATE], "per", "imx51-ecspi.1"); 310 + clk_register_clkdev(clk[IMX5_CLK_ECSPI2_IPG_GATE], "ipg", "imx51-ecspi.1"); 311 + clk_register_clkdev(clk[IMX5_CLK_CSPI_IPG_GATE], NULL, "imx35-cspi.2"); 312 + clk_register_clkdev(clk[IMX5_CLK_PWM1_IPG_GATE], "pwm", "mxc_pwm.0"); 313 + clk_register_clkdev(clk[IMX5_CLK_PWM2_IPG_GATE], "pwm", "mxc_pwm.1"); 314 + clk_register_clkdev(clk[IMX5_CLK_I2C1_GATE], NULL, "imx21-i2c.0"); 315 + clk_register_clkdev(clk[IMX5_CLK_I2C2_GATE], NULL, "imx21-i2c.1"); 316 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_PER_GATE], "per", "mxc-ehci.0"); 317 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ipg", "mxc-ehci.0"); 318 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ahb", "mxc-ehci.0"); 319 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_PER_GATE], "per", "mxc-ehci.1"); 320 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ipg", "mxc-ehci.1"); 321 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ahb", "mxc-ehci.1"); 322 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_PER_GATE], "per", "mxc-ehci.2"); 323 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ipg", "mxc-ehci.2"); 324 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ahb", "mxc-ehci.2"); 325 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_PER_GATE], "per", "imx-udc-mx51"); 326 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ipg", "imx-udc-mx51"); 327 + clk_register_clkdev(clk[IMX5_CLK_USBOH3_GATE], "ahb", "imx-udc-mx51"); 328 + clk_register_clkdev(clk[IMX5_CLK_NFC_GATE], NULL, "imx51-nand"); 329 + clk_register_clkdev(clk[IMX5_CLK_SSI1_IPG_GATE], NULL, "imx-ssi.0"); 330 + clk_register_clkdev(clk[IMX5_CLK_SSI2_IPG_GATE], NULL, "imx-ssi.1"); 331 + clk_register_clkdev(clk[IMX5_CLK_SSI3_IPG_GATE], NULL, "imx-ssi.2"); 332 + clk_register_clkdev(clk[IMX5_CLK_SDMA_GATE], NULL, "imx35-sdma"); 333 + clk_register_clkdev(clk[IMX5_CLK_CPU_PODF], NULL, "cpu0"); 334 + clk_register_clkdev(clk[IMX5_CLK_IIM_GATE], "iim", NULL); 335 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], NULL, "imx2-wdt.0"); 336 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], NULL, "imx2-wdt.1"); 337 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], NULL, "imx-keypad"); 338 + clk_register_clkdev(clk[IMX5_CLK_IPU_DI1_GATE], "di1", "imx-tve.0"); 339 + clk_register_clkdev(clk[IMX5_CLK_GPC_DVFS], "gpc_dvfs", NULL); 340 + clk_register_clkdev(clk[IMX5_CLK_EPIT1_IPG_GATE], "ipg", "imx-epit.0"); 341 + clk_register_clkdev(clk[IMX5_CLK_EPIT1_HF_GATE], "per", "imx-epit.0"); 342 + clk_register_clkdev(clk[IMX5_CLK_EPIT2_IPG_GATE], "ipg", "imx-epit.1"); 343 + clk_register_clkdev(clk[IMX5_CLK_EPIT2_HF_GATE], "per", "imx-epit.1"); 302 344 303 345 /* Set SDHC parents to be PLL2 */ 304 - clk_set_parent(clk[esdhc_a_sel], clk[pll2_sw]); 305 - clk_set_parent(clk[esdhc_b_sel], clk[pll2_sw]); 346 + clk_set_parent(clk[IMX5_CLK_ESDHC_A_SEL], clk[IMX5_CLK_PLL2_SW]); 347 + clk_set_parent(clk[IMX5_CLK_ESDHC_B_SEL], clk[IMX5_CLK_PLL2_SW]); 306 348 307 349 /* move usb phy clk to 24MHz */ 308 - clk_set_parent(clk[usb_phy_sel], clk[osc]); 350 + clk_set_parent(clk[IMX5_CLK_USB_PHY_SEL], clk[IMX5_CLK_OSC]); 309 351 310 - clk_prepare_enable(clk[gpc_dvfs]); 311 - clk_prepare_enable(clk[ahb_max]); /* esdhc3 */ 312 - clk_prepare_enable(clk[aips_tz1]); 313 - clk_prepare_enable(clk[aips_tz2]); /* fec */ 314 - clk_prepare_enable(clk[spba]); 315 - clk_prepare_enable(clk[emi_fast_gate]); /* fec */ 316 - clk_prepare_enable(clk[emi_slow_gate]); /* eim */ 317 - clk_prepare_enable(clk[mipi_hsc1_gate]); 318 - clk_prepare_enable(clk[mipi_hsc2_gate]); 319 - clk_prepare_enable(clk[mipi_esc_gate]); 320 - clk_prepare_enable(clk[mipi_hsp_gate]); 321 - clk_prepare_enable(clk[tmax1]); 322 - clk_prepare_enable(clk[tmax2]); /* esdhc2, fec */ 323 - clk_prepare_enable(clk[tmax3]); /* esdhc1, esdhc4 */ 352 + clk_prepare_enable(clk[IMX5_CLK_GPC_DVFS]); 353 + clk_prepare_enable(clk[IMX5_CLK_AHB_MAX]); /* esdhc3 */ 354 + clk_prepare_enable(clk[IMX5_CLK_AIPS_TZ1]); 355 + clk_prepare_enable(clk[IMX5_CLK_AIPS_TZ2]); /* fec */ 356 + clk_prepare_enable(clk[IMX5_CLK_SPBA]); 357 + clk_prepare_enable(clk[IMX5_CLK_EMI_FAST_GATE]); /* fec */ 358 + clk_prepare_enable(clk[IMX5_CLK_EMI_SLOW_GATE]); /* eim */ 359 + clk_prepare_enable(clk[IMX5_CLK_MIPI_HSC1_GATE]); 360 + clk_prepare_enable(clk[IMX5_CLK_MIPI_HSC2_GATE]); 361 + clk_prepare_enable(clk[IMX5_CLK_MIPI_ESC_GATE]); 362 + clk_prepare_enable(clk[IMX5_CLK_MIPI_HSP_GATE]); 363 + clk_prepare_enable(clk[IMX5_CLK_TMAX1]); 364 + clk_prepare_enable(clk[IMX5_CLK_TMAX2]); /* esdhc2, fec */ 365 + clk_prepare_enable(clk[IMX5_CLK_TMAX3]); /* esdhc1, esdhc4 */ 324 366 } 325 367 326 368 static void __init mx50_clocks_init(struct device_node *np) ··· 329 371 unsigned long r; 330 372 int i, irq; 331 373 332 - clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX53_DPLL1_BASE); 333 - clk[pll2_sw] = imx_clk_pllv2("pll2_sw", "osc", MX53_DPLL2_BASE); 334 - clk[pll3_sw] = imx_clk_pllv2("pll3_sw", "osc", MX53_DPLL3_BASE); 374 + clk[IMX5_CLK_PLL1_SW] = imx_clk_pllv2("pll1_sw", "osc", MX53_DPLL1_BASE); 375 + clk[IMX5_CLK_PLL2_SW] = imx_clk_pllv2("pll2_sw", "osc", MX53_DPLL2_BASE); 376 + clk[IMX5_CLK_PLL3_SW] = imx_clk_pllv2("pll3_sw", "osc", MX53_DPLL3_BASE); 335 377 336 - clk[esdhc1_per_gate] = imx_clk_gate2("esdhc1_per_gate", "esdhc_a_podf", MXC_CCM_CCGR3, 2); 337 - clk[esdhc2_per_gate] = imx_clk_gate2("esdhc2_per_gate", "esdhc_c_sel", MXC_CCM_CCGR3, 6); 338 - clk[esdhc3_per_gate] = imx_clk_gate2("esdhc3_per_gate", "esdhc_b_podf", MXC_CCM_CCGR3, 10); 339 - clk[esdhc4_per_gate] = imx_clk_gate2("esdhc4_per_gate", "esdhc_d_sel", MXC_CCM_CCGR3, 14); 340 - clk[usb_phy1_gate] = imx_clk_gate2("usb_phy1_gate", "usb_phy_sel", MXC_CCM_CCGR4, 10); 341 - clk[usb_phy2_gate] = imx_clk_gate2("usb_phy2_gate", "usb_phy_sel", MXC_CCM_CCGR4, 12); 342 - clk[i2c3_gate] = imx_clk_gate2("i2c3_gate", "per_root", MXC_CCM_CCGR1, 22); 378 + clk[IMX5_CLK_ESDHC1_PER_GATE] = imx_clk_gate2("esdhc1_per_gate", "esdhc_a_podf", MXC_CCM_CCGR3, 2); 379 + clk[IMX5_CLK_ESDHC2_PER_GATE] = imx_clk_gate2("esdhc2_per_gate", "esdhc_c_sel", MXC_CCM_CCGR3, 6); 380 + clk[IMX5_CLK_ESDHC3_PER_GATE] = imx_clk_gate2("esdhc3_per_gate", "esdhc_b_podf", MXC_CCM_CCGR3, 10); 381 + clk[IMX5_CLK_ESDHC4_PER_GATE] = imx_clk_gate2("esdhc4_per_gate", "esdhc_d_sel", MXC_CCM_CCGR3, 14); 382 + clk[IMX5_CLK_USB_PHY1_GATE] = imx_clk_gate2("usb_phy1_gate", "usb_phy_sel", MXC_CCM_CCGR4, 10); 383 + clk[IMX5_CLK_USB_PHY2_GATE] = imx_clk_gate2("usb_phy2_gate", "usb_phy_sel", MXC_CCM_CCGR4, 12); 384 + clk[IMX5_CLK_I2C3_GATE] = imx_clk_gate2("i2c3_gate", "per_root", MXC_CCM_CCGR1, 22); 343 385 344 - clk[cko1_sel] = imx_clk_mux("cko1_sel", MXC_CCM_CCOSR, 0, 4, 345 - mx53_cko1_sel, ARRAY_SIZE(mx53_cko1_sel)); 346 - clk[cko1_podf] = imx_clk_divider("cko1_podf", "cko1_sel", MXC_CCM_CCOSR, 4, 3); 347 - clk[cko1] = imx_clk_gate2("cko1", "cko1_podf", MXC_CCM_CCOSR, 7); 386 + clk[IMX5_CLK_CKO1_SEL] = imx_clk_mux("cko1_sel", MXC_CCM_CCOSR, 0, 4, 387 + mx53_cko1_sel, ARRAY_SIZE(mx53_cko1_sel)); 388 + clk[IMX5_CLK_CKO1_PODF] = imx_clk_divider("cko1_podf", "cko1_sel", MXC_CCM_CCOSR, 4, 3); 389 + clk[IMX5_CLK_CKO1] = imx_clk_gate2("cko1", "cko1_podf", MXC_CCM_CCOSR, 7); 348 390 349 - clk[cko2_sel] = imx_clk_mux("cko2_sel", MXC_CCM_CCOSR, 16, 5, 350 - mx53_cko2_sel, ARRAY_SIZE(mx53_cko2_sel)); 351 - clk[cko2_podf] = imx_clk_divider("cko2_podf", "cko2_sel", MXC_CCM_CCOSR, 21, 3); 352 - clk[cko2] = imx_clk_gate2("cko2", "cko2_podf", MXC_CCM_CCOSR, 24); 391 + clk[IMX5_CLK_CKO2_SEL] = imx_clk_mux("cko2_sel", MXC_CCM_CCOSR, 16, 5, 392 + mx53_cko2_sel, ARRAY_SIZE(mx53_cko2_sel)); 393 + clk[IMX5_CLK_CKO2_PODF] = imx_clk_divider("cko2_podf", "cko2_sel", MXC_CCM_CCOSR, 21, 3); 394 + clk[IMX5_CLK_CKO2] = imx_clk_gate2("cko2", "cko2_podf", MXC_CCM_CCOSR, 24); 353 395 354 396 for (i = 0; i < ARRAY_SIZE(clk); i++) 355 397 if (IS_ERR(clk[i])) ··· 363 405 mx5_clocks_common_init(0, 0, 0, 0); 364 406 365 407 /* set SDHC root clock to 200MHZ*/ 366 - clk_set_rate(clk[esdhc_a_podf], 200000000); 367 - clk_set_rate(clk[esdhc_b_podf], 200000000); 408 + clk_set_rate(clk[IMX5_CLK_ESDHC_A_PODF], 200000000); 409 + clk_set_rate(clk[IMX5_CLK_ESDHC_B_PODF], 200000000); 368 410 369 - clk_prepare_enable(clk[iim_gate]); 411 + clk_prepare_enable(clk[IMX5_CLK_IIM_GATE]); 370 412 imx_print_silicon_rev("i.MX50", IMX_CHIP_REVISION_1_1); 371 - clk_disable_unprepare(clk[iim_gate]); 413 + clk_disable_unprepare(clk[IMX5_CLK_IIM_GATE]); 372 414 373 - r = clk_round_rate(clk[usboh3_per_gate], 54000000); 374 - clk_set_rate(clk[usboh3_per_gate], r); 415 + r = clk_round_rate(clk[IMX5_CLK_USBOH3_PER_GATE], 54000000); 416 + clk_set_rate(clk[IMX5_CLK_USBOH3_PER_GATE], r); 375 417 376 418 np = of_find_compatible_node(NULL, NULL, "fsl,imx50-gpt"); 377 419 base = of_iomap(np, 0); ··· 388 430 u32 val; 389 431 struct device_node *np; 390 432 391 - clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX51_DPLL1_BASE); 392 - clk[pll2_sw] = imx_clk_pllv2("pll2_sw", "osc", MX51_DPLL2_BASE); 393 - clk[pll3_sw] = imx_clk_pllv2("pll3_sw", "osc", MX51_DPLL3_BASE); 394 - clk[ipu_di0_sel] = imx_clk_mux("ipu_di0_sel", MXC_CCM_CSCMR2, 26, 3, 395 - mx51_ipu_di0_sel, ARRAY_SIZE(mx51_ipu_di0_sel)); 396 - clk[ipu_di1_sel] = imx_clk_mux("ipu_di1_sel", MXC_CCM_CSCMR2, 29, 3, 397 - mx51_ipu_di1_sel, ARRAY_SIZE(mx51_ipu_di1_sel)); 398 - clk[tve_ext_sel] = imx_clk_mux_flags("tve_ext_sel", MXC_CCM_CSCMR1, 6, 1, 399 - mx51_tve_ext_sel, ARRAY_SIZE(mx51_tve_ext_sel), CLK_SET_RATE_PARENT); 400 - clk[tve_s] = imx_clk_mux("tve_sel", MXC_CCM_CSCMR1, 7, 1, 401 - mx51_tve_sel, ARRAY_SIZE(mx51_tve_sel)); 402 - clk[tve_gate] = imx_clk_gate2("tve_gate", "tve_sel", MXC_CCM_CCGR2, 30); 403 - clk[tve_pred] = imx_clk_divider("tve_pred", "pll3_sw", MXC_CCM_CDCDR, 28, 3); 404 - clk[esdhc1_per_gate] = imx_clk_gate2("esdhc1_per_gate", "esdhc_a_podf", MXC_CCM_CCGR3, 2); 405 - clk[esdhc2_per_gate] = imx_clk_gate2("esdhc2_per_gate", "esdhc_b_podf", MXC_CCM_CCGR3, 6); 406 - clk[esdhc3_per_gate] = imx_clk_gate2("esdhc3_per_gate", "esdhc_c_sel", MXC_CCM_CCGR3, 10); 407 - clk[esdhc4_per_gate] = imx_clk_gate2("esdhc4_per_gate", "esdhc_d_sel", MXC_CCM_CCGR3, 14); 408 - clk[usb_phy_gate] = imx_clk_gate2("usb_phy_gate", "usb_phy_sel", MXC_CCM_CCGR2, 0); 409 - clk[hsi2c_gate] = imx_clk_gate2("hsi2c_gate", "ipg", MXC_CCM_CCGR1, 22); 410 - clk[mipi_hsc1_gate] = imx_clk_gate2("mipi_hsc1_gate", "ipg", MXC_CCM_CCGR4, 6); 411 - clk[mipi_hsc2_gate] = imx_clk_gate2("mipi_hsc2_gate", "ipg", MXC_CCM_CCGR4, 8); 412 - clk[mipi_esc_gate] = imx_clk_gate2("mipi_esc_gate", "ipg", MXC_CCM_CCGR4, 10); 413 - clk[mipi_hsp_gate] = imx_clk_gate2("mipi_hsp_gate", "ipg", MXC_CCM_CCGR4, 12); 414 - clk[spdif_xtal_sel] = imx_clk_mux("spdif_xtal_sel", MXC_CCM_CSCMR1, 2, 2, 415 - mx51_spdif_xtal_sel, ARRAY_SIZE(mx51_spdif_xtal_sel)); 416 - clk[spdif1_sel] = imx_clk_mux("spdif1_sel", MXC_CCM_CSCMR2, 2, 2, 417 - spdif_sel, ARRAY_SIZE(spdif_sel)); 418 - clk[spdif1_pred] = imx_clk_divider("spdif1_pred", "spdif1_sel", MXC_CCM_CDCDR, 16, 3); 419 - clk[spdif1_podf] = imx_clk_divider("spdif1_podf", "spdif1_pred", MXC_CCM_CDCDR, 9, 6); 420 - clk[spdif1_com_sel] = imx_clk_mux("spdif1_com_sel", MXC_CCM_CSCMR2, 5, 1, 421 - mx51_spdif1_com_sel, ARRAY_SIZE(mx51_spdif1_com_sel)); 422 - clk[spdif1_gate] = imx_clk_gate2("spdif1_gate", "spdif1_com_sel", MXC_CCM_CCGR5, 28); 433 + clk[IMX5_CLK_PLL1_SW] = imx_clk_pllv2("pll1_sw", "osc", MX51_DPLL1_BASE); 434 + clk[IMX5_CLK_PLL2_SW] = imx_clk_pllv2("pll2_sw", "osc", MX51_DPLL2_BASE); 435 + clk[IMX5_CLK_PLL3_SW] = imx_clk_pllv2("pll3_sw", "osc", MX51_DPLL3_BASE); 436 + clk[IMX5_CLK_IPU_DI0_SEL] = imx_clk_mux("ipu_di0_sel", MXC_CCM_CSCMR2, 26, 3, 437 + mx51_ipu_di0_sel, ARRAY_SIZE(mx51_ipu_di0_sel)); 438 + clk[IMX5_CLK_IPU_DI1_SEL] = imx_clk_mux("ipu_di1_sel", MXC_CCM_CSCMR2, 29, 3, 439 + mx51_ipu_di1_sel, ARRAY_SIZE(mx51_ipu_di1_sel)); 440 + clk[IMX5_CLK_TVE_EXT_SEL] = imx_clk_mux_flags("tve_ext_sel", MXC_CCM_CSCMR1, 6, 1, 441 + mx51_tve_ext_sel, ARRAY_SIZE(mx51_tve_ext_sel), CLK_SET_RATE_PARENT); 442 + clk[IMX5_CLK_TVE_SEL] = imx_clk_mux("tve_sel", MXC_CCM_CSCMR1, 7, 1, 443 + mx51_tve_sel, ARRAY_SIZE(mx51_tve_sel)); 444 + clk[IMX5_CLK_TVE_GATE] = imx_clk_gate2("tve_gate", "tve_sel", MXC_CCM_CCGR2, 30); 445 + clk[IMX5_CLK_TVE_PRED] = imx_clk_divider("tve_pred", "pll3_sw", MXC_CCM_CDCDR, 28, 3); 446 + clk[IMX5_CLK_ESDHC1_PER_GATE] = imx_clk_gate2("esdhc1_per_gate", "esdhc_a_podf", MXC_CCM_CCGR3, 2); 447 + clk[IMX5_CLK_ESDHC2_PER_GATE] = imx_clk_gate2("esdhc2_per_gate", "esdhc_b_podf", MXC_CCM_CCGR3, 6); 448 + clk[IMX5_CLK_ESDHC3_PER_GATE] = imx_clk_gate2("esdhc3_per_gate", "esdhc_c_sel", MXC_CCM_CCGR3, 10); 449 + clk[IMX5_CLK_ESDHC4_PER_GATE] = imx_clk_gate2("esdhc4_per_gate", "esdhc_d_sel", MXC_CCM_CCGR3, 14); 450 + clk[IMX5_CLK_USB_PHY_GATE] = imx_clk_gate2("usb_phy_gate", "usb_phy_sel", MXC_CCM_CCGR2, 0); 451 + clk[IMX5_CLK_HSI2C_GATE] = imx_clk_gate2("hsi2c_gate", "ipg", MXC_CCM_CCGR1, 22); 452 + clk[IMX5_CLK_MIPI_HSC1_GATE] = imx_clk_gate2("mipi_hsc1_gate", "ipg", MXC_CCM_CCGR4, 6); 453 + clk[IMX5_CLK_MIPI_HSC2_GATE] = imx_clk_gate2("mipi_hsc2_gate", "ipg", MXC_CCM_CCGR4, 8); 454 + clk[IMX5_CLK_MIPI_ESC_GATE] = imx_clk_gate2("mipi_esc_gate", "ipg", MXC_CCM_CCGR4, 10); 455 + clk[IMX5_CLK_MIPI_HSP_GATE] = imx_clk_gate2("mipi_hsp_gate", "ipg", MXC_CCM_CCGR4, 12); 456 + clk[IMX5_CLK_SPDIF_XTAL_SEL] = imx_clk_mux("spdif_xtal_sel", MXC_CCM_CSCMR1, 2, 2, 457 + mx51_spdif_xtal_sel, ARRAY_SIZE(mx51_spdif_xtal_sel)); 458 + clk[IMX5_CLK_SPDIF1_SEL] = imx_clk_mux("spdif1_sel", MXC_CCM_CSCMR2, 2, 2, 459 + spdif_sel, ARRAY_SIZE(spdif_sel)); 460 + clk[IMX5_CLK_SPDIF1_PRED] = imx_clk_divider("spdif1_pred", "spdif1_sel", MXC_CCM_CDCDR, 16, 3); 461 + clk[IMX5_CLK_SPDIF1_PODF] = imx_clk_divider("spdif1_podf", "spdif1_pred", MXC_CCM_CDCDR, 9, 6); 462 + clk[IMX5_CLK_SPDIF1_COM_SEL] = imx_clk_mux("spdif1_com_sel", MXC_CCM_CSCMR2, 5, 1, 463 + mx51_spdif1_com_sel, ARRAY_SIZE(mx51_spdif1_com_sel)); 464 + clk[IMX5_CLK_SPDIF1_GATE] = imx_clk_gate2("spdif1_gate", "spdif1_com_sel", MXC_CCM_CCGR5, 28); 423 465 424 466 for (i = 0; i < ARRAY_SIZE(clk); i++) 425 467 if (IS_ERR(clk[i])) ··· 433 475 434 476 mx5_clocks_common_init(rate_ckil, rate_osc, rate_ckih1, rate_ckih2); 435 477 436 - clk_register_clkdev(clk[hsi2c_gate], NULL, "imx21-i2c.2"); 437 - clk_register_clkdev(clk[mx51_mipi], "mipi_hsp", NULL); 438 - clk_register_clkdev(clk[vpu_gate], NULL, "imx51-vpu.0"); 439 - clk_register_clkdev(clk[fec_gate], NULL, "imx27-fec.0"); 440 - clk_register_clkdev(clk[usb_phy_gate], "phy", "mxc-ehci.0"); 441 - clk_register_clkdev(clk[esdhc1_ipg_gate], "ipg", "sdhci-esdhc-imx51.0"); 442 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx51.0"); 443 - clk_register_clkdev(clk[esdhc1_per_gate], "per", "sdhci-esdhc-imx51.0"); 444 - clk_register_clkdev(clk[esdhc2_ipg_gate], "ipg", "sdhci-esdhc-imx51.1"); 445 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx51.1"); 446 - clk_register_clkdev(clk[esdhc2_per_gate], "per", "sdhci-esdhc-imx51.1"); 447 - clk_register_clkdev(clk[esdhc3_ipg_gate], "ipg", "sdhci-esdhc-imx51.2"); 448 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx51.2"); 449 - clk_register_clkdev(clk[esdhc3_per_gate], "per", "sdhci-esdhc-imx51.2"); 450 - clk_register_clkdev(clk[esdhc4_ipg_gate], "ipg", "sdhci-esdhc-imx51.3"); 451 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx51.3"); 452 - clk_register_clkdev(clk[esdhc4_per_gate], "per", "sdhci-esdhc-imx51.3"); 478 + clk_register_clkdev(clk[IMX5_CLK_HSI2C_GATE], NULL, "imx21-i2c.2"); 479 + clk_register_clkdev(clk[IMX5_CLK_MX51_MIPI], "mipi_hsp", NULL); 480 + clk_register_clkdev(clk[IMX5_CLK_VPU_GATE], NULL, "imx51-vpu.0"); 481 + clk_register_clkdev(clk[IMX5_CLK_FEC_GATE], NULL, "imx27-fec.0"); 482 + clk_register_clkdev(clk[IMX5_CLK_USB_PHY_GATE], "phy", "mxc-ehci.0"); 483 + clk_register_clkdev(clk[IMX5_CLK_ESDHC1_IPG_GATE], "ipg", "sdhci-esdhc-imx51.0"); 484 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx51.0"); 485 + clk_register_clkdev(clk[IMX5_CLK_ESDHC1_PER_GATE], "per", "sdhci-esdhc-imx51.0"); 486 + clk_register_clkdev(clk[IMX5_CLK_ESDHC2_IPG_GATE], "ipg", "sdhci-esdhc-imx51.1"); 487 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx51.1"); 488 + clk_register_clkdev(clk[IMX5_CLK_ESDHC2_PER_GATE], "per", "sdhci-esdhc-imx51.1"); 489 + clk_register_clkdev(clk[IMX5_CLK_ESDHC3_IPG_GATE], "ipg", "sdhci-esdhc-imx51.2"); 490 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx51.2"); 491 + clk_register_clkdev(clk[IMX5_CLK_ESDHC3_PER_GATE], "per", "sdhci-esdhc-imx51.2"); 492 + clk_register_clkdev(clk[IMX5_CLK_ESDHC4_IPG_GATE], "ipg", "sdhci-esdhc-imx51.3"); 493 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx51.3"); 494 + clk_register_clkdev(clk[IMX5_CLK_ESDHC4_PER_GATE], "per", "sdhci-esdhc-imx51.3"); 453 495 454 496 /* set the usboh3 parent to pll2_sw */ 455 - clk_set_parent(clk[usboh3_sel], clk[pll2_sw]); 497 + clk_set_parent(clk[IMX5_CLK_USBOH3_SEL], clk[IMX5_CLK_PLL2_SW]); 456 498 457 499 /* set SDHC root clock to 166.25MHZ*/ 458 - clk_set_rate(clk[esdhc_a_podf], 166250000); 459 - clk_set_rate(clk[esdhc_b_podf], 166250000); 500 + clk_set_rate(clk[IMX5_CLK_ESDHC_A_PODF], 166250000); 501 + clk_set_rate(clk[IMX5_CLK_ESDHC_B_PODF], 166250000); 460 502 461 503 /* System timer */ 462 504 mxc_timer_init(MX51_IO_ADDRESS(MX51_GPT1_BASE_ADDR), MX51_INT_GPT); 463 505 464 - clk_prepare_enable(clk[iim_gate]); 506 + clk_prepare_enable(clk[IMX5_CLK_IIM_GATE]); 465 507 imx_print_silicon_rev("i.MX51", mx51_revision()); 466 - clk_disable_unprepare(clk[iim_gate]); 508 + clk_disable_unprepare(clk[IMX5_CLK_IIM_GATE]); 467 509 468 510 /* 469 511 * Reference Manual says: Functionality of CCDR[18] and CLPCR[23] is no ··· 495 537 unsigned long r; 496 538 void __iomem *base; 497 539 498 - clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX53_DPLL1_BASE); 499 - clk[pll2_sw] = imx_clk_pllv2("pll2_sw", "osc", MX53_DPLL2_BASE); 500 - clk[pll3_sw] = imx_clk_pllv2("pll3_sw", "osc", MX53_DPLL3_BASE); 501 - clk[pll4_sw] = imx_clk_pllv2("pll4_sw", "osc", MX53_DPLL4_BASE); 540 + clk[IMX5_CLK_PLL1_SW] = imx_clk_pllv2("pll1_sw", "osc", MX53_DPLL1_BASE); 541 + clk[IMX5_CLK_PLL2_SW] = imx_clk_pllv2("pll2_sw", "osc", MX53_DPLL2_BASE); 542 + clk[IMX5_CLK_PLL3_SW] = imx_clk_pllv2("pll3_sw", "osc", MX53_DPLL3_BASE); 543 + clk[IMX5_CLK_PLL4_SW] = imx_clk_pllv2("pll4_sw", "osc", MX53_DPLL4_BASE); 502 544 503 - clk[ldb_di1_div_3_5] = imx_clk_fixed_factor("ldb_di1_div_3_5", "ldb_di1_sel", 2, 7); 504 - clk[ldb_di1_div] = imx_clk_divider_flags("ldb_di1_div", "ldb_di1_div_3_5", MXC_CCM_CSCMR2, 11, 1, 0); 505 - clk[ldb_di1_sel] = imx_clk_mux_flags("ldb_di1_sel", MXC_CCM_CSCMR2, 9, 1, 506 - mx53_ldb_di1_sel, ARRAY_SIZE(mx53_ldb_di1_sel), CLK_SET_RATE_PARENT); 507 - clk[di_pll4_podf] = imx_clk_divider("di_pll4_podf", "pll4_sw", MXC_CCM_CDCDR, 16, 3); 508 - clk[ldb_di0_div_3_5] = imx_clk_fixed_factor("ldb_di0_div_3_5", "ldb_di0_sel", 2, 7); 509 - clk[ldb_di0_div] = imx_clk_divider_flags("ldb_di0_div", "ldb_di0_div_3_5", MXC_CCM_CSCMR2, 10, 1, 0); 510 - clk[ldb_di0_sel] = imx_clk_mux_flags("ldb_di0_sel", MXC_CCM_CSCMR2, 8, 1, 511 - mx53_ldb_di0_sel, ARRAY_SIZE(mx53_ldb_di0_sel), CLK_SET_RATE_PARENT); 512 - clk[ldb_di0_gate] = imx_clk_gate2("ldb_di0_gate", "ldb_di0_div", MXC_CCM_CCGR6, 28); 513 - clk[ldb_di1_gate] = imx_clk_gate2("ldb_di1_gate", "ldb_di1_div", MXC_CCM_CCGR6, 30); 514 - clk[ipu_di0_sel] = imx_clk_mux("ipu_di0_sel", MXC_CCM_CSCMR2, 26, 3, 515 - mx53_ipu_di0_sel, ARRAY_SIZE(mx53_ipu_di0_sel)); 516 - clk[ipu_di1_sel] = imx_clk_mux("ipu_di1_sel", MXC_CCM_CSCMR2, 29, 3, 517 - mx53_ipu_di1_sel, ARRAY_SIZE(mx53_ipu_di1_sel)); 518 - clk[tve_ext_sel] = imx_clk_mux_flags("tve_ext_sel", MXC_CCM_CSCMR1, 6, 1, 519 - mx53_tve_ext_sel, ARRAY_SIZE(mx53_tve_ext_sel), CLK_SET_RATE_PARENT); 520 - clk[tve_gate] = imx_clk_gate2("tve_gate", "tve_pred", MXC_CCM_CCGR2, 30); 521 - clk[tve_pred] = imx_clk_divider("tve_pred", "tve_ext_sel", MXC_CCM_CDCDR, 28, 3); 522 - clk[esdhc1_per_gate] = imx_clk_gate2("esdhc1_per_gate", "esdhc_a_podf", MXC_CCM_CCGR3, 2); 523 - clk[esdhc2_per_gate] = imx_clk_gate2("esdhc2_per_gate", "esdhc_c_sel", MXC_CCM_CCGR3, 6); 524 - clk[esdhc3_per_gate] = imx_clk_gate2("esdhc3_per_gate", "esdhc_b_podf", MXC_CCM_CCGR3, 10); 525 - clk[esdhc4_per_gate] = imx_clk_gate2("esdhc4_per_gate", "esdhc_d_sel", MXC_CCM_CCGR3, 14); 526 - clk[usb_phy1_gate] = imx_clk_gate2("usb_phy1_gate", "usb_phy_sel", MXC_CCM_CCGR4, 10); 527 - clk[usb_phy2_gate] = imx_clk_gate2("usb_phy2_gate", "usb_phy_sel", MXC_CCM_CCGR4, 12); 528 - clk[can_sel] = imx_clk_mux("can_sel", MXC_CCM_CSCMR2, 6, 2, 529 - mx53_can_sel, ARRAY_SIZE(mx53_can_sel)); 530 - clk[can1_serial_gate] = imx_clk_gate2("can1_serial_gate", "can_sel", MXC_CCM_CCGR6, 22); 531 - clk[can1_ipg_gate] = imx_clk_gate2("can1_ipg_gate", "ipg", MXC_CCM_CCGR6, 20); 532 - clk[ocram] = imx_clk_gate2("ocram", "ahb", MXC_CCM_CCGR6, 2); 533 - clk[can2_serial_gate] = imx_clk_gate2("can2_serial_gate", "can_sel", MXC_CCM_CCGR4, 8); 534 - clk[can2_ipg_gate] = imx_clk_gate2("can2_ipg_gate", "ipg", MXC_CCM_CCGR4, 6); 535 - clk[i2c3_gate] = imx_clk_gate2("i2c3_gate", "per_root", MXC_CCM_CCGR1, 22); 536 - clk[sata_gate] = imx_clk_gate2("sata_gate", "ipg", MXC_CCM_CCGR4, 2); 545 + clk[IMX5_CLK_LDB_DI1_DIV_3_5] = imx_clk_fixed_factor("ldb_di1_div_3_5", "ldb_di1_sel", 2, 7); 546 + clk[IMX5_CLK_LDB_DI1_DIV] = imx_clk_divider_flags("ldb_di1_div", "ldb_di1_div_3_5", MXC_CCM_CSCMR2, 11, 1, 0); 547 + clk[IMX5_CLK_LDB_DI1_SEL] = imx_clk_mux_flags("ldb_di1_sel", MXC_CCM_CSCMR2, 9, 1, 548 + mx53_ldb_di1_sel, ARRAY_SIZE(mx53_ldb_di1_sel), CLK_SET_RATE_PARENT); 549 + clk[IMX5_CLK_DI_PLL4_PODF] = imx_clk_divider("di_pll4_podf", "pll4_sw", MXC_CCM_CDCDR, 16, 3); 550 + clk[IMX5_CLK_LDB_DI0_DIV_3_5] = imx_clk_fixed_factor("ldb_di0_div_3_5", "ldb_di0_sel", 2, 7); 551 + clk[IMX5_CLK_LDB_DI0_DIV] = imx_clk_divider_flags("ldb_di0_div", "ldb_di0_div_3_5", MXC_CCM_CSCMR2, 10, 1, 0); 552 + clk[IMX5_CLK_LDB_DI0_SEL] = imx_clk_mux_flags("ldb_di0_sel", MXC_CCM_CSCMR2, 8, 1, 553 + mx53_ldb_di0_sel, ARRAY_SIZE(mx53_ldb_di0_sel), CLK_SET_RATE_PARENT); 554 + clk[IMX5_CLK_LDB_DI1_GATE] = imx_clk_gate2("ldb_di0_gate", "ldb_di0_div", MXC_CCM_CCGR6, 28); 555 + clk[IMX5_CLK_LDB_DI1_GATE] = imx_clk_gate2("ldb_di1_gate", "ldb_di1_div", MXC_CCM_CCGR6, 30); 556 + clk[IMX5_CLK_IPU_DI0_SEL] = imx_clk_mux("ipu_di0_sel", MXC_CCM_CSCMR2, 26, 3, 557 + mx53_ipu_di0_sel, ARRAY_SIZE(mx53_ipu_di0_sel)); 558 + clk[IMX5_CLK_IPU_DI1_SEL] = imx_clk_mux("ipu_di1_sel", MXC_CCM_CSCMR2, 29, 3, 559 + mx53_ipu_di1_sel, ARRAY_SIZE(mx53_ipu_di1_sel)); 560 + clk[IMX5_CLK_TVE_EXT_SEL] = imx_clk_mux_flags("tve_ext_sel", MXC_CCM_CSCMR1, 6, 1, 561 + mx53_tve_ext_sel, ARRAY_SIZE(mx53_tve_ext_sel), CLK_SET_RATE_PARENT); 562 + clk[IMX5_CLK_TVE_GATE] = imx_clk_gate2("tve_gate", "tve_pred", MXC_CCM_CCGR2, 30); 563 + clk[IMX5_CLK_TVE_PRED] = imx_clk_divider("tve_pred", "tve_ext_sel", MXC_CCM_CDCDR, 28, 3); 564 + clk[IMX5_CLK_ESDHC1_PER_GATE] = imx_clk_gate2("esdhc1_per_gate", "esdhc_a_podf", MXC_CCM_CCGR3, 2); 565 + clk[IMX5_CLK_ESDHC2_PER_GATE] = imx_clk_gate2("esdhc2_per_gate", "esdhc_c_sel", MXC_CCM_CCGR3, 6); 566 + clk[IMX5_CLK_ESDHC3_PER_GATE] = imx_clk_gate2("esdhc3_per_gate", "esdhc_b_podf", MXC_CCM_CCGR3, 10); 567 + clk[IMX5_CLK_ESDHC4_PER_GATE] = imx_clk_gate2("esdhc4_per_gate", "esdhc_d_sel", MXC_CCM_CCGR3, 14); 568 + clk[IMX5_CLK_USB_PHY1_GATE] = imx_clk_gate2("usb_phy1_gate", "usb_phy_sel", MXC_CCM_CCGR4, 10); 569 + clk[IMX5_CLK_USB_PHY2_GATE] = imx_clk_gate2("usb_phy2_gate", "usb_phy_sel", MXC_CCM_CCGR4, 12); 570 + clk[IMX5_CLK_CAN_SEL] = imx_clk_mux("can_sel", MXC_CCM_CSCMR2, 6, 2, 571 + mx53_can_sel, ARRAY_SIZE(mx53_can_sel)); 572 + clk[IMX5_CLK_CAN1_SERIAL_GATE] = imx_clk_gate2("can1_serial_gate", "can_sel", MXC_CCM_CCGR6, 22); 573 + clk[IMX5_CLK_CAN1_IPG_GATE] = imx_clk_gate2("can1_ipg_gate", "ipg", MXC_CCM_CCGR6, 20); 574 + clk[IMX5_CLK_OCRAM] = imx_clk_gate2("ocram", "ahb", MXC_CCM_CCGR6, 2); 575 + clk[IMX5_CLK_CAN2_SERIAL_GATE] = imx_clk_gate2("can2_serial_gate", "can_sel", MXC_CCM_CCGR4, 8); 576 + clk[IMX5_CLK_CAN2_IPG_GATE] = imx_clk_gate2("can2_ipg_gate", "ipg", MXC_CCM_CCGR4, 6); 577 + clk[IMX5_CLK_I2C3_GATE] = imx_clk_gate2("i2c3_gate", "per_root", MXC_CCM_CCGR1, 22); 578 + clk[IMX5_CLK_SATA_GATE] = imx_clk_gate2("sata_gate", "ipg", MXC_CCM_CCGR4, 2); 537 579 538 - clk[cko1_sel] = imx_clk_mux("cko1_sel", MXC_CCM_CCOSR, 0, 4, 539 - mx53_cko1_sel, ARRAY_SIZE(mx53_cko1_sel)); 540 - clk[cko1_podf] = imx_clk_divider("cko1_podf", "cko1_sel", MXC_CCM_CCOSR, 4, 3); 541 - clk[cko1] = imx_clk_gate2("cko1", "cko1_podf", MXC_CCM_CCOSR, 7); 580 + clk[IMX5_CLK_CKO1_SEL] = imx_clk_mux("cko1_sel", MXC_CCM_CCOSR, 0, 4, 581 + mx53_cko1_sel, ARRAY_SIZE(mx53_cko1_sel)); 582 + clk[IMX5_CLK_CKO1_PODF] = imx_clk_divider("cko1_podf", "cko1_sel", MXC_CCM_CCOSR, 4, 3); 583 + clk[IMX5_CLK_CKO1] = imx_clk_gate2("cko1", "cko1_podf", MXC_CCM_CCOSR, 7); 542 584 543 - clk[cko2_sel] = imx_clk_mux("cko2_sel", MXC_CCM_CCOSR, 16, 5, 544 - mx53_cko2_sel, ARRAY_SIZE(mx53_cko2_sel)); 545 - clk[cko2_podf] = imx_clk_divider("cko2_podf", "cko2_sel", MXC_CCM_CCOSR, 21, 3); 546 - clk[cko2] = imx_clk_gate2("cko2", "cko2_podf", MXC_CCM_CCOSR, 24); 547 - clk[spdif_xtal_sel] = imx_clk_mux("spdif_xtal_sel", MXC_CCM_CSCMR1, 2, 2, 548 - mx53_spdif_xtal_sel, ARRAY_SIZE(mx53_spdif_xtal_sel)); 585 + clk[IMX5_CLK_CKO2_SEL] = imx_clk_mux("cko2_sel", MXC_CCM_CCOSR, 16, 5, 586 + mx53_cko2_sel, ARRAY_SIZE(mx53_cko2_sel)); 587 + clk[IMX5_CLK_CKO2_PODF] = imx_clk_divider("cko2_podf", "cko2_sel", MXC_CCM_CCOSR, 21, 3); 588 + clk[IMX5_CLK_CKO2] = imx_clk_gate2("cko2", "cko2_podf", MXC_CCM_CCOSR, 24); 589 + clk[IMX5_CLK_SPDIF_XTAL_SEL] = imx_clk_mux("spdif_xtal_sel", MXC_CCM_CSCMR1, 2, 2, 590 + mx53_spdif_xtal_sel, ARRAY_SIZE(mx53_spdif_xtal_sel)); 549 591 550 592 for (i = 0; i < ARRAY_SIZE(clk); i++) 551 593 if (IS_ERR(clk[i])) ··· 558 600 559 601 mx5_clocks_common_init(0, 0, 0, 0); 560 602 561 - clk_register_clkdev(clk[vpu_gate], NULL, "imx53-vpu.0"); 562 - clk_register_clkdev(clk[i2c3_gate], NULL, "imx21-i2c.2"); 563 - clk_register_clkdev(clk[fec_gate], NULL, "imx25-fec.0"); 564 - clk_register_clkdev(clk[usb_phy1_gate], "usb_phy1", "mxc-ehci.0"); 565 - clk_register_clkdev(clk[esdhc1_ipg_gate], "ipg", "sdhci-esdhc-imx53.0"); 566 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx53.0"); 567 - clk_register_clkdev(clk[esdhc1_per_gate], "per", "sdhci-esdhc-imx53.0"); 568 - clk_register_clkdev(clk[esdhc2_ipg_gate], "ipg", "sdhci-esdhc-imx53.1"); 569 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx53.1"); 570 - clk_register_clkdev(clk[esdhc2_per_gate], "per", "sdhci-esdhc-imx53.1"); 571 - clk_register_clkdev(clk[esdhc3_ipg_gate], "ipg", "sdhci-esdhc-imx53.2"); 572 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx53.2"); 573 - clk_register_clkdev(clk[esdhc3_per_gate], "per", "sdhci-esdhc-imx53.2"); 574 - clk_register_clkdev(clk[esdhc4_ipg_gate], "ipg", "sdhci-esdhc-imx53.3"); 575 - clk_register_clkdev(clk[dummy], "ahb", "sdhci-esdhc-imx53.3"); 576 - clk_register_clkdev(clk[esdhc4_per_gate], "per", "sdhci-esdhc-imx53.3"); 603 + clk_register_clkdev(clk[IMX5_CLK_VPU_GATE], NULL, "imx53-vpu.0"); 604 + clk_register_clkdev(clk[IMX5_CLK_I2C3_GATE], NULL, "imx21-i2c.2"); 605 + clk_register_clkdev(clk[IMX5_CLK_FEC_GATE], NULL, "imx25-fec.0"); 606 + clk_register_clkdev(clk[IMX5_CLK_USB_PHY1_GATE], "usb_phy1", "mxc-ehci.0"); 607 + clk_register_clkdev(clk[IMX5_CLK_ESDHC1_IPG_GATE], "ipg", "sdhci-esdhc-imx53.0"); 608 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx53.0"); 609 + clk_register_clkdev(clk[IMX5_CLK_ESDHC1_PER_GATE], "per", "sdhci-esdhc-imx53.0"); 610 + clk_register_clkdev(clk[IMX5_CLK_ESDHC2_IPG_GATE], "ipg", "sdhci-esdhc-imx53.1"); 611 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx53.1"); 612 + clk_register_clkdev(clk[IMX5_CLK_ESDHC2_PER_GATE], "per", "sdhci-esdhc-imx53.1"); 613 + clk_register_clkdev(clk[IMX5_CLK_ESDHC3_IPG_GATE], "ipg", "sdhci-esdhc-imx53.2"); 614 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx53.2"); 615 + clk_register_clkdev(clk[IMX5_CLK_ESDHC3_PER_GATE], "per", "sdhci-esdhc-imx53.2"); 616 + clk_register_clkdev(clk[IMX5_CLK_ESDHC4_IPG_GATE], "ipg", "sdhci-esdhc-imx53.3"); 617 + clk_register_clkdev(clk[IMX5_CLK_DUMMY], "ahb", "sdhci-esdhc-imx53.3"); 618 + clk_register_clkdev(clk[IMX5_CLK_ESDHC4_PER_GATE], "per", "sdhci-esdhc-imx53.3"); 577 619 578 620 /* set SDHC root clock to 200MHZ*/ 579 - clk_set_rate(clk[esdhc_a_podf], 200000000); 580 - clk_set_rate(clk[esdhc_b_podf], 200000000); 621 + clk_set_rate(clk[IMX5_CLK_ESDHC_A_PODF], 200000000); 622 + clk_set_rate(clk[IMX5_CLK_ESDHC_B_PODF], 200000000); 581 623 582 - clk_prepare_enable(clk[iim_gate]); 624 + clk_prepare_enable(clk[IMX5_CLK_IIM_GATE]); 583 625 imx_print_silicon_rev("i.MX53", mx53_revision()); 584 - clk_disable_unprepare(clk[iim_gate]); 626 + clk_disable_unprepare(clk[IMX5_CLK_IIM_GATE]); 585 627 586 - r = clk_round_rate(clk[usboh3_per_gate], 54000000); 587 - clk_set_rate(clk[usboh3_per_gate], r); 628 + r = clk_round_rate(clk[IMX5_CLK_USBOH3_PER_GATE], 54000000); 629 + clk_set_rate(clk[IMX5_CLK_USBOH3_PER_GATE], r); 588 630 589 631 np = of_find_compatible_node(NULL, NULL, "fsl,imx53-gpt"); 590 632 base = of_iomap(np, 0);
+202
include/dt-bindings/clock/imx5-clock.h
··· 1 + /* 2 + * Copyright 2013 Lucas Stach, Pengutronix <l.stach@pengutronix.de> 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 as 6 + * published by the Free Software Foundation. 7 + * 8 + */ 9 + 10 + #ifndef __DT_BINDINGS_CLOCK_IMX5_H 11 + #define __DT_BINDINGS_CLOCK_IMX5_H 12 + 13 + #define IMX5_CLK_DUMMY 0 14 + #define IMX5_CLK_CKIL 1 15 + #define IMX5_CLK_OSC 2 16 + #define IMX5_CLK_CKIH1 3 17 + #define IMX5_CLK_CKIH2 4 18 + #define IMX5_CLK_AHB 5 19 + #define IMX5_CLK_IPG 6 20 + #define IMX5_CLK_AXI_A 7 21 + #define IMX5_CLK_AXI_B 8 22 + #define IMX5_CLK_UART_PRED 9 23 + #define IMX5_CLK_UART_ROOT 10 24 + #define IMX5_CLK_ESDHC_A_PRED 11 25 + #define IMX5_CLK_ESDHC_B_PRED 12 26 + #define IMX5_CLK_ESDHC_C_SEL 13 27 + #define IMX5_CLK_ESDHC_D_SEL 14 28 + #define IMX5_CLK_EMI_SEL 15 29 + #define IMX5_CLK_EMI_SLOW_PODF 16 30 + #define IMX5_CLK_NFC_PODF 17 31 + #define IMX5_CLK_ECSPI_PRED 18 32 + #define IMX5_CLK_ECSPI_PODF 19 33 + #define IMX5_CLK_USBOH3_PRED 20 34 + #define IMX5_CLK_USBOH3_PODF 21 35 + #define IMX5_CLK_USB_PHY_PRED 22 36 + #define IMX5_CLK_USB_PHY_PODF 23 37 + #define IMX5_CLK_CPU_PODF 24 38 + #define IMX5_CLK_DI_PRED 25 39 + #define IMX5_CLK_TVE_SEL 27 40 + #define IMX5_CLK_UART1_IPG_GATE 28 41 + #define IMX5_CLK_UART1_PER_GATE 29 42 + #define IMX5_CLK_UART2_IPG_GATE 30 43 + #define IMX5_CLK_UART2_PER_GATE 31 44 + #define IMX5_CLK_UART3_IPG_GATE 32 45 + #define IMX5_CLK_UART3_PER_GATE 33 46 + #define IMX5_CLK_I2C1_GATE 34 47 + #define IMX5_CLK_I2C2_GATE 35 48 + #define IMX5_CLK_GPT_IPG_GATE 36 49 + #define IMX5_CLK_PWM1_IPG_GATE 37 50 + #define IMX5_CLK_PWM1_HF_GATE 38 51 + #define IMX5_CLK_PWM2_IPG_GATE 39 52 + #define IMX5_CLK_PWM2_HF_GATE 40 53 + #define IMX5_CLK_GPT_HF_GATE 41 54 + #define IMX5_CLK_FEC_GATE 42 55 + #define IMX5_CLK_USBOH3_PER_GATE 43 56 + #define IMX5_CLK_ESDHC1_IPG_GATE 44 57 + #define IMX5_CLK_ESDHC2_IPG_GATE 45 58 + #define IMX5_CLK_ESDHC3_IPG_GATE 46 59 + #define IMX5_CLK_ESDHC4_IPG_GATE 47 60 + #define IMX5_CLK_SSI1_IPG_GATE 48 61 + #define IMX5_CLK_SSI2_IPG_GATE 49 62 + #define IMX5_CLK_SSI3_IPG_GATE 50 63 + #define IMX5_CLK_ECSPI1_IPG_GATE 51 64 + #define IMX5_CLK_ECSPI1_PER_GATE 52 65 + #define IMX5_CLK_ECSPI2_IPG_GATE 53 66 + #define IMX5_CLK_ECSPI2_PER_GATE 54 67 + #define IMX5_CLK_CSPI_IPG_GATE 55 68 + #define IMX5_CLK_SDMA_GATE 56 69 + #define IMX5_CLK_EMI_SLOW_GATE 57 70 + #define IMX5_CLK_IPU_SEL 58 71 + #define IMX5_CLK_IPU_GATE 59 72 + #define IMX5_CLK_NFC_GATE 60 73 + #define IMX5_CLK_IPU_DI1_GATE 61 74 + #define IMX5_CLK_VPU_SEL 62 75 + #define IMX5_CLK_VPU_GATE 63 76 + #define IMX5_CLK_VPU_REFERENCE_GATE 64 77 + #define IMX5_CLK_UART4_IPG_GATE 65 78 + #define IMX5_CLK_UART4_PER_GATE 66 79 + #define IMX5_CLK_UART5_IPG_GATE 67 80 + #define IMX5_CLK_UART5_PER_GATE 68 81 + #define IMX5_CLK_TVE_GATE 69 82 + #define IMX5_CLK_TVE_PRED 70 83 + #define IMX5_CLK_ESDHC1_PER_GATE 71 84 + #define IMX5_CLK_ESDHC2_PER_GATE 72 85 + #define IMX5_CLK_ESDHC3_PER_GATE 73 86 + #define IMX5_CLK_ESDHC4_PER_GATE 74 87 + #define IMX5_CLK_USB_PHY_GATE 75 88 + #define IMX5_CLK_HSI2C_GATE 76 89 + #define IMX5_CLK_MIPI_HSC1_GATE 77 90 + #define IMX5_CLK_MIPI_HSC2_GATE 78 91 + #define IMX5_CLK_MIPI_ESC_GATE 79 92 + #define IMX5_CLK_MIPI_HSP_GATE 80 93 + #define IMX5_CLK_LDB_DI1_DIV_3_5 81 94 + #define IMX5_CLK_LDB_DI1_DIV 82 95 + #define IMX5_CLK_LDB_DI0_DIV_3_5 83 96 + #define IMX5_CLK_LDB_DI0_DIV 84 97 + #define IMX5_CLK_LDB_DI1_GATE 85 98 + #define IMX5_CLK_CAN2_SERIAL_GATE 86 99 + #define IMX5_CLK_CAN2_IPG_GATE 87 100 + #define IMX5_CLK_I2C3_GATE 88 101 + #define IMX5_CLK_LP_APM 89 102 + #define IMX5_CLK_PERIPH_APM 90 103 + #define IMX5_CLK_MAIN_BUS 91 104 + #define IMX5_CLK_AHB_MAX 92 105 + #define IMX5_CLK_AIPS_TZ1 93 106 + #define IMX5_CLK_AIPS_TZ2 94 107 + #define IMX5_CLK_TMAX1 95 108 + #define IMX5_CLK_TMAX2 96 109 + #define IMX5_CLK_TMAX3 97 110 + #define IMX5_CLK_SPBA 98 111 + #define IMX5_CLK_UART_SEL 99 112 + #define IMX5_CLK_ESDHC_A_SEL 100 113 + #define IMX5_CLK_ESDHC_B_SEL 101 114 + #define IMX5_CLK_ESDHC_A_PODF 102 115 + #define IMX5_CLK_ESDHC_B_PODF 103 116 + #define IMX5_CLK_ECSPI_SEL 104 117 + #define IMX5_CLK_USBOH3_SEL 105 118 + #define IMX5_CLK_USB_PHY_SEL 106 119 + #define IMX5_CLK_IIM_GATE 107 120 + #define IMX5_CLK_USBOH3_GATE 108 121 + #define IMX5_CLK_EMI_FAST_GATE 109 122 + #define IMX5_CLK_IPU_DI0_GATE 110 123 + #define IMX5_CLK_GPC_DVFS 111 124 + #define IMX5_CLK_PLL1_SW 112 125 + #define IMX5_CLK_PLL2_SW 113 126 + #define IMX5_CLK_PLL3_SW 114 127 + #define IMX5_CLK_IPU_DI0_SEL 115 128 + #define IMX5_CLK_IPU_DI1_SEL 116 129 + #define IMX5_CLK_TVE_EXT_SEL 117 130 + #define IMX5_CLK_MX51_MIPI 118 131 + #define IMX5_CLK_PLL4_SW 119 132 + #define IMX5_CLK_LDB_DI1_SEL 120 133 + #define IMX5_CLK_DI_PLL4_PODF 121 134 + #define IMX5_CLK_LDB_DI0_SEL 122 135 + #define IMX5_CLK_LDB_DI0_GATE 123 136 + #define IMX5_CLK_USB_PHY1_GATE 124 137 + #define IMX5_CLK_USB_PHY2_GATE 125 138 + #define IMX5_CLK_PER_LP_APM 126 139 + #define IMX5_CLK_PER_PRED1 127 140 + #define IMX5_CLK_PER_PRED2 128 141 + #define IMX5_CLK_PER_PODF 129 142 + #define IMX5_CLK_PER_ROOT 130 143 + #define IMX5_CLK_SSI_APM 131 144 + #define IMX5_CLK_SSI1_ROOT_SEL 132 145 + #define IMX5_CLK_SSI2_ROOT_SEL 133 146 + #define IMX5_CLK_SSI3_ROOT_SEL 134 147 + #define IMX5_CLK_SSI_EXT1_SEL 135 148 + #define IMX5_CLK_SSI_EXT2_SEL 136 149 + #define IMX5_CLK_SSI_EXT1_COM_SEL 137 150 + #define IMX5_CLK_SSI_EXT2_COM_SEL 138 151 + #define IMX5_CLK_SSI1_ROOT_PRED 139 152 + #define IMX5_CLK_SSI1_ROOT_PODF 140 153 + #define IMX5_CLK_SSI2_ROOT_PRED 141 154 + #define IMX5_CLK_SSI2_ROOT_PODF 142 155 + #define IMX5_CLK_SSI_EXT1_PRED 143 156 + #define IMX5_CLK_SSI_EXT1_PODF 144 157 + #define IMX5_CLK_SSI_EXT2_PRED 145 158 + #define IMX5_CLK_SSI_EXT2_PODF 146 159 + #define IMX5_CLK_SSI1_ROOT_GATE 147 160 + #define IMX5_CLK_SSI2_ROOT_GATE 148 161 + #define IMX5_CLK_SSI3_ROOT_GATE 149 162 + #define IMX5_CLK_SSI_EXT1_GATE 150 163 + #define IMX5_CLK_SSI_EXT2_GATE 151 164 + #define IMX5_CLK_EPIT1_IPG_GATE 152 165 + #define IMX5_CLK_EPIT1_HF_GATE 153 166 + #define IMX5_CLK_EPIT2_IPG_GATE 154 167 + #define IMX5_CLK_EPIT2_HF_GATE 155 168 + #define IMX5_CLK_CAN_SEL 156 169 + #define IMX5_CLK_CAN1_SERIAL_GATE 157 170 + #define IMX5_CLK_CAN1_IPG_GATE 158 171 + #define IMX5_CLK_OWIRE_GATE 159 172 + #define IMX5_CLK_GPU3D_SEL 160 173 + #define IMX5_CLK_GPU2D_SEL 161 174 + #define IMX5_CLK_GPU3D_GATE 162 175 + #define IMX5_CLK_GPU2D_GATE 163 176 + #define IMX5_CLK_GARB_GATE 164 177 + #define IMX5_CLK_CKO1_SEL 165 178 + #define IMX5_CLK_CKO1_PODF 166 179 + #define IMX5_CLK_CKO1 167 180 + #define IMX5_CLK_CKO2_SEL 168 181 + #define IMX5_CLK_CKO2_PODF 169 182 + #define IMX5_CLK_CKO2 170 183 + #define IMX5_CLK_SRTC_GATE 171 184 + #define IMX5_CLK_PATA_GATE 172 185 + #define IMX5_CLK_SATA_GATE 173 186 + #define IMX5_CLK_SPDIF_XTAL_SEL 174 187 + #define IMX5_CLK_SPDIF0_SEL 175 188 + #define IMX5_CLK_SPDIF1_SEL 176 189 + #define IMX5_CLK_SPDIF0_PRED 177 190 + #define IMX5_CLK_SPDIF0_PODF 178 191 + #define IMX5_CLK_SPDIF1_PRED 179 192 + #define IMX5_CLK_SPDIF1_PODF 180 193 + #define IMX5_CLK_SPDIF0_COM_SEL 181 194 + #define IMX5_CLK_SPDIF1_COM_SEL 182 195 + #define IMX5_CLK_SPDIF0_GATE 183 196 + #define IMX5_CLK_SPDIF1_GATE 184 197 + #define IMX5_CLK_SPDIF_IPG_GATE 185 198 + #define IMX5_CLK_OCRAM 186 199 + #define IMX5_CLK_SAHARA_IPG_GATE 187 200 + #define IMX5_CLK_END 188 201 + 202 + #endif /* __DT_BINDINGS_CLOCK_IMX5_H */