diff options
| -rw-r--r-- | Documentation/devicetree/bindings/clock/imx6q-clock.txt | 222 | ||||
| -rw-r--r-- | arch/arm/boot/dts/imx6q-sabrelite.dts | 1 | ||||
| -rw-r--r-- | arch/arm/boot/dts/imx6q.dtsi | 73 | ||||
| -rw-r--r-- | arch/arm/mach-imx/clk-imx6q.c | 44 | ||||
| -rw-r--r-- | arch/arm/mach-imx/mach-imx6q.c | 1 |
5 files changed, 291 insertions, 50 deletions
diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt new file mode 100644 index 000000000000..492bd991d52a --- /dev/null +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt | |||
| @@ -0,0 +1,222 @@ | |||
| 1 | * Clock bindings for Freescale i.MX6 Quad | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: Should be "fsl,imx6q-ccm" | ||
| 5 | - reg: Address and length of the register set | ||
| 6 | - interrupts: Should contain CCM interrupt | ||
| 7 | - #clock-cells: Should be <1> | ||
| 8 | |||
| 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.MX6Q | ||
| 11 | clocks and IDs. | ||
| 12 | |||
| 13 | Clock ID | ||
| 14 | --------------------------- | ||
| 15 | dummy 0 | ||
| 16 | ckil 1 | ||
| 17 | ckih 2 | ||
| 18 | osc 3 | ||
| 19 | pll2_pfd0_352m 4 | ||
| 20 | pll2_pfd1_594m 5 | ||
| 21 | pll2_pfd2_396m 6 | ||
| 22 | pll3_pfd0_720m 7 | ||
| 23 | pll3_pfd1_540m 8 | ||
| 24 | pll3_pfd2_508m 9 | ||
| 25 | pll3_pfd3_454m 10 | ||
| 26 | pll2_198m 11 | ||
| 27 | pll3_120m 12 | ||
| 28 | pll3_80m 13 | ||
| 29 | pll3_60m 14 | ||
| 30 | twd 15 | ||
| 31 | step 16 | ||
| 32 | pll1_sw 17 | ||
| 33 | periph_pre 18 | ||
| 34 | periph2_pre 19 | ||
| 35 | periph_clk2_sel 20 | ||
| 36 | periph2_clk2_sel 21 | ||
| 37 | axi_sel 22 | ||
| 38 | esai_sel 23 | ||
| 39 | asrc_sel 24 | ||
| 40 | spdif_sel 25 | ||
| 41 | gpu2d_axi 26 | ||
| 42 | gpu3d_axi 27 | ||
| 43 | gpu2d_core_sel 28 | ||
| 44 | gpu3d_core_sel 29 | ||
| 45 | gpu3d_shader_sel 30 | ||
| 46 | ipu1_sel 31 | ||
| 47 | ipu2_sel 32 | ||
| 48 | ldb_di0_sel 33 | ||
| 49 | ldb_di1_sel 34 | ||
| 50 | ipu1_di0_pre_sel 35 | ||
| 51 | ipu1_di1_pre_sel 36 | ||
| 52 | ipu2_di0_pre_sel 37 | ||
| 53 | ipu2_di1_pre_sel 38 | ||
| 54 | ipu1_di0_sel 39 | ||
| 55 | ipu1_di1_sel 40 | ||
| 56 | ipu2_di0_sel 41 | ||
| 57 | ipu2_di1_sel 42 | ||
| 58 | hsi_tx_sel 43 | ||
| 59 | pcie_axi_sel 44 | ||
| 60 | ssi1_sel 45 | ||
| 61 | ssi2_sel 46 | ||
| 62 | ssi3_sel 47 | ||
| 63 | usdhc1_sel 48 | ||
| 64 | usdhc2_sel 49 | ||
| 65 | usdhc3_sel 50 | ||
| 66 | usdhc4_sel 51 | ||
| 67 | enfc_sel 52 | ||
| 68 | emi_sel 53 | ||
| 69 | emi_slow_sel 54 | ||
| 70 | vdo_axi_sel 55 | ||
| 71 | vpu_axi_sel 56 | ||
| 72 | cko1_sel 57 | ||
| 73 | periph 58 | ||
| 74 | periph2 59 | ||
| 75 | periph_clk2 60 | ||
| 76 | periph2_clk2 61 | ||
| 77 | ipg 62 | ||
| 78 | ipg_per 63 | ||
| 79 | esai_pred 64 | ||
| 80 | esai_podf 65 | ||
| 81 | asrc_pred 66 | ||
| 82 | asrc_podf 67 | ||
| 83 | spdif_pred 68 | ||
| 84 | spdif_podf 69 | ||
| 85 | can_root 70 | ||
| 86 | ecspi_root 71 | ||
| 87 | gpu2d_core_podf 72 | ||
| 88 | gpu3d_core_podf 73 | ||
| 89 | gpu3d_shader 74 | ||
| 90 | ipu1_podf 75 | ||
| 91 | ipu2_podf 76 | ||
| 92 | ldb_di0_podf 77 | ||
| 93 | ldb_di1_podf 78 | ||
| 94 | ipu1_di0_pre 79 | ||
| 95 | ipu1_di1_pre 80 | ||
| 96 | ipu2_di0_pre 81 | ||
| 97 | ipu2_di1_pre 82 | ||
| 98 | hsi_tx_podf 83 | ||
| 99 | ssi1_pred 84 | ||
| 100 | ssi1_podf 85 | ||
| 101 | ssi2_pred 86 | ||
| 102 | ssi2_podf 87 | ||
| 103 | ssi3_pred 88 | ||
| 104 | ssi3_podf 89 | ||
| 105 | uart_serial_podf 90 | ||
| 106 | usdhc1_podf 91 | ||
| 107 | usdhc2_podf 92 | ||
| 108 | usdhc3_podf 93 | ||
| 109 | usdhc4_podf 94 | ||
| 110 | enfc_pred 95 | ||
| 111 | enfc_podf 96 | ||
| 112 | emi_podf 97 | ||
| 113 | emi_slow_podf 98 | ||
| 114 | vpu_axi_podf 99 | ||
| 115 | cko1_podf 100 | ||
| 116 | axi 101 | ||
| 117 | mmdc_ch0_axi_podf 102 | ||
| 118 | mmdc_ch1_axi_podf 103 | ||
| 119 | arm 104 | ||
| 120 | ahb 105 | ||
| 121 | apbh_dma 106 | ||
| 122 | asrc 107 | ||
| 123 | can1_ipg 108 | ||
| 124 | can1_serial 109 | ||
| 125 | can2_ipg 110 | ||
| 126 | can2_serial 111 | ||
| 127 | ecspi1 112 | ||
| 128 | ecspi2 113 | ||
| 129 | ecspi3 114 | ||
| 130 | ecspi4 115 | ||
| 131 | ecspi5 116 | ||
| 132 | enet 117 | ||
| 133 | esai 118 | ||
| 134 | gpt_ipg 119 | ||
| 135 | gpt_ipg_per 120 | ||
| 136 | gpu2d_core 121 | ||
| 137 | gpu3d_core 122 | ||
| 138 | hdmi_iahb 123 | ||
| 139 | hdmi_isfr 124 | ||
| 140 | i2c1 125 | ||
| 141 | i2c2 126 | ||
| 142 | i2c3 127 | ||
| 143 | iim 128 | ||
| 144 | enfc 129 | ||
| 145 | ipu1 130 | ||
| 146 | ipu1_di0 131 | ||
| 147 | ipu1_di1 132 | ||
| 148 | ipu2 133 | ||
| 149 | ipu2_di0 134 | ||
| 150 | ldb_di0 135 | ||
| 151 | ldb_di1 136 | ||
| 152 | ipu2_di1 137 | ||
| 153 | hsi_tx 138 | ||
| 154 | mlb 139 | ||
| 155 | mmdc_ch0_axi 140 | ||
| 156 | mmdc_ch1_axi 141 | ||
| 157 | ocram 142 | ||
| 158 | openvg_axi 143 | ||
| 159 | pcie_axi 144 | ||
| 160 | pwm1 145 | ||
| 161 | pwm2 146 | ||
| 162 | pwm3 147 | ||
| 163 | pwm4 148 | ||
| 164 | per1_bch 149 | ||
| 165 | gpmi_bch_apb 150 | ||
| 166 | gpmi_bch 151 | ||
| 167 | gpmi_io 152 | ||
| 168 | gpmi_apb 153 | ||
| 169 | sata 154 | ||
| 170 | sdma 155 | ||
| 171 | spba 156 | ||
| 172 | ssi1 157 | ||
| 173 | ssi2 158 | ||
| 174 | ssi3 159 | ||
| 175 | uart_ipg 160 | ||
| 176 | uart_serial 161 | ||
| 177 | usboh3 162 | ||
| 178 | usdhc1 163 | ||
| 179 | usdhc2 164 | ||
| 180 | usdhc3 165 | ||
| 181 | usdhc4 166 | ||
| 182 | vdo_axi 167 | ||
| 183 | vpu_axi 168 | ||
| 184 | cko1 169 | ||
| 185 | pll1_sys 170 | ||
| 186 | pll2_bus 171 | ||
| 187 | pll3_usb_otg 172 | ||
| 188 | pll4_audio 173 | ||
| 189 | pll5_video 174 | ||
| 190 | pll6_mlb 175 | ||
| 191 | pll7_usb_host 176 | ||
| 192 | pll8_enet 177 | ||
| 193 | ssi1_ipg 178 | ||
| 194 | ssi2_ipg 179 | ||
| 195 | ssi3_ipg 180 | ||
| 196 | rom 181 | ||
| 197 | usbphy1 182 | ||
| 198 | usbphy2 183 | ||
| 199 | ldb_di0_div_3_5 184 | ||
| 200 | ldb_di1_div_3_5 185 | ||
| 201 | |||
| 202 | Examples: | ||
| 203 | |||
| 204 | clks: ccm@020c4000 { | ||
| 205 | compatible = "fsl,imx6q-ccm"; | ||
| 206 | reg = <0x020c4000 0x4000>; | ||
| 207 | interrupts = <0 87 0x04 0 88 0x04>; | ||
| 208 | #clock-cells = <1>; | ||
| 209 | clock-output-names = ... | ||
| 210 | "uart_ipg", | ||
| 211 | "uart_serial", | ||
| 212 | ...; | ||
| 213 | }; | ||
| 214 | |||
| 215 | uart1: serial@02020000 { | ||
| 216 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; | ||
| 217 | reg = <0x02020000 0x4000>; | ||
| 218 | interrupts = <0 26 0x04>; | ||
| 219 | clocks = <&clks 160>, <&clks 161>; | ||
| 220 | clock-names = "ipg", "per"; | ||
| 221 | status = "disabled"; | ||
| 222 | }; | ||
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts index 72f30f3e6171..cfdbe539c43e 100644 --- a/arch/arm/boot/dts/imx6q-sabrelite.dts +++ b/arch/arm/boot/dts/imx6q-sabrelite.dts | |||
| @@ -111,6 +111,7 @@ | |||
| 111 | codec: sgtl5000@0a { | 111 | codec: sgtl5000@0a { |
| 112 | compatible = "fsl,sgtl5000"; | 112 | compatible = "fsl,sgtl5000"; |
| 113 | reg = <0x0a>; | 113 | reg = <0x0a>; |
| 114 | clocks = <&clks 169>; | ||
| 114 | VDDA-supply = <®_2p5v>; | 115 | VDDA-supply = <®_2p5v>; |
| 115 | VDDIO-supply = <®_3p3v>; | 116 | VDDIO-supply = <®_3p3v>; |
| 116 | }; | 117 | }; |
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi index fd57079f71a9..925da33420e2 100644 --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi | |||
| @@ -97,18 +97,23 @@ | |||
| 97 | dma-apbh@00110000 { | 97 | dma-apbh@00110000 { |
| 98 | compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; | 98 | compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; |
| 99 | reg = <0x00110000 0x2000>; | 99 | reg = <0x00110000 0x2000>; |
| 100 | clocks = <&clks 106>; | ||
| 100 | }; | 101 | }; |
| 101 | 102 | ||
| 102 | gpmi-nand@00112000 { | 103 | gpmi-nand@00112000 { |
| 103 | compatible = "fsl,imx6q-gpmi-nand"; | 104 | compatible = "fsl,imx6q-gpmi-nand"; |
| 104 | #address-cells = <1>; | 105 | #address-cells = <1>; |
| 105 | #size-cells = <1>; | 106 | #size-cells = <1>; |
| 106 | reg = <0x00112000 0x2000>, <0x00114000 0x2000>; | 107 | reg = <0x00112000 0x2000>, <0x00114000 0x2000>; |
| 107 | reg-names = "gpmi-nand", "bch"; | 108 | reg-names = "gpmi-nand", "bch"; |
| 108 | interrupts = <0 13 0x04>, <0 15 0x04>; | 109 | interrupts = <0 13 0x04>, <0 15 0x04>; |
| 109 | interrupt-names = "gpmi-dma", "bch"; | 110 | interrupt-names = "gpmi-dma", "bch"; |
| 110 | fsl,gpmi-dma-channel = <0>; | 111 | clocks = <&clks 152>, <&clks 153>, <&clks 151>, |
| 111 | status = "disabled"; | 112 | <&clks 150>, <&clks 149>; |
| 113 | clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch", | ||
| 114 | "gpmi_bch_apb", "per1_bch"; | ||
| 115 | fsl,gpmi-dma-channel = <0>; | ||
| 116 | status = "disabled"; | ||
| 112 | }; | 117 | }; |
| 113 | 118 | ||
| 114 | timer@00a00600 { | 119 | timer@00a00600 { |
| @@ -150,6 +155,8 @@ | |||
| 150 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 155 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
| 151 | reg = <0x02008000 0x4000>; | 156 | reg = <0x02008000 0x4000>; |
| 152 | interrupts = <0 31 0x04>; | 157 | interrupts = <0 31 0x04>; |
| 158 | clocks = <&clks 112>, <&clks 112>; | ||
| 159 | clock-names = "ipg", "per"; | ||
| 153 | status = "disabled"; | 160 | status = "disabled"; |
| 154 | }; | 161 | }; |
| 155 | 162 | ||
| @@ -159,6 +166,8 @@ | |||
| 159 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 166 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
| 160 | reg = <0x0200c000 0x4000>; | 167 | reg = <0x0200c000 0x4000>; |
| 161 | interrupts = <0 32 0x04>; | 168 | interrupts = <0 32 0x04>; |
| 169 | clocks = <&clks 113>, <&clks 113>; | ||
| 170 | clock-names = "ipg", "per"; | ||
| 162 | status = "disabled"; | 171 | status = "disabled"; |
| 163 | }; | 172 | }; |
| 164 | 173 | ||
| @@ -168,6 +177,8 @@ | |||
| 168 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 177 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
| 169 | reg = <0x02010000 0x4000>; | 178 | reg = <0x02010000 0x4000>; |
| 170 | interrupts = <0 33 0x04>; | 179 | interrupts = <0 33 0x04>; |
| 180 | clocks = <&clks 114>, <&clks 114>; | ||
| 181 | clock-names = "ipg", "per"; | ||
| 171 | status = "disabled"; | 182 | status = "disabled"; |
| 172 | }; | 183 | }; |
| 173 | 184 | ||
| @@ -177,6 +188,8 @@ | |||
| 177 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 188 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
| 178 | reg = <0x02014000 0x4000>; | 189 | reg = <0x02014000 0x4000>; |
| 179 | interrupts = <0 34 0x04>; | 190 | interrupts = <0 34 0x04>; |
| 191 | clocks = <&clks 115>, <&clks 115>; | ||
| 192 | clock-names = "ipg", "per"; | ||
| 180 | status = "disabled"; | 193 | status = "disabled"; |
| 181 | }; | 194 | }; |
| 182 | 195 | ||
| @@ -186,6 +199,8 @@ | |||
| 186 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; | 199 | compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; |
| 187 | reg = <0x02018000 0x4000>; | 200 | reg = <0x02018000 0x4000>; |
| 188 | interrupts = <0 35 0x04>; | 201 | interrupts = <0 35 0x04>; |
| 202 | clocks = <&clks 116>, <&clks 116>; | ||
| 203 | clock-names = "ipg", "per"; | ||
| 189 | status = "disabled"; | 204 | status = "disabled"; |
| 190 | }; | 205 | }; |
| 191 | 206 | ||
| @@ -193,6 +208,8 @@ | |||
| 193 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; | 208 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; |
| 194 | reg = <0x02020000 0x4000>; | 209 | reg = <0x02020000 0x4000>; |
| 195 | interrupts = <0 26 0x04>; | 210 | interrupts = <0 26 0x04>; |
| 211 | clocks = <&clks 160>, <&clks 161>; | ||
| 212 | clock-names = "ipg", "per"; | ||
| 196 | status = "disabled"; | 213 | status = "disabled"; |
| 197 | }; | 214 | }; |
| 198 | 215 | ||
| @@ -205,6 +222,7 @@ | |||
| 205 | compatible = "fsl,imx6q-ssi","fsl,imx21-ssi"; | 222 | compatible = "fsl,imx6q-ssi","fsl,imx21-ssi"; |
| 206 | reg = <0x02028000 0x4000>; | 223 | reg = <0x02028000 0x4000>; |
| 207 | interrupts = <0 46 0x04>; | 224 | interrupts = <0 46 0x04>; |
| 225 | clocks = <&clks 178>; | ||
| 208 | fsl,fifo-depth = <15>; | 226 | fsl,fifo-depth = <15>; |
| 209 | fsl,ssi-dma-events = <38 37>; | 227 | fsl,ssi-dma-events = <38 37>; |
| 210 | status = "disabled"; | 228 | status = "disabled"; |
| @@ -214,6 +232,7 @@ | |||
| 214 | compatible = "fsl,imx6q-ssi","fsl,imx21-ssi"; | 232 | compatible = "fsl,imx6q-ssi","fsl,imx21-ssi"; |
| 215 | reg = <0x0202c000 0x4000>; | 233 | reg = <0x0202c000 0x4000>; |
| 216 | interrupts = <0 47 0x04>; | 234 | interrupts = <0 47 0x04>; |
| 235 | clocks = <&clks 179>; | ||
| 217 | fsl,fifo-depth = <15>; | 236 | fsl,fifo-depth = <15>; |
| 218 | fsl,ssi-dma-events = <42 41>; | 237 | fsl,ssi-dma-events = <42 41>; |
| 219 | status = "disabled"; | 238 | status = "disabled"; |
| @@ -223,6 +242,7 @@ | |||
| 223 | compatible = "fsl,imx6q-ssi","fsl,imx21-ssi"; | 242 | compatible = "fsl,imx6q-ssi","fsl,imx21-ssi"; |
| 224 | reg = <0x02030000 0x4000>; | 243 | reg = <0x02030000 0x4000>; |
| 225 | interrupts = <0 48 0x04>; | 244 | interrupts = <0 48 0x04>; |
| 245 | clocks = <&clks 180>; | ||
| 226 | fsl,fifo-depth = <15>; | 246 | fsl,fifo-depth = <15>; |
| 227 | fsl,ssi-dma-events = <46 45>; | 247 | fsl,ssi-dma-events = <46 45>; |
| 228 | status = "disabled"; | 248 | status = "disabled"; |
| @@ -362,6 +382,7 @@ | |||
| 362 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; | 382 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; |
| 363 | reg = <0x020bc000 0x4000>; | 383 | reg = <0x020bc000 0x4000>; |
| 364 | interrupts = <0 80 0x04>; | 384 | interrupts = <0 80 0x04>; |
| 385 | clocks = <&clks 0>; | ||
| 365 | status = "disabled"; | 386 | status = "disabled"; |
| 366 | }; | 387 | }; |
| 367 | 388 | ||
| @@ -369,13 +390,15 @@ | |||
| 369 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; | 390 | compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt"; |
| 370 | reg = <0x020c0000 0x4000>; | 391 | reg = <0x020c0000 0x4000>; |
| 371 | interrupts = <0 81 0x04>; | 392 | interrupts = <0 81 0x04>; |
| 393 | clocks = <&clks 0>; | ||
| 372 | status = "disabled"; | 394 | status = "disabled"; |
| 373 | }; | 395 | }; |
| 374 | 396 | ||
| 375 | ccm@020c4000 { | 397 | clks: ccm@020c4000 { |
| 376 | compatible = "fsl,imx6q-ccm"; | 398 | compatible = "fsl,imx6q-ccm"; |
| 377 | reg = <0x020c4000 0x4000>; | 399 | reg = <0x020c4000 0x4000>; |
| 378 | interrupts = <0 87 0x04 0 88 0x04>; | 400 | interrupts = <0 87 0x04 0 88 0x04>; |
| 401 | #clock-cells = <1>; | ||
| 379 | }; | 402 | }; |
| 380 | 403 | ||
| 381 | anatop@020c8000 { | 404 | anatop@020c8000 { |
| @@ -472,12 +495,14 @@ | |||
| 472 | compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; | 495 | compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; |
| 473 | reg = <0x020c9000 0x1000>; | 496 | reg = <0x020c9000 0x1000>; |
| 474 | interrupts = <0 44 0x04>; | 497 | interrupts = <0 44 0x04>; |
| 498 | clocks = <&clks 182>; | ||
| 475 | }; | 499 | }; |
| 476 | 500 | ||
| 477 | usbphy2: usbphy@020ca000 { | 501 | usbphy2: usbphy@020ca000 { |
| 478 | compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; | 502 | compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; |
| 479 | reg = <0x020ca000 0x1000>; | 503 | reg = <0x020ca000 0x1000>; |
| 480 | interrupts = <0 45 0x04>; | 504 | interrupts = <0 45 0x04>; |
| 505 | clocks = <&clks 183>; | ||
| 481 | }; | 506 | }; |
| 482 | 507 | ||
| 483 | snvs@020cc000 { | 508 | snvs@020cc000 { |
| @@ -612,6 +637,9 @@ | |||
| 612 | compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma"; | 637 | compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma"; |
| 613 | reg = <0x020ec000 0x4000>; | 638 | reg = <0x020ec000 0x4000>; |
| 614 | interrupts = <0 2 0x04>; | 639 | interrupts = <0 2 0x04>; |
| 640 | clocks = <&clks 155>, <&clks 155>; | ||
| 641 | clock-names = "ipg", "ahb"; | ||
| 642 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q-to1.bin"; | ||
| 615 | }; | 643 | }; |
| 616 | }; | 644 | }; |
| 617 | 645 | ||
| @@ -635,6 +663,7 @@ | |||
| 635 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 663 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
| 636 | reg = <0x02184000 0x200>; | 664 | reg = <0x02184000 0x200>; |
| 637 | interrupts = <0 43 0x04>; | 665 | interrupts = <0 43 0x04>; |
| 666 | clocks = <&clks 162>; | ||
| 638 | fsl,usbphy = <&usbphy1>; | 667 | fsl,usbphy = <&usbphy1>; |
| 639 | status = "disabled"; | 668 | status = "disabled"; |
| 640 | }; | 669 | }; |
| @@ -643,6 +672,7 @@ | |||
| 643 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 672 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
| 644 | reg = <0x02184200 0x200>; | 673 | reg = <0x02184200 0x200>; |
| 645 | interrupts = <0 40 0x04>; | 674 | interrupts = <0 40 0x04>; |
| 675 | clocks = <&clks 162>; | ||
| 646 | fsl,usbphy = <&usbphy2>; | 676 | fsl,usbphy = <&usbphy2>; |
| 647 | status = "disabled"; | 677 | status = "disabled"; |
| 648 | }; | 678 | }; |
| @@ -651,6 +681,7 @@ | |||
| 651 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 681 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
| 652 | reg = <0x02184400 0x200>; | 682 | reg = <0x02184400 0x200>; |
| 653 | interrupts = <0 41 0x04>; | 683 | interrupts = <0 41 0x04>; |
| 684 | clocks = <&clks 162>; | ||
| 654 | status = "disabled"; | 685 | status = "disabled"; |
| 655 | }; | 686 | }; |
| 656 | 687 | ||
| @@ -658,6 +689,7 @@ | |||
| 658 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; | 689 | compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; |
| 659 | reg = <0x02184600 0x200>; | 690 | reg = <0x02184600 0x200>; |
| 660 | interrupts = <0 42 0x04>; | 691 | interrupts = <0 42 0x04>; |
| 692 | clocks = <&clks 162>; | ||
| 661 | status = "disabled"; | 693 | status = "disabled"; |
| 662 | }; | 694 | }; |
| 663 | 695 | ||
| @@ -665,6 +697,8 @@ | |||
| 665 | compatible = "fsl,imx6q-fec"; | 697 | compatible = "fsl,imx6q-fec"; |
| 666 | reg = <0x02188000 0x4000>; | 698 | reg = <0x02188000 0x4000>; |
| 667 | interrupts = <0 118 0x04 0 119 0x04>; | 699 | interrupts = <0 118 0x04 0 119 0x04>; |
| 700 | clocks = <&clks 117>, <&clks 117>; | ||
| 701 | clock-names = "ipg", "ahb"; | ||
| 668 | status = "disabled"; | 702 | status = "disabled"; |
| 669 | }; | 703 | }; |
| 670 | 704 | ||
| @@ -677,6 +711,8 @@ | |||
| 677 | compatible = "fsl,imx6q-usdhc"; | 711 | compatible = "fsl,imx6q-usdhc"; |
| 678 | reg = <0x02190000 0x4000>; | 712 | reg = <0x02190000 0x4000>; |
| 679 | interrupts = <0 22 0x04>; | 713 | interrupts = <0 22 0x04>; |
| 714 | clocks = <&clks 163>, <&clks 163>, <&clks 163>; | ||
| 715 | clock-names = "ipg", "ahb", "per"; | ||
| 680 | status = "disabled"; | 716 | status = "disabled"; |
| 681 | }; | 717 | }; |
| 682 | 718 | ||
| @@ -684,6 +720,8 @@ | |||
| 684 | compatible = "fsl,imx6q-usdhc"; | 720 | compatible = "fsl,imx6q-usdhc"; |
| 685 | reg = <0x02194000 0x4000>; | 721 | reg = <0x02194000 0x4000>; |
| 686 | interrupts = <0 23 0x04>; | 722 | interrupts = <0 23 0x04>; |
| 723 | clocks = <&clks 164>, <&clks 164>, <&clks 164>; | ||
| 724 | clock-names = "ipg", "ahb", "per"; | ||
| 687 | status = "disabled"; | 725 | status = "disabled"; |
| 688 | }; | 726 | }; |
| 689 | 727 | ||
| @@ -691,6 +729,8 @@ | |||
| 691 | compatible = "fsl,imx6q-usdhc"; | 729 | compatible = "fsl,imx6q-usdhc"; |
| 692 | reg = <0x02198000 0x4000>; | 730 | reg = <0x02198000 0x4000>; |
| 693 | interrupts = <0 24 0x04>; | 731 | interrupts = <0 24 0x04>; |
| 732 | clocks = <&clks 165>, <&clks 165>, <&clks 165>; | ||
| 733 | clock-names = "ipg", "ahb", "per"; | ||
| 694 | status = "disabled"; | 734 | status = "disabled"; |
| 695 | }; | 735 | }; |
| 696 | 736 | ||
| @@ -698,6 +738,8 @@ | |||
| 698 | compatible = "fsl,imx6q-usdhc"; | 738 | compatible = "fsl,imx6q-usdhc"; |
| 699 | reg = <0x0219c000 0x4000>; | 739 | reg = <0x0219c000 0x4000>; |
| 700 | interrupts = <0 25 0x04>; | 740 | interrupts = <0 25 0x04>; |
| 741 | clocks = <&clks 166>, <&clks 166>, <&clks 166>; | ||
| 742 | clock-names = "ipg", "ahb", "per"; | ||
| 701 | status = "disabled"; | 743 | status = "disabled"; |
| 702 | }; | 744 | }; |
| 703 | 745 | ||
| @@ -707,6 +749,7 @@ | |||
| 707 | compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c"; | 749 | compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c"; |
| 708 | reg = <0x021a0000 0x4000>; | 750 | reg = <0x021a0000 0x4000>; |
| 709 | interrupts = <0 36 0x04>; | 751 | interrupts = <0 36 0x04>; |
| 752 | clocks = <&clks 125>; | ||
| 710 | status = "disabled"; | 753 | status = "disabled"; |
| 711 | }; | 754 | }; |
| 712 | 755 | ||
| @@ -716,6 +759,7 @@ | |||
| 716 | compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c"; | 759 | compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c"; |
| 717 | reg = <0x021a4000 0x4000>; | 760 | reg = <0x021a4000 0x4000>; |
| 718 | interrupts = <0 37 0x04>; | 761 | interrupts = <0 37 0x04>; |
| 762 | clocks = <&clks 126>; | ||
| 719 | status = "disabled"; | 763 | status = "disabled"; |
| 720 | }; | 764 | }; |
| 721 | 765 | ||
| @@ -725,6 +769,7 @@ | |||
| 725 | compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c"; | 769 | compatible = "fsl,imx6q-i2c", "fsl,imx1-i2c"; |
| 726 | reg = <0x021a8000 0x4000>; | 770 | reg = <0x021a8000 0x4000>; |
| 727 | interrupts = <0 38 0x04>; | 771 | interrupts = <0 38 0x04>; |
| 772 | clocks = <&clks 127>; | ||
| 728 | status = "disabled"; | 773 | status = "disabled"; |
| 729 | }; | 774 | }; |
| 730 | 775 | ||
| @@ -788,6 +833,8 @@ | |||
| 788 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; | 833 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; |
| 789 | reg = <0x021e8000 0x4000>; | 834 | reg = <0x021e8000 0x4000>; |
| 790 | interrupts = <0 27 0x04>; | 835 | interrupts = <0 27 0x04>; |
| 836 | clocks = <&clks 160>, <&clks 161>; | ||
| 837 | clock-names = "ipg", "per"; | ||
| 791 | status = "disabled"; | 838 | status = "disabled"; |
| 792 | }; | 839 | }; |
| 793 | 840 | ||
| @@ -795,6 +842,8 @@ | |||
| 795 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; | 842 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; |
| 796 | reg = <0x021ec000 0x4000>; | 843 | reg = <0x021ec000 0x4000>; |
| 797 | interrupts = <0 28 0x04>; | 844 | interrupts = <0 28 0x04>; |
| 845 | clocks = <&clks 160>, <&clks 161>; | ||
| 846 | clock-names = "ipg", "per"; | ||
| 798 | status = "disabled"; | 847 | status = "disabled"; |
| 799 | }; | 848 | }; |
| 800 | 849 | ||
| @@ -802,6 +851,8 @@ | |||
| 802 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; | 851 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; |
| 803 | reg = <0x021f0000 0x4000>; | 852 | reg = <0x021f0000 0x4000>; |
| 804 | interrupts = <0 29 0x04>; | 853 | interrupts = <0 29 0x04>; |
| 854 | clocks = <&clks 160>, <&clks 161>; | ||
| 855 | clock-names = "ipg", "per"; | ||
| 805 | status = "disabled"; | 856 | status = "disabled"; |
| 806 | }; | 857 | }; |
| 807 | 858 | ||
| @@ -809,6 +860,8 @@ | |||
| 809 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; | 860 | compatible = "fsl,imx6q-uart", "fsl,imx21-uart"; |
| 810 | reg = <0x021f4000 0x4000>; | 861 | reg = <0x021f4000 0x4000>; |
| 811 | interrupts = <0 30 0x04>; | 862 | interrupts = <0 30 0x04>; |
| 863 | clocks = <&clks 160>, <&clks 161>; | ||
| 864 | clock-names = "ipg", "per"; | ||
| 812 | status = "disabled"; | 865 | status = "disabled"; |
| 813 | }; | 866 | }; |
| 814 | }; | 867 | }; |
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index ea89520b6e22..bbc71f57b92b 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
| @@ -157,6 +157,7 @@ enum mx6q_clks { | |||
| 157 | }; | 157 | }; |
| 158 | 158 | ||
| 159 | static struct clk *clk[clk_max]; | 159 | static struct clk *clk[clk_max]; |
| 160 | static struct clk_onecell_data clk_data; | ||
| 160 | 161 | ||
| 161 | static enum mx6q_clks const clks_init_on[] __initconst = { | 162 | static enum mx6q_clks const clks_init_on[] __initconst = { |
| 162 | mmdc_ch0_axi, rom, | 163 | mmdc_ch0_axi, rom, |
| @@ -392,48 +393,13 @@ int __init mx6q_clocks_init(void) | |||
| 392 | pr_err("i.MX6q clk %d: register failed with %ld\n", | 393 | pr_err("i.MX6q clk %d: register failed with %ld\n", |
| 393 | i, PTR_ERR(clk[i])); | 394 | i, PTR_ERR(clk[i])); |
| 394 | 395 | ||
| 396 | clk_data.clks = clk; | ||
| 397 | clk_data.clk_num = ARRAY_SIZE(clk); | ||
| 398 | of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); | ||
| 399 | |||
| 395 | clk_register_clkdev(clk[gpt_ipg], "ipg", "imx-gpt.0"); | 400 | clk_register_clkdev(clk[gpt_ipg], "ipg", "imx-gpt.0"); |
| 396 | clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); | 401 | clk_register_clkdev(clk[gpt_ipg_per], "per", "imx-gpt.0"); |
| 397 | clk_register_clkdev(clk[twd], NULL, "smp_twd"); | 402 | clk_register_clkdev(clk[twd], NULL, "smp_twd"); |
| 398 | clk_register_clkdev(clk[apbh_dma], NULL, "110000.dma-apbh"); | ||
| 399 | clk_register_clkdev(clk[per1_bch], "per1_bch", "112000.gpmi-nand"); | ||
| 400 | clk_register_clkdev(clk[gpmi_bch_apb], "gpmi_bch_apb", "112000.gpmi-nand"); | ||
| 401 | clk_register_clkdev(clk[gpmi_bch], "gpmi_bch", "112000.gpmi-nand"); | ||
| 402 | clk_register_clkdev(clk[gpmi_apb], "gpmi_apb", "112000.gpmi-nand"); | ||
| 403 | clk_register_clkdev(clk[gpmi_io], "gpmi_io", "112000.gpmi-nand"); | ||
| 404 | clk_register_clkdev(clk[usboh3], NULL, "2184000.usb"); | ||
| 405 | clk_register_clkdev(clk[usboh3], NULL, "2184200.usb"); | ||
| 406 | clk_register_clkdev(clk[usboh3], NULL, "2184400.usb"); | ||
| 407 | clk_register_clkdev(clk[usboh3], NULL, "2184600.usb"); | ||
| 408 | clk_register_clkdev(clk[usbphy1], NULL, "20c9000.usbphy"); | ||
| 409 | clk_register_clkdev(clk[usbphy2], NULL, "20ca000.usbphy"); | ||
| 410 | clk_register_clkdev(clk[uart_serial], "per", "2020000.serial"); | ||
| 411 | clk_register_clkdev(clk[uart_ipg], "ipg", "2020000.serial"); | ||
| 412 | clk_register_clkdev(clk[uart_serial], "per", "21e8000.serial"); | ||
| 413 | clk_register_clkdev(clk[uart_ipg], "ipg", "21e8000.serial"); | ||
| 414 | clk_register_clkdev(clk[uart_serial], "per", "21ec000.serial"); | ||
| 415 | clk_register_clkdev(clk[uart_ipg], "ipg", "21ec000.serial"); | ||
| 416 | clk_register_clkdev(clk[uart_serial], "per", "21f0000.serial"); | ||
| 417 | clk_register_clkdev(clk[uart_ipg], "ipg", "21f0000.serial"); | ||
| 418 | clk_register_clkdev(clk[uart_serial], "per", "21f4000.serial"); | ||
| 419 | clk_register_clkdev(clk[uart_ipg], "ipg", "21f4000.serial"); | ||
| 420 | clk_register_clkdev(clk[enet], NULL, "2188000.ethernet"); | ||
| 421 | clk_register_clkdev(clk[usdhc1], NULL, "2190000.usdhc"); | ||
| 422 | clk_register_clkdev(clk[usdhc2], NULL, "2194000.usdhc"); | ||
| 423 | clk_register_clkdev(clk[usdhc3], NULL, "2198000.usdhc"); | ||
| 424 | clk_register_clkdev(clk[usdhc4], NULL, "219c000.usdhc"); | ||
| 425 | clk_register_clkdev(clk[i2c1], NULL, "21a0000.i2c"); | ||
| 426 | clk_register_clkdev(clk[i2c2], NULL, "21a4000.i2c"); | ||
| 427 | clk_register_clkdev(clk[i2c3], NULL, "21a8000.i2c"); | ||
| 428 | clk_register_clkdev(clk[ecspi1], NULL, "2008000.ecspi"); | ||
| 429 | clk_register_clkdev(clk[ecspi2], NULL, "200c000.ecspi"); | ||
| 430 | clk_register_clkdev(clk[ecspi3], NULL, "2010000.ecspi"); | ||
| 431 | clk_register_clkdev(clk[ecspi4], NULL, "2014000.ecspi"); | ||
| 432 | clk_register_clkdev(clk[ecspi5], NULL, "2018000.ecspi"); | ||
| 433 | clk_register_clkdev(clk[sdma], NULL, "20ec000.sdma"); | ||
| 434 | clk_register_clkdev(clk[dummy], NULL, "20bc000.wdog"); | ||
| 435 | clk_register_clkdev(clk[dummy], NULL, "20c0000.wdog"); | ||
| 436 | clk_register_clkdev(clk[ssi1_ipg], NULL, "2028000.ssi"); | ||
| 437 | clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL); | 403 | clk_register_clkdev(clk[cko1_sel], "cko1_sel", NULL); |
| 438 | clk_register_clkdev(clk[ahb], "ahb", NULL); | 404 | clk_register_clkdev(clk[ahb], "ahb", NULL); |
| 439 | clk_register_clkdev(clk[cko1], "cko1", NULL); | 405 | clk_register_clkdev(clk[cko1], "cko1", NULL); |
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 5ec0608f2a76..0b30aa8799d2 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
| @@ -100,7 +100,6 @@ static void __init imx6q_sabrelite_cko1_setup(void) | |||
| 100 | clk_set_parent(cko1_sel, ahb); | 100 | clk_set_parent(cko1_sel, ahb); |
| 101 | rate = clk_round_rate(cko1, 16000000); | 101 | rate = clk_round_rate(cko1, 16000000); |
| 102 | clk_set_rate(cko1, rate); | 102 | clk_set_rate(cko1, rate); |
| 103 | clk_register_clkdev(cko1, NULL, "0-000a"); | ||
| 104 | put_clk: | 103 | put_clk: |
| 105 | if (!IS_ERR(cko1_sel)) | 104 | if (!IS_ERR(cko1_sel)) |
| 106 | clk_put(cko1_sel); | 105 | clk_put(cko1_sel); |
