0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/clock/samsung,exynos5260-clock.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Samsung Exynos5260 SoC clock controller
0008
0009 maintainers:
0010 - Chanwoo Choi <cw00.choi@samsung.com>
0011 - Krzysztof Kozlowski <krzk@kernel.org>
0012 - Sylwester Nawrocki <s.nawrocki@samsung.com>
0013 - Tomasz Figa <tomasz.figa@gmail.com>
0014
0015 description: |
0016 Expected external clocks, defined in DTS as fixed-rate clocks with a matching
0017 name::
0018 - "fin_pll" - PLL input clock from XXTI
0019 - "xrtcxti" - input clock from XRTCXTI
0020 - "ioclk_pcm_extclk" - pcm external operation clock
0021 - "ioclk_spdif_extclk" - spdif external operation clock
0022 - "ioclk_i2s_cdclk" - i2s0 codec clock
0023
0024 Phy clocks::
0025 There are several clocks which are generated by specific PHYs. These clocks
0026 are fed into the clock controller and then routed to the hardware blocks.
0027 These clocks are defined as fixed clocks in the driver with following names::
0028 - "phyclk_dptx_phy_ch3_txd_clk" - dp phy clock for channel 3
0029 - "phyclk_dptx_phy_ch2_txd_clk" - dp phy clock for channel 2
0030 - "phyclk_dptx_phy_ch1_txd_clk" - dp phy clock for channel 1
0031 - "phyclk_dptx_phy_ch0_txd_clk" - dp phy clock for channel 0
0032 - "phyclk_hdmi_phy_tmds_clko" - hdmi phy tmds clock
0033 - "phyclk_hdmi_phy_pixel_clko" - hdmi phy pixel clock
0034 - "phyclk_hdmi_link_o_tmds_clkhi" - hdmi phy for hdmi link
0035 - "phyclk_dptx_phy_o_ref_clk_24m" - dp phy reference clock
0036 - "phyclk_dptx_phy_clk_div2"
0037 - "phyclk_mipi_dphy_4l_m_rxclkesc0"
0038 - "phyclk_usbhost20_phy_phyclock" - usb 2.0 phy clock
0039 - "phyclk_usbhost20_phy_freeclk"
0040 - "phyclk_usbhost20_phy_clk48mohci"
0041 - "phyclk_usbdrd30_udrd30_pipe_pclk"
0042 - "phyclk_usbdrd30_udrd30_phyclock" - usb 3.0 phy clock
0043
0044 All available clocks are defined as preprocessor macros in
0045 include/dt-bindings/clock/exynos5260-clk.h header.
0046
0047 properties:
0048 compatible:
0049 enum:
0050 - samsung,exynos5260-clock-top
0051 - samsung,exynos5260-clock-peri
0052 - samsung,exynos5260-clock-egl
0053 - samsung,exynos5260-clock-kfc
0054 - samsung,exynos5260-clock-g2d
0055 - samsung,exynos5260-clock-mif
0056 - samsung,exynos5260-clock-mfc
0057 - samsung,exynos5260-clock-g3d
0058 - samsung,exynos5260-clock-fsys
0059 - samsung,exynos5260-clock-aud
0060 - samsung,exynos5260-clock-isp
0061 - samsung,exynos5260-clock-gscl
0062 - samsung,exynos5260-clock-disp
0063
0064 clocks:
0065 minItems: 1
0066 maxItems: 19
0067
0068 clock-names:
0069 minItems: 1
0070 maxItems: 19
0071
0072 "#clock-cells":
0073 const: 1
0074
0075 reg:
0076 maxItems: 1
0077
0078 required:
0079 - compatible
0080 - "#clock-cells"
0081 - reg
0082
0083 allOf:
0084 - if:
0085 properties:
0086 compatible:
0087 contains:
0088 const: samsung,exynos5260-clock-top
0089 then:
0090 properties:
0091 clocks:
0092 minItems: 4
0093 maxItems: 4
0094 clock-names:
0095 items:
0096 - const: fin_pll
0097 - const: dout_mem_pll
0098 - const: dout_bus_pll
0099 - const: dout_media_pll
0100 required:
0101 - clock-names
0102 - clocks
0103
0104 - if:
0105 properties:
0106 compatible:
0107 contains:
0108 const: samsung,exynos5260-clock-peri
0109 then:
0110 properties:
0111 clocks:
0112 minItems: 13
0113 maxItems: 13
0114 clock-names:
0115 items:
0116 - const: fin_pll
0117 - const: ioclk_pcm_extclk
0118 - const: ioclk_i2s_cdclk
0119 - const: ioclk_spdif_extclk
0120 - const: phyclk_hdmi_phy_ref_cko
0121 - const: dout_aclk_peri_66
0122 - const: dout_sclk_peri_uart0
0123 - const: dout_sclk_peri_uart1
0124 - const: dout_sclk_peri_uart2
0125 - const: dout_sclk_peri_spi0_b
0126 - const: dout_sclk_peri_spi1_b
0127 - const: dout_sclk_peri_spi2_b
0128 - const: dout_aclk_peri_aud
0129 required:
0130 - clock-names
0131 - clocks
0132
0133 - if:
0134 properties:
0135 compatible:
0136 contains:
0137 const: samsung,exynos5260-clock-egl
0138 then:
0139 properties:
0140 clocks:
0141 minItems: 2
0142 maxItems: 2
0143 clock-names:
0144 items:
0145 - const: fin_pll
0146 - const: dout_bus_pll
0147 required:
0148 - clock-names
0149 - clocks
0150
0151 - if:
0152 properties:
0153 compatible:
0154 contains:
0155 const: samsung,exynos5260-clock-kfc
0156 then:
0157 properties:
0158 clocks:
0159 minItems: 2
0160 maxItems: 2
0161 clock-names:
0162 items:
0163 - const: fin_pll
0164 - const: dout_media_pll
0165 required:
0166 - clock-names
0167 - clocks
0168
0169 - if:
0170 properties:
0171 compatible:
0172 contains:
0173 const: samsung,exynos5260-clock-g2d
0174 then:
0175 properties:
0176 clocks:
0177 minItems: 2
0178 maxItems: 2
0179 clock-names:
0180 items:
0181 - const: fin_pll
0182 - const: dout_aclk_g2d_333
0183 required:
0184 - clock-names
0185 - clocks
0186
0187 - if:
0188 properties:
0189 compatible:
0190 contains:
0191 const: samsung,exynos5260-clock-mif
0192 then:
0193 properties:
0194 clocks:
0195 minItems: 1
0196 maxItems: 1
0197 clock-names:
0198 items:
0199 - const: fin_pll
0200 required:
0201 - clock-names
0202 - clocks
0203
0204 - if:
0205 properties:
0206 compatible:
0207 contains:
0208 const: samsung,exynos5260-clock-mfc
0209 then:
0210 properties:
0211 clocks:
0212 minItems: 2
0213 maxItems: 2
0214 clock-names:
0215 items:
0216 - const: fin_pll
0217 - const: dout_aclk_mfc_333
0218 required:
0219 - clock-names
0220 - clocks
0221
0222 - if:
0223 properties:
0224 compatible:
0225 contains:
0226 const: samsung,exynos5260-clock-g3d
0227 then:
0228 properties:
0229 clocks:
0230 minItems: 1
0231 maxItems: 1
0232 clock-names:
0233 items:
0234 - const: fin_pll
0235 required:
0236 - clock-names
0237 - clocks
0238
0239 - if:
0240 properties:
0241 compatible:
0242 contains:
0243 const: samsung,exynos5260-clock-fsys
0244 then:
0245 properties:
0246 clocks:
0247 minItems: 7
0248 maxItems: 7
0249 clock-names:
0250 items:
0251 - const: fin_pll
0252 - const: phyclk_usbhost20_phy_phyclock
0253 - const: phyclk_usbhost20_phy_freeclk
0254 - const: phyclk_usbhost20_phy_clk48mohci
0255 - const: phyclk_usbdrd30_udrd30_pipe_pclk
0256 - const: phyclk_usbdrd30_udrd30_phyclock
0257 - const: dout_aclk_fsys_200
0258 required:
0259 - clock-names
0260 - clocks
0261
0262 - if:
0263 properties:
0264 compatible:
0265 contains:
0266 const: samsung,exynos5260-clock-aud
0267 then:
0268 properties:
0269 clocks:
0270 minItems: 4
0271 maxItems: 4
0272 clock-names:
0273 items:
0274 - const: fin_pll
0275 - const: fout_aud_pll
0276 - const: ioclk_i2s_cdclk
0277 - const: ioclk_pcm_extclk
0278 required:
0279 - clock-names
0280 - clocks
0281
0282 - if:
0283 properties:
0284 compatible:
0285 contains:
0286 const: samsung,exynos5260-clock-isp
0287 then:
0288 properties:
0289 clocks:
0290 minItems: 4
0291 maxItems: 4
0292 clock-names:
0293 items:
0294 - const: fin_pll
0295 - const: dout_aclk_isp1_266
0296 - const: dout_aclk_isp1_400
0297 - const: mout_aclk_isp1_266
0298
0299 required:
0300 - clock-names
0301 - clocks
0302
0303 - if:
0304 properties:
0305 compatible:
0306 contains:
0307 const: samsung,exynos5260-clock-gscl
0308 then:
0309 properties:
0310 clocks:
0311 minItems: 3
0312 maxItems: 3
0313 clock-names:
0314 items:
0315 - const: fin_pll
0316 - const: dout_aclk_gscl_400
0317 - const: dout_aclk_gscl_333
0318 required:
0319 - clock-names
0320 - clocks
0321
0322 - if:
0323 properties:
0324 compatible:
0325 contains:
0326 const: samsung,exynos5260-clock-disp
0327 then:
0328 properties:
0329 clocks:
0330 minItems: 19
0331 maxItems: 19
0332 clock-names:
0333 items:
0334 - const: fin_pll
0335 - const: phyclk_dptx_phy_ch3_txd_clk
0336 - const: phyclk_dptx_phy_ch2_txd_clk
0337 - const: phyclk_dptx_phy_ch1_txd_clk
0338 - const: phyclk_dptx_phy_ch0_txd_clk
0339 - const: phyclk_hdmi_phy_tmds_clko
0340 - const: phyclk_hdmi_phy_ref_clko
0341 - const: phyclk_hdmi_phy_pixel_clko
0342 - const: phyclk_hdmi_link_o_tmds_clkhi
0343 - const: phyclk_mipi_dphy_4l_m_txbyte_clkhs
0344 - const: phyclk_dptx_phy_o_ref_clk_24m
0345 - const: phyclk_dptx_phy_clk_div2
0346 - const: phyclk_mipi_dphy_4l_m_rxclkesc0
0347 - const: phyclk_hdmi_phy_ref_cko
0348 - const: ioclk_spdif_extclk
0349 - const: dout_aclk_peri_aud
0350 - const: dout_aclk_disp_222
0351 - const: dout_sclk_disp_pixel
0352 - const: dout_aclk_disp_333
0353 required:
0354 - clock-names
0355 - clocks
0356
0357 additionalProperties: false
0358
0359 examples:
0360 - |
0361 #include <dt-bindings/clock/exynos5260-clk.h>
0362
0363 fin_pll: clock {
0364 compatible = "fixed-clock";
0365 clock-output-names = "fin_pll";
0366 #clock-cells = <0>;
0367 clock-frequency = <24000000>;
0368 };
0369
0370 clock-controller@10010000 {
0371 compatible = "samsung,exynos5260-clock-top";
0372 reg = <0x10010000 0x10000>;
0373 #clock-cells = <1>;
0374 clocks = <&fin_pll>,
0375 <&clock_mif MIF_DOUT_MEM_PLL>,
0376 <&clock_mif MIF_DOUT_BUS_PLL>,
0377 <&clock_mif MIF_DOUT_MEDIA_PLL>;
0378 clock-names = "fin_pll",
0379 "dout_mem_pll",
0380 "dout_bus_pll",
0381 "dout_media_pll";
0382 };