162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/clock/samsung,exynos5260-clock.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Samsung Exynos5260 SoC clock controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Chanwoo Choi <cw00.choi@samsung.com> 1162306a36Sopenharmony_ci - Krzysztof Kozlowski <krzk@kernel.org> 1262306a36Sopenharmony_ci - Sylwester Nawrocki <s.nawrocki@samsung.com> 1362306a36Sopenharmony_ci - Tomasz Figa <tomasz.figa@gmail.com> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cidescription: | 1662306a36Sopenharmony_ci Expected external clocks, defined in DTS as fixed-rate clocks with a matching 1762306a36Sopenharmony_ci name:: 1862306a36Sopenharmony_ci - "fin_pll" - PLL input clock from XXTI 1962306a36Sopenharmony_ci - "xrtcxti" - input clock from XRTCXTI 2062306a36Sopenharmony_ci - "ioclk_pcm_extclk" - pcm external operation clock 2162306a36Sopenharmony_ci - "ioclk_spdif_extclk" - spdif external operation clock 2262306a36Sopenharmony_ci - "ioclk_i2s_cdclk" - i2s0 codec clock 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci Phy clocks:: 2562306a36Sopenharmony_ci There are several clocks which are generated by specific PHYs. These clocks 2662306a36Sopenharmony_ci are fed into the clock controller and then routed to the hardware blocks. 2762306a36Sopenharmony_ci These clocks are defined as fixed clocks in the driver with following names:: 2862306a36Sopenharmony_ci - "phyclk_dptx_phy_ch3_txd_clk" - dp phy clock for channel 3 2962306a36Sopenharmony_ci - "phyclk_dptx_phy_ch2_txd_clk" - dp phy clock for channel 2 3062306a36Sopenharmony_ci - "phyclk_dptx_phy_ch1_txd_clk" - dp phy clock for channel 1 3162306a36Sopenharmony_ci - "phyclk_dptx_phy_ch0_txd_clk" - dp phy clock for channel 0 3262306a36Sopenharmony_ci - "phyclk_hdmi_phy_tmds_clko" - hdmi phy tmds clock 3362306a36Sopenharmony_ci - "phyclk_hdmi_phy_pixel_clko" - hdmi phy pixel clock 3462306a36Sopenharmony_ci - "phyclk_hdmi_link_o_tmds_clkhi" - hdmi phy for hdmi link 3562306a36Sopenharmony_ci - "phyclk_dptx_phy_o_ref_clk_24m" - dp phy reference clock 3662306a36Sopenharmony_ci - "phyclk_dptx_phy_clk_div2" 3762306a36Sopenharmony_ci - "phyclk_mipi_dphy_4l_m_rxclkesc0" 3862306a36Sopenharmony_ci - "phyclk_usbhost20_phy_phyclock" - usb 2.0 phy clock 3962306a36Sopenharmony_ci - "phyclk_usbhost20_phy_freeclk" 4062306a36Sopenharmony_ci - "phyclk_usbhost20_phy_clk48mohci" 4162306a36Sopenharmony_ci - "phyclk_usbdrd30_udrd30_pipe_pclk" 4262306a36Sopenharmony_ci - "phyclk_usbdrd30_udrd30_phyclock" - usb 3.0 phy clock 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci All available clocks are defined as preprocessor macros in 4562306a36Sopenharmony_ci include/dt-bindings/clock/exynos5260-clk.h header. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciproperties: 4862306a36Sopenharmony_ci compatible: 4962306a36Sopenharmony_ci enum: 5062306a36Sopenharmony_ci - samsung,exynos5260-clock-top 5162306a36Sopenharmony_ci - samsung,exynos5260-clock-peri 5262306a36Sopenharmony_ci - samsung,exynos5260-clock-egl 5362306a36Sopenharmony_ci - samsung,exynos5260-clock-kfc 5462306a36Sopenharmony_ci - samsung,exynos5260-clock-g2d 5562306a36Sopenharmony_ci - samsung,exynos5260-clock-mif 5662306a36Sopenharmony_ci - samsung,exynos5260-clock-mfc 5762306a36Sopenharmony_ci - samsung,exynos5260-clock-g3d 5862306a36Sopenharmony_ci - samsung,exynos5260-clock-fsys 5962306a36Sopenharmony_ci - samsung,exynos5260-clock-aud 6062306a36Sopenharmony_ci - samsung,exynos5260-clock-isp 6162306a36Sopenharmony_ci - samsung,exynos5260-clock-gscl 6262306a36Sopenharmony_ci - samsung,exynos5260-clock-disp 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci clocks: 6562306a36Sopenharmony_ci minItems: 1 6662306a36Sopenharmony_ci maxItems: 19 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci clock-names: 6962306a36Sopenharmony_ci minItems: 1 7062306a36Sopenharmony_ci maxItems: 19 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci "#clock-cells": 7362306a36Sopenharmony_ci const: 1 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci reg: 7662306a36Sopenharmony_ci maxItems: 1 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_cirequired: 7962306a36Sopenharmony_ci - compatible 8062306a36Sopenharmony_ci - "#clock-cells" 8162306a36Sopenharmony_ci - reg 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciallOf: 8462306a36Sopenharmony_ci - if: 8562306a36Sopenharmony_ci properties: 8662306a36Sopenharmony_ci compatible: 8762306a36Sopenharmony_ci contains: 8862306a36Sopenharmony_ci const: samsung,exynos5260-clock-top 8962306a36Sopenharmony_ci then: 9062306a36Sopenharmony_ci properties: 9162306a36Sopenharmony_ci clocks: 9262306a36Sopenharmony_ci minItems: 4 9362306a36Sopenharmony_ci maxItems: 4 9462306a36Sopenharmony_ci clock-names: 9562306a36Sopenharmony_ci items: 9662306a36Sopenharmony_ci - const: fin_pll 9762306a36Sopenharmony_ci - const: dout_mem_pll 9862306a36Sopenharmony_ci - const: dout_bus_pll 9962306a36Sopenharmony_ci - const: dout_media_pll 10062306a36Sopenharmony_ci required: 10162306a36Sopenharmony_ci - clock-names 10262306a36Sopenharmony_ci - clocks 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci - if: 10562306a36Sopenharmony_ci properties: 10662306a36Sopenharmony_ci compatible: 10762306a36Sopenharmony_ci contains: 10862306a36Sopenharmony_ci const: samsung,exynos5260-clock-peri 10962306a36Sopenharmony_ci then: 11062306a36Sopenharmony_ci properties: 11162306a36Sopenharmony_ci clocks: 11262306a36Sopenharmony_ci minItems: 13 11362306a36Sopenharmony_ci maxItems: 13 11462306a36Sopenharmony_ci clock-names: 11562306a36Sopenharmony_ci items: 11662306a36Sopenharmony_ci - const: fin_pll 11762306a36Sopenharmony_ci - const: ioclk_pcm_extclk 11862306a36Sopenharmony_ci - const: ioclk_i2s_cdclk 11962306a36Sopenharmony_ci - const: ioclk_spdif_extclk 12062306a36Sopenharmony_ci - const: phyclk_hdmi_phy_ref_cko 12162306a36Sopenharmony_ci - const: dout_aclk_peri_66 12262306a36Sopenharmony_ci - const: dout_sclk_peri_uart0 12362306a36Sopenharmony_ci - const: dout_sclk_peri_uart1 12462306a36Sopenharmony_ci - const: dout_sclk_peri_uart2 12562306a36Sopenharmony_ci - const: dout_sclk_peri_spi0_b 12662306a36Sopenharmony_ci - const: dout_sclk_peri_spi1_b 12762306a36Sopenharmony_ci - const: dout_sclk_peri_spi2_b 12862306a36Sopenharmony_ci - const: dout_aclk_peri_aud 12962306a36Sopenharmony_ci required: 13062306a36Sopenharmony_ci - clock-names 13162306a36Sopenharmony_ci - clocks 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci - if: 13462306a36Sopenharmony_ci properties: 13562306a36Sopenharmony_ci compatible: 13662306a36Sopenharmony_ci contains: 13762306a36Sopenharmony_ci const: samsung,exynos5260-clock-egl 13862306a36Sopenharmony_ci then: 13962306a36Sopenharmony_ci properties: 14062306a36Sopenharmony_ci clocks: 14162306a36Sopenharmony_ci minItems: 2 14262306a36Sopenharmony_ci maxItems: 2 14362306a36Sopenharmony_ci clock-names: 14462306a36Sopenharmony_ci items: 14562306a36Sopenharmony_ci - const: fin_pll 14662306a36Sopenharmony_ci - const: dout_bus_pll 14762306a36Sopenharmony_ci required: 14862306a36Sopenharmony_ci - clock-names 14962306a36Sopenharmony_ci - clocks 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci - if: 15262306a36Sopenharmony_ci properties: 15362306a36Sopenharmony_ci compatible: 15462306a36Sopenharmony_ci contains: 15562306a36Sopenharmony_ci const: samsung,exynos5260-clock-kfc 15662306a36Sopenharmony_ci then: 15762306a36Sopenharmony_ci properties: 15862306a36Sopenharmony_ci clocks: 15962306a36Sopenharmony_ci minItems: 2 16062306a36Sopenharmony_ci maxItems: 2 16162306a36Sopenharmony_ci clock-names: 16262306a36Sopenharmony_ci items: 16362306a36Sopenharmony_ci - const: fin_pll 16462306a36Sopenharmony_ci - const: dout_media_pll 16562306a36Sopenharmony_ci required: 16662306a36Sopenharmony_ci - clock-names 16762306a36Sopenharmony_ci - clocks 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci - if: 17062306a36Sopenharmony_ci properties: 17162306a36Sopenharmony_ci compatible: 17262306a36Sopenharmony_ci contains: 17362306a36Sopenharmony_ci const: samsung,exynos5260-clock-g2d 17462306a36Sopenharmony_ci then: 17562306a36Sopenharmony_ci properties: 17662306a36Sopenharmony_ci clocks: 17762306a36Sopenharmony_ci minItems: 2 17862306a36Sopenharmony_ci maxItems: 2 17962306a36Sopenharmony_ci clock-names: 18062306a36Sopenharmony_ci items: 18162306a36Sopenharmony_ci - const: fin_pll 18262306a36Sopenharmony_ci - const: dout_aclk_g2d_333 18362306a36Sopenharmony_ci required: 18462306a36Sopenharmony_ci - clock-names 18562306a36Sopenharmony_ci - clocks 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci - if: 18862306a36Sopenharmony_ci properties: 18962306a36Sopenharmony_ci compatible: 19062306a36Sopenharmony_ci contains: 19162306a36Sopenharmony_ci const: samsung,exynos5260-clock-mif 19262306a36Sopenharmony_ci then: 19362306a36Sopenharmony_ci properties: 19462306a36Sopenharmony_ci clocks: 19562306a36Sopenharmony_ci minItems: 1 19662306a36Sopenharmony_ci maxItems: 1 19762306a36Sopenharmony_ci clock-names: 19862306a36Sopenharmony_ci items: 19962306a36Sopenharmony_ci - const: fin_pll 20062306a36Sopenharmony_ci required: 20162306a36Sopenharmony_ci - clock-names 20262306a36Sopenharmony_ci - clocks 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci - if: 20562306a36Sopenharmony_ci properties: 20662306a36Sopenharmony_ci compatible: 20762306a36Sopenharmony_ci contains: 20862306a36Sopenharmony_ci const: samsung,exynos5260-clock-mfc 20962306a36Sopenharmony_ci then: 21062306a36Sopenharmony_ci properties: 21162306a36Sopenharmony_ci clocks: 21262306a36Sopenharmony_ci minItems: 2 21362306a36Sopenharmony_ci maxItems: 2 21462306a36Sopenharmony_ci clock-names: 21562306a36Sopenharmony_ci items: 21662306a36Sopenharmony_ci - const: fin_pll 21762306a36Sopenharmony_ci - const: dout_aclk_mfc_333 21862306a36Sopenharmony_ci required: 21962306a36Sopenharmony_ci - clock-names 22062306a36Sopenharmony_ci - clocks 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ci - if: 22362306a36Sopenharmony_ci properties: 22462306a36Sopenharmony_ci compatible: 22562306a36Sopenharmony_ci contains: 22662306a36Sopenharmony_ci const: samsung,exynos5260-clock-g3d 22762306a36Sopenharmony_ci then: 22862306a36Sopenharmony_ci properties: 22962306a36Sopenharmony_ci clocks: 23062306a36Sopenharmony_ci minItems: 1 23162306a36Sopenharmony_ci maxItems: 1 23262306a36Sopenharmony_ci clock-names: 23362306a36Sopenharmony_ci items: 23462306a36Sopenharmony_ci - const: fin_pll 23562306a36Sopenharmony_ci required: 23662306a36Sopenharmony_ci - clock-names 23762306a36Sopenharmony_ci - clocks 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ci - if: 24062306a36Sopenharmony_ci properties: 24162306a36Sopenharmony_ci compatible: 24262306a36Sopenharmony_ci contains: 24362306a36Sopenharmony_ci const: samsung,exynos5260-clock-fsys 24462306a36Sopenharmony_ci then: 24562306a36Sopenharmony_ci properties: 24662306a36Sopenharmony_ci clocks: 24762306a36Sopenharmony_ci minItems: 7 24862306a36Sopenharmony_ci maxItems: 7 24962306a36Sopenharmony_ci clock-names: 25062306a36Sopenharmony_ci items: 25162306a36Sopenharmony_ci - const: fin_pll 25262306a36Sopenharmony_ci - const: phyclk_usbhost20_phy_phyclock 25362306a36Sopenharmony_ci - const: phyclk_usbhost20_phy_freeclk 25462306a36Sopenharmony_ci - const: phyclk_usbhost20_phy_clk48mohci 25562306a36Sopenharmony_ci - const: phyclk_usbdrd30_udrd30_pipe_pclk 25662306a36Sopenharmony_ci - const: phyclk_usbdrd30_udrd30_phyclock 25762306a36Sopenharmony_ci - const: dout_aclk_fsys_200 25862306a36Sopenharmony_ci required: 25962306a36Sopenharmony_ci - clock-names 26062306a36Sopenharmony_ci - clocks 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci - if: 26362306a36Sopenharmony_ci properties: 26462306a36Sopenharmony_ci compatible: 26562306a36Sopenharmony_ci contains: 26662306a36Sopenharmony_ci const: samsung,exynos5260-clock-aud 26762306a36Sopenharmony_ci then: 26862306a36Sopenharmony_ci properties: 26962306a36Sopenharmony_ci clocks: 27062306a36Sopenharmony_ci minItems: 4 27162306a36Sopenharmony_ci maxItems: 4 27262306a36Sopenharmony_ci clock-names: 27362306a36Sopenharmony_ci items: 27462306a36Sopenharmony_ci - const: fin_pll 27562306a36Sopenharmony_ci - const: fout_aud_pll 27662306a36Sopenharmony_ci - const: ioclk_i2s_cdclk 27762306a36Sopenharmony_ci - const: ioclk_pcm_extclk 27862306a36Sopenharmony_ci required: 27962306a36Sopenharmony_ci - clock-names 28062306a36Sopenharmony_ci - clocks 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci - if: 28362306a36Sopenharmony_ci properties: 28462306a36Sopenharmony_ci compatible: 28562306a36Sopenharmony_ci contains: 28662306a36Sopenharmony_ci const: samsung,exynos5260-clock-isp 28762306a36Sopenharmony_ci then: 28862306a36Sopenharmony_ci properties: 28962306a36Sopenharmony_ci clocks: 29062306a36Sopenharmony_ci minItems: 4 29162306a36Sopenharmony_ci maxItems: 4 29262306a36Sopenharmony_ci clock-names: 29362306a36Sopenharmony_ci items: 29462306a36Sopenharmony_ci - const: fin_pll 29562306a36Sopenharmony_ci - const: dout_aclk_isp1_266 29662306a36Sopenharmony_ci - const: dout_aclk_isp1_400 29762306a36Sopenharmony_ci - const: mout_aclk_isp1_266 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci required: 30062306a36Sopenharmony_ci - clock-names 30162306a36Sopenharmony_ci - clocks 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci - if: 30462306a36Sopenharmony_ci properties: 30562306a36Sopenharmony_ci compatible: 30662306a36Sopenharmony_ci contains: 30762306a36Sopenharmony_ci const: samsung,exynos5260-clock-gscl 30862306a36Sopenharmony_ci then: 30962306a36Sopenharmony_ci properties: 31062306a36Sopenharmony_ci clocks: 31162306a36Sopenharmony_ci minItems: 3 31262306a36Sopenharmony_ci maxItems: 3 31362306a36Sopenharmony_ci clock-names: 31462306a36Sopenharmony_ci items: 31562306a36Sopenharmony_ci - const: fin_pll 31662306a36Sopenharmony_ci - const: dout_aclk_gscl_400 31762306a36Sopenharmony_ci - const: dout_aclk_gscl_333 31862306a36Sopenharmony_ci required: 31962306a36Sopenharmony_ci - clock-names 32062306a36Sopenharmony_ci - clocks 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci - if: 32362306a36Sopenharmony_ci properties: 32462306a36Sopenharmony_ci compatible: 32562306a36Sopenharmony_ci contains: 32662306a36Sopenharmony_ci const: samsung,exynos5260-clock-disp 32762306a36Sopenharmony_ci then: 32862306a36Sopenharmony_ci properties: 32962306a36Sopenharmony_ci clocks: 33062306a36Sopenharmony_ci minItems: 19 33162306a36Sopenharmony_ci maxItems: 19 33262306a36Sopenharmony_ci clock-names: 33362306a36Sopenharmony_ci items: 33462306a36Sopenharmony_ci - const: fin_pll 33562306a36Sopenharmony_ci - const: phyclk_dptx_phy_ch3_txd_clk 33662306a36Sopenharmony_ci - const: phyclk_dptx_phy_ch2_txd_clk 33762306a36Sopenharmony_ci - const: phyclk_dptx_phy_ch1_txd_clk 33862306a36Sopenharmony_ci - const: phyclk_dptx_phy_ch0_txd_clk 33962306a36Sopenharmony_ci - const: phyclk_hdmi_phy_tmds_clko 34062306a36Sopenharmony_ci - const: phyclk_hdmi_phy_ref_clko 34162306a36Sopenharmony_ci - const: phyclk_hdmi_phy_pixel_clko 34262306a36Sopenharmony_ci - const: phyclk_hdmi_link_o_tmds_clkhi 34362306a36Sopenharmony_ci - const: phyclk_mipi_dphy_4l_m_txbyte_clkhs 34462306a36Sopenharmony_ci - const: phyclk_dptx_phy_o_ref_clk_24m 34562306a36Sopenharmony_ci - const: phyclk_dptx_phy_clk_div2 34662306a36Sopenharmony_ci - const: phyclk_mipi_dphy_4l_m_rxclkesc0 34762306a36Sopenharmony_ci - const: phyclk_hdmi_phy_ref_cko 34862306a36Sopenharmony_ci - const: ioclk_spdif_extclk 34962306a36Sopenharmony_ci - const: dout_aclk_peri_aud 35062306a36Sopenharmony_ci - const: dout_aclk_disp_222 35162306a36Sopenharmony_ci - const: dout_sclk_disp_pixel 35262306a36Sopenharmony_ci - const: dout_aclk_disp_333 35362306a36Sopenharmony_ci required: 35462306a36Sopenharmony_ci - clock-names 35562306a36Sopenharmony_ci - clocks 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_ciadditionalProperties: false 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ciexamples: 36062306a36Sopenharmony_ci - | 36162306a36Sopenharmony_ci #include <dt-bindings/clock/exynos5260-clk.h> 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci fin_pll: clock { 36462306a36Sopenharmony_ci compatible = "fixed-clock"; 36562306a36Sopenharmony_ci clock-output-names = "fin_pll"; 36662306a36Sopenharmony_ci #clock-cells = <0>; 36762306a36Sopenharmony_ci clock-frequency = <24000000>; 36862306a36Sopenharmony_ci }; 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ci clock-controller@10010000 { 37162306a36Sopenharmony_ci compatible = "samsung,exynos5260-clock-top"; 37262306a36Sopenharmony_ci reg = <0x10010000 0x10000>; 37362306a36Sopenharmony_ci #clock-cells = <1>; 37462306a36Sopenharmony_ci clocks = <&fin_pll>, 37562306a36Sopenharmony_ci <&clock_mif MIF_DOUT_MEM_PLL>, 37662306a36Sopenharmony_ci <&clock_mif MIF_DOUT_BUS_PLL>, 37762306a36Sopenharmony_ci <&clock_mif MIF_DOUT_MEDIA_PLL>; 37862306a36Sopenharmony_ci clock-names = "fin_pll", 37962306a36Sopenharmony_ci "dout_mem_pll", 38062306a36Sopenharmony_ci "dout_bus_pll", 38162306a36Sopenharmony_ci "dout_media_pll"; 38262306a36Sopenharmony_ci }; 383