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

title: Qualcomm RPM Clock Controller

maintainers:
  - Bjorn Andersson <bjorn.andersson@linaro.org>
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

description: |
  The clock enumerators are defined in <dt-bindings/clock/qcom,rpmcc.h> and
  come in pairs:: FOO_CLK followed by FOO_A_CLK. The latter clock is
  an "active" clock, which means that the consumer only care that the clock is
  available when the apps CPU subsystem is active, i.e. not suspended or in
  deep idle. If it is important that the clock keeps running during system
  suspend, you need to specify the non-active clock, the one not containing
  *_A_* in the enumerator name.

properties:
  compatible:
    items:
      - enum:
          - qcom,rpmcc-apq8060
          - qcom,rpmcc-apq8064
          - qcom,rpmcc-ipq806x
          - qcom,rpmcc-mdm9607
          - qcom,rpmcc-msm8226
          - qcom,rpmcc-msm8660
          - qcom,rpmcc-msm8909
          - qcom,rpmcc-msm8916
          - qcom,rpmcc-msm8917
          - qcom,rpmcc-msm8936
          - qcom,rpmcc-msm8953
          - qcom,rpmcc-msm8974
          - qcom,rpmcc-msm8976
          - qcom,rpmcc-msm8992
          - qcom,rpmcc-msm8994
          - qcom,rpmcc-msm8996
          - qcom,rpmcc-msm8998
          - qcom,rpmcc-qcm2290
          - qcom,rpmcc-qcs404
          - qcom,rpmcc-sdm660
          - qcom,rpmcc-sm6115
          - qcom,rpmcc-sm6125
          - qcom,rpmcc-sm6375
      - const: qcom,rpmcc

  '#clock-cells':
    const: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    maxItems: 2

required:
  - compatible
  - '#clock-cells'

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,rpmcc-apq8060
              - qcom,rpmcc-ipq806x
              - qcom,rpmcc-msm8660

    then:
      properties:
        clocks:
          items:
            - description: pxo clock

        clock-names:
          items:
            - const: pxo

  - if:
      properties:
        compatible:
          contains:
            const: qcom,rpmcc-apq8064
    then:
      properties:
        clocks:
          items:
            - description: pxo clock
            - description: cxo clock

        clock-names:
          items:
            - const: pxo
            - const: cxo

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,rpmcc-mdm9607
              - qcom,rpmcc-msm8226
              - qcom,rpmcc-msm8916
              - qcom,rpmcc-msm8917
              - qcom,rpmcc-msm8936
              - qcom,rpmcc-msm8953
              - qcom,rpmcc-msm8974
              - qcom,rpmcc-msm8976
              - qcom,rpmcc-msm8992
              - qcom,rpmcc-msm8994
              - qcom,rpmcc-msm8996
              - qcom,rpmcc-msm8998
              - qcom,rpmcc-qcm2290
              - qcom,rpmcc-qcs404
              - qcom,rpmcc-sdm660
              - qcom,rpmcc-sm6115
              - qcom,rpmcc-sm6125

    then:
      properties:
        clocks:
          items:
            - description: xo clock

        clock-names:
          items:
            - const: xo

additionalProperties: false

examples:
  - |
    rpm {
        rpm-requests {
            compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
            qcom,smd-channels = "rpm_requests";

            clock-controller {
                compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
                #clock-cells = <1>;
            };
        };
    };

  - |
    rpm {
        clock-controller {
            compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
            #clock-cells = <1>;
            clocks = <&pxo_board>;
            clock-names = "pxo";
        };
    };
