# 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-ipq9574
      - qcom,rpm-mdm9607
      - qcom,rpm-msm8226
      - qcom,rpm-msm8610
      - qcom,rpm-msm8909
      - qcom,rpm-msm8916
      - qcom,rpm-msm8917
      - qcom,rpm-msm8936
      - qcom,rpm-msm8937
      - qcom,rpm-msm8952
      - qcom,rpm-msm8953
      - qcom,rpm-msm8974
      - qcom,rpm-msm8976
      - qcom,rpm-msm8994
      - qcom,rpm-msm8996
      - qcom,rpm-msm8998
      - qcom,rpm-qcm2290
      - qcom,rpm-qcs404
      - qcom,rpm-sdm660
      - qcom,rpm-sm6115
      - qcom,rpm-sm6125
      - qcom,rpm-sm6375

  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-mdm9607
          - qcom,rpm-msm8226
          - qcom,rpm-msm8610
          - qcom,rpm-msm8909
          - qcom,rpm-msm8916
          - qcom,rpm-msm8917
          - qcom,rpm-msm8936
          - qcom,rpm-msm8937
          - qcom,rpm-msm8952
          - qcom,rpm-msm8953
          - qcom,rpm-msm8974
          - qcom,rpm-msm8976
          - qcom,rpm-msm8994
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>

    remoteproc {
        compatible = "qcom,msm8916-rpm-proc", "qcom,rpm-proc";

        smd-edge {
            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>;
                        };
                    };
                };
            };
        };
    };
