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

Merge tag 'omap-for-v4.6/dt-ti81xx-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

Enable dm814x and dra62x clock driver. This branch has a dependency
to the clk-ti branch from the Linux clk tree for the ADPLL clock driver.
Otherwise things won't keep booting properly when we flip over to use
the clock driver instead of fixed clocks set up by the bootloader.

* tag 'omap-for-v4.6/dt-ti81xx-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: dts: Add clocks for dm814x ADPLL

+238 -31
+212 -31
arch/arm/boot/dts/dm814x-clocks.dtsi
··· 4 4 * published by the Free Software Foundation. 5 5 */ 6 6 7 + &pllss { 8 + /* 9 + * See TRM "2.6.10 Connected outputso DPLLS" and 10 + * "2.6.11 Connected Outputs of DPLLJ". Only clkout is 11 + * connected except for hdmi and usb. 12 + */ 13 + adpll_mpu_ck: adpll@40 { 14 + #clock-cells = <1>; 15 + compatible = "ti,dm814-adpll-s-clock"; 16 + reg = <0x40 0x40>; 17 + clocks = <&devosc_ck &devosc_ck &devosc_ck>; 18 + clock-names = "clkinp", "clkinpulow", "clkinphif"; 19 + clock-output-names = "481c5040.adpll.dcoclkldo", 20 + "481c5040.adpll.clkout", 21 + "481c5040.adpll.clkoutx2", 22 + "481c5040.adpll.clkouthif"; 23 + }; 24 + 25 + adpll_dsp_ck: adpll@80 { 26 + #clock-cells = <1>; 27 + compatible = "ti,dm814-adpll-lj-clock"; 28 + reg = <0x80 0x30>; 29 + clocks = <&devosc_ck &devosc_ck>; 30 + clock-names = "clkinp", "clkinpulow"; 31 + clock-output-names = "481c5080.adpll.dcoclkldo", 32 + "481c5080.adpll.clkout", 33 + "481c5080.adpll.clkoutldo"; 34 + }; 35 + 36 + adpll_sgx_ck: adpll@b0 { 37 + #clock-cells = <1>; 38 + compatible = "ti,dm814-adpll-lj-clock"; 39 + reg = <0xb0 0x30>; 40 + clocks = <&devosc_ck &devosc_ck>; 41 + clock-names = "clkinp", "clkinpulow"; 42 + clock-output-names = "481c50b0.adpll.dcoclkldo", 43 + "481c50b0.adpll.clkout", 44 + "481c50b0.adpll.clkoutldo"; 45 + }; 46 + 47 + adpll_hdvic_ck: adpll@e0 { 48 + #clock-cells = <1>; 49 + compatible = "ti,dm814-adpll-lj-clock"; 50 + reg = <0xe0 0x30>; 51 + clocks = <&devosc_ck &devosc_ck>; 52 + clock-names = "clkinp", "clkinpulow"; 53 + clock-output-names = "481c50e0.adpll.dcoclkldo", 54 + "481c50e0.adpll.clkout", 55 + "481c50e0.adpll.clkoutldo"; 56 + }; 57 + 58 + adpll_l3_ck: adpll@110 { 59 + #clock-cells = <1>; 60 + compatible = "ti,dm814-adpll-lj-clock"; 61 + reg = <0x110 0x30>; 62 + clocks = <&devosc_ck &devosc_ck>; 63 + clock-names = "clkinp", "clkinpulow"; 64 + clock-output-names = "481c5110.adpll.dcoclkldo", 65 + "481c5110.adpll.clkout", 66 + "481c5110.adpll.clkoutldo"; 67 + }; 68 + 69 + adpll_isp_ck: adpll@140 { 70 + #clock-cells = <1>; 71 + compatible = "ti,dm814-adpll-lj-clock"; 72 + reg = <0x140 0x30>; 73 + clocks = <&devosc_ck &devosc_ck>; 74 + clock-names = "clkinp", "clkinpulow"; 75 + clock-output-names = "481c5140.adpll.dcoclkldo", 76 + "481c5140.adpll.clkout", 77 + "481c5140.adpll.clkoutldo"; 78 + }; 79 + 80 + adpll_dss_ck: adpll@170 { 81 + #clock-cells = <1>; 82 + compatible = "ti,dm814-adpll-lj-clock"; 83 + reg = <0x170 0x30>; 84 + clocks = <&devosc_ck &devosc_ck>; 85 + clock-names = "clkinp", "clkinpulow"; 86 + clock-output-names = "481c5170.adpll.dcoclkldo", 87 + "481c5170.adpll.clkout", 88 + "481c5170.adpll.clkoutldo"; 89 + }; 90 + 91 + adpll_video0_ck: adpll@1a0 { 92 + #clock-cells = <1>; 93 + compatible = "ti,dm814-adpll-lj-clock"; 94 + reg = <0x1a0 0x30>; 95 + clocks = <&devosc_ck &devosc_ck>; 96 + clock-names = "clkinp", "clkinpulow"; 97 + clock-output-names = "481c51a0.adpll.dcoclkldo", 98 + "481c51a0.adpll.clkout", 99 + "481c51a0.adpll.clkoutldo"; 100 + }; 101 + 102 + adpll_video1_ck: adpll@1d0 { 103 + #clock-cells = <1>; 104 + compatible = "ti,dm814-adpll-lj-clock"; 105 + reg = <0x1d0 0x30>; 106 + clocks = <&devosc_ck &devosc_ck>; 107 + clock-names = "clkinp", "clkinpulow"; 108 + clock-output-names = "481c51d0.adpll.dcoclkldo", 109 + "481c51d0.adpll.clkout", 110 + "481c51d0.adpll.clkoutldo"; 111 + }; 112 + 113 + adpll_hdmi_ck: adpll@200 { 114 + #clock-cells = <1>; 115 + compatible = "ti,dm814-adpll-lj-clock"; 116 + reg = <0x200 0x30>; 117 + clocks = <&devosc_ck &devosc_ck>; 118 + clock-names = "clkinp", "clkinpulow"; 119 + clock-output-names = "481c5200.adpll.dcoclkldo", 120 + "481c5200.adpll.clkout", 121 + "481c5200.adpll.clkoutldo"; 122 + }; 123 + 124 + adpll_audio_ck: adpll@230 { 125 + #clock-cells = <1>; 126 + compatible = "ti,dm814-adpll-lj-clock"; 127 + reg = <0x230 0x30>; 128 + clocks = <&devosc_ck &devosc_ck>; 129 + clock-names = "clkinp", "clkinpulow"; 130 + clock-output-names = "481c5230.adpll.dcoclkldo", 131 + "481c5230.adpll.clkout", 132 + "481c5230.adpll.clkoutldo"; 133 + }; 134 + 135 + adpll_usb_ck: adpll@260 { 136 + #clock-cells = <1>; 137 + compatible = "ti,dm814-adpll-lj-clock"; 138 + reg = <0x260 0x30>; 139 + clocks = <&devosc_ck &devosc_ck>; 140 + clock-names = "clkinp", "clkinpulow"; 141 + clock-output-names = "481c5260.adpll.dcoclkldo", 142 + "481c5260.adpll.clkout", 143 + "481c5260.adpll.clkoutldo"; 144 + }; 145 + 146 + adpll_ddr_ck: adpll@290 { 147 + #clock-cells = <1>; 148 + compatible = "ti,dm814-adpll-lj-clock"; 149 + reg = <0x290 0x30>; 150 + clocks = <&devosc_ck &devosc_ck>; 151 + clock-names = "clkinp", "clkinpulow"; 152 + clock-output-names = "481c5290.adpll.dcoclkldo", 153 + "481c5290.adpll.clkout", 154 + "481c5290.adpll.clkoutldo"; 155 + }; 156 + }; 157 + 7 158 &pllss_clocks { 8 159 timer1_fck: timer1_fck { 9 160 #clock-cells = <0>; ··· 172 21 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>; 173 22 ti,bit-shift = <6>; 174 23 reg = <0x2e0>; 24 + }; 25 + 26 + /* CPTS_RFT_CLK in RMII_REFCLK_SRC, usually sourced from auiod */ 27 + cpsw_cpts_rft_clk: cpsw_cpts_rft_clk { 28 + #clock-cells = <0>; 29 + compatible = "ti,mux-clock"; 30 + clocks = <&adpll_video0_ck 1 31 + &adpll_video1_ck 1 32 + &adpll_audio_ck 1>; 33 + ti,bit-shift = <1>; 34 + reg = <0x2e8>; 35 + }; 36 + 37 + /* REVISIT: Set up with a proper mux using RMII_REFCLK_SRC */ 38 + cpsw_125mhz_gclk: cpsw_125mhz_gclk { 39 + #clock-cells = <0>; 40 + compatible = "fixed-clock"; 41 + clock-frequency = <125000000>; 175 42 }; 176 43 177 44 sysclk18_ck: sysclk18_ck { ··· 248 79 compatible = "fixed-clock"; 249 80 clock-frequency = <1000000000>; 250 81 }; 251 - 252 - sysclk4_ck: sysclk4_ck { 253 - #clock-cells = <0>; 254 - compatible = "fixed-clock"; 255 - clock-frequency = <222000000>; 256 - }; 257 - 258 - sysclk6_ck: sysclk6_ck { 259 - #clock-cells = <0>; 260 - compatible = "fixed-clock"; 261 - clock-frequency = <100000000>; 262 - }; 263 - 264 - sysclk10_ck: sysclk10_ck { 265 - #clock-cells = <0>; 266 - compatible = "fixed-clock"; 267 - clock-frequency = <48000000>; 268 - }; 269 - 270 - cpsw_125mhz_gclk: cpsw_125mhz_gclk { 271 - #clock-cells = <0>; 272 - compatible = "fixed-clock"; 273 - clock-frequency = <125000000>; 274 - }; 275 - 276 - cpsw_cpts_rft_clk: cpsw_cpts_rft_clk { 277 - #clock-cells = <0>; 278 - compatible = "fixed-clock"; 279 - clock-frequency = <250000000>; 280 - }; 281 - 282 82 }; 283 83 284 84 &prcm_clocks { ··· 274 136 clocks = <&devosc_ck>; 275 137 clock-mult = <128>; 276 138 clock-div = <78125>; 139 + }; 140 + 141 + /* L4_HS 220 MHz*/ 142 + sysclk4_ck: sysclk4_ck { 143 + #clock-cells = <0>; 144 + compatible = "ti,fixed-factor-clock"; 145 + clocks = <&adpll_l3_ck 1>; 146 + ti,clock-mult = <1>; 147 + ti,clock-div = <1>; 148 + }; 149 + 150 + /* L4_FWCFG */ 151 + sysclk5_ck: sysclk5_ck { 152 + #clock-cells = <0>; 153 + compatible = "ti,fixed-factor-clock"; 154 + clocks = <&adpll_l3_ck 1>; 155 + ti,clock-mult = <1>; 156 + ti,clock-div = <2>; 157 + }; 158 + 159 + /* L4_LS 110 MHz */ 160 + sysclk6_ck: sysclk6_ck { 161 + #clock-cells = <0>; 162 + compatible = "ti,fixed-factor-clock"; 163 + clocks = <&adpll_l3_ck 1>; 164 + ti,clock-mult = <1>; 165 + ti,clock-div = <2>; 166 + }; 167 + 168 + sysclk8_ck: sysclk8_ck { 169 + #clock-cells = <0>; 170 + compatible = "ti,fixed-factor-clock"; 171 + clocks = <&adpll_usb_ck 1>; 172 + ti,clock-mult = <1>; 173 + ti,clock-div = <1>; 174 + }; 175 + 176 + sysclk10_ck: sysclk10_ck { 177 + compatible = "ti,divider-clock"; 178 + reg = <0x324>; 179 + ti,max-div = <7>; 180 + #clock-cells = <0>; 181 + clocks = <&adpll_usb_ck 1>; 277 182 }; 278 183 279 184 aud_clkin0_ck: aud_clkin0_ck {
+26
arch/arm/boot/dts/dra62x-clocks.dtsi
··· 6 6 7 7 #include "dm814x-clocks.dtsi" 8 8 9 + /* Compared to dm814x, dra62x does not have hdic, l3 or dss PLLs */ 10 + &adpll_hdvic_ck { 11 + status = "disabled"; 12 + }; 13 + 14 + &adpll_l3_ck { 15 + status = "disabled"; 16 + }; 17 + 18 + &adpll_dss_ck { 19 + status = "disabled"; 20 + }; 21 + 22 + /* Compared to dm814x, dra62x has interconnect clocks on isp PLL */ 23 + &sysclk4_ck { 24 + clocks = <&adpll_isp_ck 1>; 25 + }; 26 + 27 + &sysclk5_ck { 28 + clocks = <&adpll_isp_ck 1>; 29 + }; 30 + 31 + &sysclk6_ck { 32 + clocks = <&adpll_isp_ck 1>; 33 + }; 34 + 9 35 /* 10 36 * Compared to dm814x, dra62x has different shifts and more mux options. 11 37 * Please add the extra options for ysclk_14 and 16 if really needed.