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

ARM: dts: Add clocks for dm814x ADPLL

These use the standard clock bindings and now we can make some
of the fixed clocks into real clocks.

Note that the clock output names may become optional as we
probably want to eventually use descriptive names, or use
just dynamically generated names as suggested by Tero.

Acked-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>

+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.