Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/soc/qcom/qcom,smd-rpm.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006 
0007 title: Qualcomm Resource Power Manager (RPM) over SMD
0008 
0009 description: |
0010   This driver is used to interface with the Resource Power Manager (RPM) found
0011   in various Qualcomm platforms. The RPM allows each component in the system
0012   to vote for state of the system resources, such as clocks, regulators and bus
0013   frequencies.
0014 
0015   The SMD information for the RPM edge should be filled out.  See qcom,smd.yaml
0016   for the required edge properties.  All SMD related properties will reside
0017   within the RPM node itself.
0018 
0019   The RPM exposes resources to its subnodes.  The rpm_requests node must be
0020   present and this subnode may contain children that designate regulator
0021   resources.
0022 
0023   Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml
0024   for information on the regulator subnodes that can exist under the
0025   rpm_requests.
0026 
0027 maintainers:
0028   - Andy Gross <agross@kernel.org>
0029   - Bjorn Andersson <bjorn.andersson@linaro.org>
0030 
0031 properties:
0032   compatible:
0033     enum:
0034       - qcom,rpm-apq8084
0035       - qcom,rpm-ipq6018
0036       - qcom,rpm-msm8226
0037       - qcom,rpm-msm8909
0038       - qcom,rpm-msm8916
0039       - qcom,rpm-msm8936
0040       - qcom,rpm-msm8953
0041       - qcom,rpm-msm8974
0042       - qcom,rpm-msm8976
0043       - qcom,rpm-msm8996
0044       - qcom,rpm-msm8998
0045       - qcom,rpm-sdm660
0046       - qcom,rpm-sm6115
0047       - qcom,rpm-sm6125
0048       - qcom,rpm-qcm2290
0049       - qcom,rpm-qcs404
0050 
0051   clock-controller:
0052     $ref: /schemas/clock/qcom,rpmcc.yaml#
0053     unevaluatedProperties: false
0054 
0055   power-controller:
0056     $ref: /schemas/power/qcom,rpmpd.yaml#
0057 
0058   qcom,smd-channels:
0059     $ref: /schemas/types.yaml#/definitions/string-array
0060     description: Channel name used for the RPM communication
0061     items:
0062       - const: rpm_requests
0063 
0064 if:
0065   properties:
0066     compatible:
0067       contains:
0068         enum:
0069           - qcom,rpm-apq8084
0070           - qcom,rpm-msm8916
0071           - qcom,rpm-msm8974
0072           - qcom,rpm-msm8953
0073 then:
0074   required:
0075     - qcom,smd-channels
0076 
0077 required:
0078   - compatible
0079 
0080 additionalProperties: false
0081 
0082 examples:
0083   - |
0084     #include <dt-bindings/interrupt-controller/arm-gic.h>
0085     #include <dt-bindings/interrupt-controller/irq.h>
0086 
0087     smd {
0088         compatible = "qcom,smd";
0089 
0090         rpm {
0091             interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
0092             qcom,ipc = <&apcs 8 0>;
0093             qcom,smd-edge = <15>;
0094 
0095             rpm-requests {
0096                 compatible = "qcom,rpm-msm8916";
0097                 qcom,smd-channels = "rpm_requests";
0098 
0099                 clock-controller {
0100                     compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
0101                     #clock-cells = <1>;
0102                     clocks = <&xo_board>;
0103                     clock-names = "xo";
0104                 };
0105 
0106                 power-controller {
0107                     compatible = "qcom,msm8916-rpmpd";
0108                     #power-domain-cells = <1>;
0109                     operating-points-v2 = <&rpmpd_opp_table>;
0110 
0111                     rpmpd_opp_table: opp-table {
0112                         compatible = "operating-points-v2";
0113 
0114                         opp-1 {
0115                             opp-level = <1>;
0116                         };
0117                         opp-2 {
0118                             opp-level = <2>;
0119                         };
0120                     };
0121                 };
0122             };
0123         };
0124     };