# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/soc/qcom/qcom,smd-rpm.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Qualcomm Resource Power Manager (RPM) over SMD/GLINK

description: |
  This driver is used to interface with the Resource Power Manager (RPM) found
  in various Qualcomm platforms. The RPM allows each component in the system
  to vote for state of the system resources, such as clocks, regulators and bus
  frequencies.

  The SMD or GLINK information for the RPM edge should be filled out.  See
  qcom,smd.yaml for the required edge properties.  All SMD/GLINK related
  properties will reside within the RPM node itself.

  The RPM exposes resources to its subnodes.  The rpm_requests node must be
  present and this subnode may contain children that designate regulator
  resources.

  Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml
  for information on the regulator subnodes that can exist under the
  rpm_requests.

maintainers:
  - Andy Gross <agross@kernel.org>
  - Bjorn Andersson <bjorn.andersson@linaro.org>

properties:
  compatible:
    enum:
      - qcom,rpm-apq8084
      - qcom,rpm-ipq6018
      - qcom,rpm-msm8226
      - qcom,rpm-msm8909
      - qcom,rpm-msm8916
      - qcom,rpm-msm8936
      - qcom,rpm-msm8953
      - qcom,rpm-msm8974
      - qcom,rpm-msm8976
      - qcom,rpm-msm8996
      - qcom,rpm-msm8998
      - qcom,rpm-sdm660
      - qcom,rpm-sm6115
      - qcom,rpm-sm6125
      - qcom,rpm-sm6375
      - qcom,rpm-qcm2290
      - qcom,rpm-qcs404

  clock-controller:
    $ref: /schemas/clock/qcom,rpmcc.yaml#
    unevaluatedProperties: false

  power-controller:
    $ref: /schemas/power/qcom,rpmpd.yaml#

  qcom,glink-channels:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Channel name used for the RPM communication
    items:
      - const: rpm_requests

  qcom,smd-channels:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Channel name used for the RPM communication
    items:
      - const: rpm_requests

patternProperties:
  "^regulators(-[01])?$":
    $ref: /schemas/regulator/qcom,smd-rpm-regulator.yaml#
    unevaluatedProperties: false

if:
  properties:
    compatible:
      contains:
        enum:
          - qcom,rpm-apq8084
          - qcom,rpm-msm8916
          - qcom,rpm-msm8936
          - qcom,rpm-msm8974
          - qcom,rpm-msm8976
          - qcom,rpm-msm8953
then:
  properties:
    qcom,glink-channels: false
  required:
    - qcom,smd-channels
else:
  properties:
    qcom,smd-channels: false
  required:
    - qcom,glink-channels

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    smd {
        compatible = "qcom,smd";

        rpm {
            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
            qcom,ipc = <&apcs 8 0>;
            qcom,smd-edge = <15>;

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

                clock-controller {
                    compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
                    #clock-cells = <1>;
                    clocks = <&xo_board>;
                    clock-names = "xo";
                };

                power-controller {
                    compatible = "qcom,msm8916-rpmpd";
                    #power-domain-cells = <1>;
                    operating-points-v2 = <&rpmpd_opp_table>;

                    rpmpd_opp_table: opp-table {
                        compatible = "operating-points-v2";

                        opp-1 {
                            opp-level = <1>;
                        };
                        opp-2 {
                            opp-level = <2>;
                        };
                    };
                };
            };
        };
    };
