15d6298f2SSam Protsenko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25d6298f2SSam Protsenko%YAML 1.2
35d6298f2SSam Protsenko---
45d6298f2SSam Protsenko$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml#
55d6298f2SSam Protsenko$schema: http://devicetree.org/meta-schemas/core.yaml#
65d6298f2SSam Protsenko
75d6298f2SSam Protsenkotitle: Samsung Exynos850 SoC clock controller
85d6298f2SSam Protsenko
95d6298f2SSam Protsenkomaintainers:
105d6298f2SSam Protsenko  - Sam Protsenko <semen.protsenko@linaro.org>
115d6298f2SSam Protsenko  - Chanwoo Choi <cw00.choi@samsung.com>
125d6298f2SSam Protsenko  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
135d6298f2SSam Protsenko  - Sylwester Nawrocki <s.nawrocki@samsung.com>
145d6298f2SSam Protsenko  - Tomasz Figa <tomasz.figa@gmail.com>
155d6298f2SSam Protsenko
165d6298f2SSam Protsenkodescription: |
175d6298f2SSam Protsenko  Exynos850 clock controller is comprised of several CMU units, generating
185d6298f2SSam Protsenko  clocks for different domains. Those CMU units are modeled as separate device
195d6298f2SSam Protsenko  tree nodes, and might depend on each other. Root clocks in that clock tree are
205d6298f2SSam Protsenko  two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external
215d6298f2SSam Protsenko  clocks must be defined as fixed-rate clocks in dts.
225d6298f2SSam Protsenko
235d6298f2SSam Protsenko  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
245d6298f2SSam Protsenko  dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP.
255d6298f2SSam Protsenko
265d6298f2SSam Protsenko  Each clock is assigned an identifier and client nodes can use this identifier
275d6298f2SSam Protsenko  to specify the clock which they consume. All clocks available for usage
285d6298f2SSam Protsenko  in clock consumer nodes are defined as preprocessor macros in
295d6298f2SSam Protsenko  'dt-bindings/clock/exynos850.h' header.
305d6298f2SSam Protsenko
315d6298f2SSam Protsenkoproperties:
325d6298f2SSam Protsenko  compatible:
335d6298f2SSam Protsenko    enum:
345d6298f2SSam Protsenko      - samsung,exynos850-cmu-top
35*16e0c247SSam Protsenko      - samsung,exynos850-cmu-apm
365d6298f2SSam Protsenko      - samsung,exynos850-cmu-core
375d6298f2SSam Protsenko      - samsung,exynos850-cmu-dpu
385d6298f2SSam Protsenko      - samsung,exynos850-cmu-hsi
395d6298f2SSam Protsenko      - samsung,exynos850-cmu-peri
405d6298f2SSam Protsenko
415d6298f2SSam Protsenko  clocks:
425d6298f2SSam Protsenko    minItems: 1
435d6298f2SSam Protsenko    maxItems: 5
445d6298f2SSam Protsenko
455d6298f2SSam Protsenko  clock-names:
465d6298f2SSam Protsenko    minItems: 1
475d6298f2SSam Protsenko    maxItems: 5
485d6298f2SSam Protsenko
495d6298f2SSam Protsenko  "#clock-cells":
505d6298f2SSam Protsenko    const: 1
515d6298f2SSam Protsenko
525d6298f2SSam Protsenko  reg:
535d6298f2SSam Protsenko    maxItems: 1
545d6298f2SSam Protsenko
555d6298f2SSam ProtsenkoallOf:
565d6298f2SSam Protsenko  - if:
575d6298f2SSam Protsenko      properties:
585d6298f2SSam Protsenko        compatible:
595d6298f2SSam Protsenko          contains:
605d6298f2SSam Protsenko            const: samsung,exynos850-cmu-top
615d6298f2SSam Protsenko
625d6298f2SSam Protsenko    then:
635d6298f2SSam Protsenko      properties:
645d6298f2SSam Protsenko        clocks:
655d6298f2SSam Protsenko          items:
665d6298f2SSam Protsenko            - description: External reference clock (26 MHz)
675d6298f2SSam Protsenko
685d6298f2SSam Protsenko        clock-names:
695d6298f2SSam Protsenko          items:
705d6298f2SSam Protsenko            - const: oscclk
715d6298f2SSam Protsenko
725d6298f2SSam Protsenko  - if:
735d6298f2SSam Protsenko      properties:
745d6298f2SSam Protsenko        compatible:
755d6298f2SSam Protsenko          contains:
76*16e0c247SSam Protsenko            const: samsung,exynos850-cmu-apm
77*16e0c247SSam Protsenko
78*16e0c247SSam Protsenko    then:
79*16e0c247SSam Protsenko      properties:
80*16e0c247SSam Protsenko        clocks:
81*16e0c247SSam Protsenko          items:
82*16e0c247SSam Protsenko            - description: External reference clock (26 MHz)
83*16e0c247SSam Protsenko            - description: CMU_APM bus clock (from CMU_TOP)
84*16e0c247SSam Protsenko
85*16e0c247SSam Protsenko        clock-names:
86*16e0c247SSam Protsenko          items:
87*16e0c247SSam Protsenko            - const: oscclk
88*16e0c247SSam Protsenko            - const: dout_clkcmu_apm_bus
89*16e0c247SSam Protsenko
90*16e0c247SSam Protsenko  - if:
91*16e0c247SSam Protsenko      properties:
92*16e0c247SSam Protsenko        compatible:
93*16e0c247SSam Protsenko          contains:
945d6298f2SSam Protsenko            const: samsung,exynos850-cmu-core
955d6298f2SSam Protsenko
965d6298f2SSam Protsenko    then:
975d6298f2SSam Protsenko      properties:
985d6298f2SSam Protsenko        clocks:
995d6298f2SSam Protsenko          items:
1005d6298f2SSam Protsenko            - description: External reference clock (26 MHz)
1015d6298f2SSam Protsenko            - description: CMU_CORE bus clock (from CMU_TOP)
1025d6298f2SSam Protsenko            - description: CCI clock (from CMU_TOP)
1035d6298f2SSam Protsenko            - description: eMMC clock (from CMU_TOP)
1045d6298f2SSam Protsenko            - description: SSS clock (from CMU_TOP)
1055d6298f2SSam Protsenko
1065d6298f2SSam Protsenko        clock-names:
1075d6298f2SSam Protsenko          items:
1085d6298f2SSam Protsenko            - const: oscclk
1095d6298f2SSam Protsenko            - const: dout_core_bus
1105d6298f2SSam Protsenko            - const: dout_core_cci
1115d6298f2SSam Protsenko            - const: dout_core_mmc_embd
1125d6298f2SSam Protsenko            - const: dout_core_sss
1135d6298f2SSam Protsenko
1145d6298f2SSam Protsenko  - if:
1155d6298f2SSam Protsenko      properties:
1165d6298f2SSam Protsenko        compatible:
1175d6298f2SSam Protsenko          contains:
1185d6298f2SSam Protsenko            const: samsung,exynos850-cmu-dpu
1195d6298f2SSam Protsenko
1205d6298f2SSam Protsenko    then:
1215d6298f2SSam Protsenko      properties:
1225d6298f2SSam Protsenko        clocks:
1235d6298f2SSam Protsenko          items:
1245d6298f2SSam Protsenko            - description: External reference clock (26 MHz)
1255d6298f2SSam Protsenko            - description: DPU clock (from CMU_TOP)
1265d6298f2SSam Protsenko
1275d6298f2SSam Protsenko        clock-names:
1285d6298f2SSam Protsenko          items:
1295d6298f2SSam Protsenko            - const: oscclk
1305d6298f2SSam Protsenko            - const: dout_dpu
1315d6298f2SSam Protsenko
1325d6298f2SSam Protsenko  - if:
1335d6298f2SSam Protsenko      properties:
1345d6298f2SSam Protsenko        compatible:
1355d6298f2SSam Protsenko          contains:
1365d6298f2SSam Protsenko            const: samsung,exynos850-cmu-hsi
1375d6298f2SSam Protsenko
1385d6298f2SSam Protsenko    then:
1395d6298f2SSam Protsenko      properties:
1405d6298f2SSam Protsenko        clocks:
1415d6298f2SSam Protsenko          items:
1425d6298f2SSam Protsenko            - description: External reference clock (26 MHz)
1435d6298f2SSam Protsenko            - description: External RTC clock (32768 Hz)
1445d6298f2SSam Protsenko            - description: CMU_HSI bus clock (from CMU_TOP)
1455d6298f2SSam Protsenko            - description: SD card clock (from CMU_TOP)
1465d6298f2SSam Protsenko            - description: "USB 2.0 DRD clock (from CMU_TOP)"
1475d6298f2SSam Protsenko
1485d6298f2SSam Protsenko        clock-names:
1495d6298f2SSam Protsenko          items:
1505d6298f2SSam Protsenko            - const: oscclk
1515d6298f2SSam Protsenko            - const: rtcclk
1525d6298f2SSam Protsenko            - const: dout_hsi_bus
1535d6298f2SSam Protsenko            - const: dout_hsi_mmc_card
1545d6298f2SSam Protsenko            - const: dout_hsi_usb20drd
1555d6298f2SSam Protsenko
1565d6298f2SSam Protsenko  - if:
1575d6298f2SSam Protsenko      properties:
1585d6298f2SSam Protsenko        compatible:
1595d6298f2SSam Protsenko          contains:
1605d6298f2SSam Protsenko            const: samsung,exynos850-cmu-peri
1615d6298f2SSam Protsenko
1625d6298f2SSam Protsenko    then:
1635d6298f2SSam Protsenko      properties:
1645d6298f2SSam Protsenko        clocks:
1655d6298f2SSam Protsenko          items:
1665d6298f2SSam Protsenko            - description: External reference clock (26 MHz)
1675d6298f2SSam Protsenko            - description: CMU_PERI bus clock (from CMU_TOP)
1685d6298f2SSam Protsenko            - description: UART clock (from CMU_TOP)
1695d6298f2SSam Protsenko            - description: Parent clock for HSI2C and SPI (from CMU_TOP)
1705d6298f2SSam Protsenko
1715d6298f2SSam Protsenko        clock-names:
1725d6298f2SSam Protsenko          items:
1735d6298f2SSam Protsenko            - const: oscclk
1745d6298f2SSam Protsenko            - const: dout_peri_bus
1755d6298f2SSam Protsenko            - const: dout_peri_uart
1765d6298f2SSam Protsenko            - const: dout_peri_ip
1775d6298f2SSam Protsenko
1785d6298f2SSam Protsenkorequired:
1795d6298f2SSam Protsenko  - compatible
1805d6298f2SSam Protsenko  - "#clock-cells"
1815d6298f2SSam Protsenko  - clocks
1825d6298f2SSam Protsenko  - clock-names
1835d6298f2SSam Protsenko  - reg
1845d6298f2SSam Protsenko
1855d6298f2SSam ProtsenkoadditionalProperties: false
1865d6298f2SSam Protsenko
1875d6298f2SSam Protsenkoexamples:
1885d6298f2SSam Protsenko  # Clock controller node for CMU_PERI
1895d6298f2SSam Protsenko  - |
1905d6298f2SSam Protsenko    #include <dt-bindings/clock/exynos850.h>
1915d6298f2SSam Protsenko
1925d6298f2SSam Protsenko    cmu_peri: clock-controller@10030000 {
1935d6298f2SSam Protsenko        compatible = "samsung,exynos850-cmu-peri";
1945d6298f2SSam Protsenko        reg = <0x10030000 0x8000>;
1955d6298f2SSam Protsenko        #clock-cells = <1>;
1965d6298f2SSam Protsenko
1975d6298f2SSam Protsenko        clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>,
1985d6298f2SSam Protsenko                 <&cmu_top CLK_DOUT_PERI_UART>,
1995d6298f2SSam Protsenko                 <&cmu_top CLK_DOUT_PERI_IP>;
2005d6298f2SSam Protsenko        clock-names = "oscclk", "dout_peri_bus",
2015d6298f2SSam Protsenko                      "dout_peri_uart", "dout_peri_ip";
2025d6298f2SSam Protsenko    };
2035d6298f2SSam Protsenko
2045d6298f2SSam Protsenko...
205