# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/samsung,exynosautov9-clock.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung Exynos Auto v9 SoC clock controller

maintainers:
  - Chanho Park <chanho61.park@samsung.com>
  - Chanwoo Choi <cw00.choi@samsung.com>
  - Krzysztof Kozlowski <krzk@kernel.org>
  - Sylwester Nawrocki <s.nawrocki@samsung.com>
  - Tomasz Figa <tomasz.figa@gmail.com>

description: |
  Exynos Auto v9 clock controller is comprised of several CMU units, generating
  clocks for different domains. Those CMU units are modeled as separate device
  tree nodes, and might depend on each other. Root clocks in that clock tree are
  two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768 Hz).
  The external OSCCLK must be defined as fixed-rate clock in dts.

  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
  dividers; all other clocks of function blocks (other CMUs) are usually
  derived from CMU_TOP.

  Each clock is assigned an identifier and client nodes can use this identifier
  to specify the clock which they consume. All clocks available for usage
  in clock consumer nodes are defined as preprocessor macros in
  'include/dt-bindings/clock/samsung,exynosautov9.h' header.

properties:
  compatible:
    enum:
      - samsung,exynosautov9-cmu-top
      - samsung,exynosautov9-cmu-busmc
      - samsung,exynosautov9-cmu-core
      - samsung,exynosautov9-cmu-dpum
      - samsung,exynosautov9-cmu-fsys0
      - samsung,exynosautov9-cmu-fsys1
      - samsung,exynosautov9-cmu-fsys2
      - samsung,exynosautov9-cmu-peric0
      - samsung,exynosautov9-cmu-peric1
      - samsung,exynosautov9-cmu-peris

  clocks:
    minItems: 1
    maxItems: 5

  clock-names:
    minItems: 1
    maxItems: 5

  "#clock-cells":
    const: 1

  reg:
    maxItems: 1

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-top

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)

        clock-names:
          items:
            - const: oscclk

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-busmc

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_BUSMC bus clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_busmc_bus

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-core

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_CORE bus clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_core_bus

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-dpum

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: DPU Main bus clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: bus

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-fsys0

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_FSYS0 bus clock (from CMU_TOP)
            - description: CMU_FSYS0 pcie clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_fsys0_bus
            - const: dout_clkcmu_fsys0_pcie

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-fsys1

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_FSYS1 bus clock (from CMU_TOP)
            - description: CMU_FSYS1 mmc card clock (from CMU_TOP)
            - description: CMU_FSYS1 usb clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_fsys1_bus
            - const: gout_clkcmu_fsys1_mmc_card
            - const: dout_clkcmu_fsys1_usbdrd

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-fsys2

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_FSYS2 bus clock (from CMU_TOP)
            - description: UFS clock (from CMU_TOP)
            - description: Ethernet clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_fsys2_bus
            - const: dout_fsys2_clkcmu_ufs_embd
            - const: dout_fsys2_clkcmu_ethernet

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-peric0

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_PERIC0 bus clock (from CMU_TOP)
            - description: PERIC0 IP clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_peric0_bus
            - const: dout_clkcmu_peric0_ip

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-peric1

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_PERIC1 bus clock (from CMU_TOP)
            - description: PERIC1 IP clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_peric1_bus
            - const: dout_clkcmu_peric1_ip

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov9-cmu-peris

    then:
      properties:
        clocks:
          items:
            - description: External reference clock (26 MHz)
            - description: CMU_PERIS bus clock (from CMU_TOP)

        clock-names:
          items:
            - const: oscclk
            - const: dout_clkcmu_peris_bus

required:
  - compatible
  - "#clock-cells"
  - clocks
  - clock-names
  - reg

additionalProperties: false

examples:
  # Clock controller node for CMU_FSYS2
  - |
    #include <dt-bindings/clock/samsung,exynosautov9.h>

    cmu_fsys2: clock-controller@17c00000 {
        compatible = "samsung,exynosautov9-cmu-fsys2";
        reg = <0x17c00000 0x8000>;
        #clock-cells = <1>;

        clocks = <&xtcxo>,
                 <&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
                 <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
                 <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
        clock-names = "oscclk",
                      "dout_clkcmu_fsys2_bus",
                      "dout_fsys2_clkcmu_ufs_embd",
                      "dout_fsys2_clkcmu_ethernet";
    };

...
