153 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---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/GLINK8 9description: |10 This driver is used to interface with the Resource Power Manager (RPM) found11 in various Qualcomm platforms. The RPM allows each component in the system12 to vote for state of the system resources, such as clocks, regulators and bus13 frequencies.14 15 The SMD or GLINK information for the RPM edge should be filled out. See16 qcom,smd.yaml for the required edge properties. All SMD/GLINK related17 properties will reside within the RPM node itself.18 19 The RPM exposes resources to its subnodes. The rpm_requests node must be20 present and this subnode may contain children that designate regulator21 resources.22 23 Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml24 for information on the regulator subnodes that can exist under the25 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-apq808437 - qcom,rpm-mdm960738 - qcom,rpm-msm822639 - qcom,rpm-msm861040 - qcom,rpm-msm890941 - qcom,rpm-msm891642 - qcom,rpm-msm891743 - qcom,rpm-msm893644 - qcom,rpm-msm893745 - qcom,rpm-msm895246 - qcom,rpm-msm895347 - qcom,rpm-msm897448 - qcom,rpm-msm897649 - qcom,rpm-msm899450 - const: qcom,smd-rpm51 - items:52 - enum:53 - qcom,rpm-ipq601854 - qcom,rpm-ipq957455 - qcom,rpm-msm899656 - qcom,rpm-msm899857 - qcom,rpm-qcm229058 - qcom,rpm-qcs40459 - qcom,rpm-sdm66060 - qcom,rpm-sm611561 - qcom,rpm-sm612562 - qcom,rpm-sm637563 - const: qcom,glink-smd-rpm64 65 clock-controller:66 $ref: /schemas/clock/qcom,rpmcc.yaml#67 unevaluatedProperties: false68 69 power-controller:70 $ref: /schemas/power/qcom,rpmpd.yaml#71 72 qcom,glink-channels:73 $ref: /schemas/types.yaml#/definitions/string-array74 description: Channel name used for the RPM communication75 items:76 - const: rpm_requests77 78 qcom,smd-channels:79 $ref: /schemas/types.yaml#/definitions/string-array80 description: Channel name used for the RPM communication81 items:82 - const: rpm_requests83 84patternProperties:85 "^regulators(-[01])?$":86 $ref: /schemas/regulator/qcom,smd-rpm-regulator.yaml#87 unevaluatedProperties: false88 89if:90 properties:91 compatible:92 contains:93 const: qcom,smd-rpm94then:95 properties:96 qcom,glink-channels: false97 required:98 - qcom,smd-channels99else:100 properties:101 qcom,smd-channels: false102 required:103 - qcom,glink-channels104 105required:106 - compatible107 108additionalProperties: false109 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 };153