Back to home page

OSCL-LXR

 
 

    


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     };