File Index
Files and directories
Sign in
FILE

qcom,smd-rpm.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/soc/qcom/qcom,smd-rpm.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Qualcomm Resource Power Manager (RPM) over SMD/GLINK
  8
  9description: |
 10  This driver is used to interface with the Resource Power Manager (RPM) found
 11  in various Qualcomm platforms. The RPM allows each component in the system
 12  to vote for state of the system resources, such as clocks, regulators and bus
 13  frequencies.
 14
 15  The SMD or GLINK information for the RPM edge should be filled out.  See
 16  qcom,smd.yaml for the required edge properties.  All SMD/GLINK related
 17  properties will reside within the RPM node itself.
 18
 19  The RPM exposes resources to its subnodes.  The rpm_requests node must be
 20  present and this subnode may contain children that designate regulator
 21  resources.
 22
 23  Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml
 24  for information on the regulator subnodes that can exist under the
 25  rpm_requests.
 26
 27maintainers:
 28  - Andy Gross <agross@kernel.org>
 29  - Bjorn Andersson <bjorn.andersson@linaro.org>
 30
 31properties:
 32  compatible:
 33    oneOf:
 34      - items:
 35          - enum:
 36              - qcom,rpm-apq8084
 37              - qcom,rpm-mdm9607
 38              - qcom,rpm-msm8226
 39              - qcom,rpm-msm8610
 40              - qcom,rpm-msm8909
 41              - qcom,rpm-msm8916
 42              - qcom,rpm-msm8917
 43              - qcom,rpm-msm8936
 44              - qcom,rpm-msm8937
 45              - qcom,rpm-msm8952
 46              - qcom,rpm-msm8953
 47              - qcom,rpm-msm8974
 48              - qcom,rpm-msm8976
 49              - qcom,rpm-msm8994
 50          - const: qcom,smd-rpm
 51      - items:
 52          - enum:
 53              - qcom,rpm-ipq6018
 54              - qcom,rpm-ipq9574
 55              - qcom,rpm-msm8996
 56              - qcom,rpm-msm8998
 57              - qcom,rpm-qcm2290
 58              - qcom,rpm-qcs404
 59              - qcom,rpm-sdm660
 60              - qcom,rpm-sm6115
 61              - qcom,rpm-sm6125
 62              - qcom,rpm-sm6375
 63          - const: qcom,glink-smd-rpm
 64
 65  clock-controller:
 66    $ref: /schemas/clock/qcom,rpmcc.yaml#
 67    unevaluatedProperties: false
 68
 69  power-controller:
 70    $ref: /schemas/power/qcom,rpmpd.yaml#
 71
 72  qcom,glink-channels:
 73    $ref: /schemas/types.yaml#/definitions/string-array
 74    description: Channel name used for the RPM communication
 75    items:
 76      - const: rpm_requests
 77
 78  qcom,smd-channels:
 79    $ref: /schemas/types.yaml#/definitions/string-array
 80    description: Channel name used for the RPM communication
 81    items:
 82      - const: rpm_requests
 83
 84patternProperties:
 85  "^regulators(-[01])?$":
 86    $ref: /schemas/regulator/qcom,smd-rpm-regulator.yaml#
 87    unevaluatedProperties: false
 88
 89if:
 90  properties:
 91    compatible:
 92      contains:
 93        const: qcom,smd-rpm
 94then:
 95  properties:
 96    qcom,glink-channels: false
 97  required:
 98    - qcom,smd-channels
 99else:
100  properties:
101    qcom,smd-channels: false
102  required:
103    - qcom,glink-channels
104
105required:
106  - compatible
107
108additionalProperties: false
109
110examples:
111  - |
112    #include <dt-bindings/interrupt-controller/arm-gic.h>
113    #include <dt-bindings/interrupt-controller/irq.h>
114
115    remoteproc {
116        compatible = "qcom,msm8916-rpm-proc", "qcom,rpm-proc";
117
118        smd-edge {
119            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
120            qcom,ipc = <&apcs 8 0>;
121            qcom,smd-edge = <15>;
122
123            rpm-requests {
124                compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
125                qcom,smd-channels = "rpm_requests";
126
127                clock-controller {
128                    compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
129                    #clock-cells = <1>;
130                    clocks = <&xo_board>;
131                    clock-names = "xo";
132                };
133
134                power-controller {
135                    compatible = "qcom,msm8916-rpmpd";
136                    #power-domain-cells = <1>;
137                    operating-points-v2 = <&rpmpd_opp_table>;
138
139                    rpmpd_opp_table: opp-table {
140                        compatible = "operating-points-v2";
141
142                        opp-1 {
143                            opp-level = <1>;
144                        };
145                        opp-2 {
146                            opp-level = <2>;
147                        };
148                    };
149                };
150            };
151        };
152    };
~/ Read-only file preview.