| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/clock/samsung,exynos7-clock.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Samsung Exynos7 SoC clock controller |
| |
| maintainers: |
| - Chanwoo Choi <cw00.choi@samsung.com> |
| - Krzysztof Kozlowski <krzk@kernel.org> |
| - Sylwester Nawrocki <s.nawrocki@samsung.com> |
| - Tomasz Figa <tomasz.figa@gmail.com> |
| |
| description: | |
| Expected external clocks, defined in DTS as fixed-rate clocks with a matching |
| name:: |
| - "fin_pll" - PLL input clock from XXTI |
| |
| All available clocks are defined as preprocessor macros in |
| include/dt-bindings/clock/exynos7-clk.h header. |
| |
| properties: |
| compatible: |
| enum: |
| - samsung,exynos7-clock-topc |
| - samsung,exynos7-clock-top0 |
| - samsung,exynos7-clock-top1 |
| - samsung,exynos7-clock-ccore |
| - samsung,exynos7-clock-peric0 |
| - samsung,exynos7-clock-peric1 |
| - samsung,exynos7-clock-peris |
| - samsung,exynos7-clock-fsys0 |
| - samsung,exynos7-clock-fsys1 |
| - samsung,exynos7-clock-mscl |
| - samsung,exynos7-clock-aud |
| |
| clocks: |
| minItems: 1 |
| maxItems: 13 |
| |
| clock-names: |
| minItems: 1 |
| maxItems: 13 |
| |
| "#clock-cells": |
| const: 1 |
| |
| reg: |
| maxItems: 1 |
| |
| required: |
| - compatible |
| - "#clock-cells" |
| - reg |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-top0 |
| then: |
| properties: |
| clocks: |
| minItems: 6 |
| maxItems: 6 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_sclk_bus0_pll |
| - const: dout_sclk_bus1_pll |
| - const: dout_sclk_cc_pll |
| - const: dout_sclk_mfc_pll |
| - const: dout_sclk_aud_pll |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-top1 |
| then: |
| properties: |
| clocks: |
| minItems: 5 |
| maxItems: 5 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_sclk_bus0_pll |
| - const: dout_sclk_bus1_pll |
| - const: dout_sclk_cc_pll |
| - const: dout_sclk_mfc_pll |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-ccore |
| then: |
| properties: |
| clocks: |
| minItems: 2 |
| maxItems: 2 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_aclk_ccore_133 |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-peric0 |
| then: |
| properties: |
| clocks: |
| minItems: 3 |
| maxItems: 3 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_aclk_peric0_66 |
| - const: sclk_uart0 |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-peric1 |
| then: |
| properties: |
| clocks: |
| minItems: 13 |
| maxItems: 13 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_aclk_peric1_66 |
| - const: sclk_uart1 |
| - const: sclk_uart2 |
| - const: sclk_uart3 |
| - const: sclk_spi0 |
| - const: sclk_spi1 |
| - const: sclk_spi2 |
| - const: sclk_spi3 |
| - const: sclk_spi4 |
| - const: sclk_i2s1 |
| - const: sclk_pcm1 |
| - const: sclk_spdif |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-peris |
| then: |
| properties: |
| clocks: |
| minItems: 2 |
| maxItems: 2 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_aclk_peris_66 |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-fsys0 |
| then: |
| properties: |
| clocks: |
| minItems: 3 |
| maxItems: 3 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_aclk_fsys0_200 |
| - const: dout_sclk_mmc2 |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-fsys1 |
| then: |
| properties: |
| clocks: |
| minItems: 7 |
| maxItems: 7 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: dout_aclk_fsys1_200 |
| - const: dout_sclk_mmc0 |
| - const: dout_sclk_mmc1 |
| - const: dout_sclk_ufsunipro20 |
| - const: dout_sclk_phy_fsys1 |
| - const: dout_sclk_phy_fsys1_26m |
| required: |
| - clock-names |
| - clocks |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: samsung,exynos7-clock-aud |
| then: |
| properties: |
| clocks: |
| minItems: 2 |
| maxItems: 2 |
| clock-names: |
| items: |
| - const: fin_pll |
| - const: fout_aud_pll |
| required: |
| - clock-names |
| - clocks |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/exynos7-clk.h> |
| |
| fin_pll: clock { |
| compatible = "fixed-clock"; |
| clock-output-names = "fin_pll"; |
| #clock-cells = <0>; |
| clock-frequency = <24000000>; |
| }; |
| |
| clock-controller@105e0000 { |
| compatible = "samsung,exynos7-clock-top1"; |
| reg = <0x105e0000 0xb000>; |
| #clock-cells = <1>; |
| clocks = <&fin_pll>, |
| <&clock_topc DOUT_SCLK_BUS0_PLL>, |
| <&clock_topc DOUT_SCLK_BUS1_PLL>, |
| <&clock_topc DOUT_SCLK_CC_PLL>, |
| <&clock_topc DOUT_SCLK_MFC_PLL>; |
| clock-names = "fin_pll", |
| "dout_sclk_bus0_pll", |
| "dout_sclk_bus1_pll", |
| "dout_sclk_cc_pll", |
| "dout_sclk_mfc_pll"; |
| }; |