1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*cb7aa33aSEmmanuel Vadot%YAML 1.2 3*cb7aa33aSEmmanuel Vadot--- 4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/qcom/qcom,rpm.yaml# 5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*cb7aa33aSEmmanuel Vadot 7*cb7aa33aSEmmanuel Vadottitle: Qualcomm Resource Power Manager (RPM) 8*cb7aa33aSEmmanuel Vadot 9*cb7aa33aSEmmanuel Vadotdescription: 10*cb7aa33aSEmmanuel Vadot This driver is used to interface with the Resource Power Manager (RPM) found 11*cb7aa33aSEmmanuel Vadot in various Qualcomm platforms. The RPM allows each component in the system 12*cb7aa33aSEmmanuel Vadot to vote for state of the system resources, such as clocks, regulators and bus 13*cb7aa33aSEmmanuel Vadot frequencies. 14*cb7aa33aSEmmanuel Vadot 15*cb7aa33aSEmmanuel Vadotmaintainers: 16*cb7aa33aSEmmanuel Vadot - Bjorn Andersson <andersson@kernel.org> 17*cb7aa33aSEmmanuel Vadot 18*cb7aa33aSEmmanuel Vadotproperties: 19*cb7aa33aSEmmanuel Vadot compatible: 20*cb7aa33aSEmmanuel Vadot enum: 21*cb7aa33aSEmmanuel Vadot - qcom,rpm-apq8064 22*cb7aa33aSEmmanuel Vadot - qcom,rpm-msm8660 23*cb7aa33aSEmmanuel Vadot - qcom,rpm-msm8960 24*cb7aa33aSEmmanuel Vadot - qcom,rpm-ipq8064 25*cb7aa33aSEmmanuel Vadot - qcom,rpm-mdm9615 26*cb7aa33aSEmmanuel Vadot 27*cb7aa33aSEmmanuel Vadot reg: 28*cb7aa33aSEmmanuel Vadot maxItems: 1 29*cb7aa33aSEmmanuel Vadot 30*cb7aa33aSEmmanuel Vadot interrupts: 31*cb7aa33aSEmmanuel Vadot maxItems: 3 32*cb7aa33aSEmmanuel Vadot 33*cb7aa33aSEmmanuel Vadot interrupt-names: 34*cb7aa33aSEmmanuel Vadot items: 35*cb7aa33aSEmmanuel Vadot - const: ack 36*cb7aa33aSEmmanuel Vadot - const: err 37*cb7aa33aSEmmanuel Vadot - const: wakeup 38*cb7aa33aSEmmanuel Vadot 39*cb7aa33aSEmmanuel Vadot qcom,ipc: 40*cb7aa33aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 41*cb7aa33aSEmmanuel Vadot items: 42*cb7aa33aSEmmanuel Vadot - items: 43*cb7aa33aSEmmanuel Vadot - description: phandle to a syscon node representing the APCS registers 44*cb7aa33aSEmmanuel Vadot - description: u32 representing offset to the register within the syscon 45*cb7aa33aSEmmanuel Vadot - description: u32 representing the ipc bit within the register 46*cb7aa33aSEmmanuel Vadot description: 47*cb7aa33aSEmmanuel Vadot Three entries specifying the outgoing ipc bit used for signaling the RPM. 48*cb7aa33aSEmmanuel Vadot 49*cb7aa33aSEmmanuel VadotpatternProperties: 50*cb7aa33aSEmmanuel Vadot "^regulators(-[01])?$": 51*cb7aa33aSEmmanuel Vadot type: object 52*cb7aa33aSEmmanuel Vadot $ref: /schemas/regulator/qcom,rpm-regulator.yaml# 53*cb7aa33aSEmmanuel Vadot unevaluatedProperties: false 54*cb7aa33aSEmmanuel Vadot 55*cb7aa33aSEmmanuel Vadotrequired: 56*cb7aa33aSEmmanuel Vadot - compatible 57*cb7aa33aSEmmanuel Vadot - reg 58*cb7aa33aSEmmanuel Vadot - interrupts 59*cb7aa33aSEmmanuel Vadot - interrupt-names 60*cb7aa33aSEmmanuel Vadot - qcom,ipc 61*cb7aa33aSEmmanuel Vadot 62*cb7aa33aSEmmanuel VadotadditionalProperties: false 63*cb7aa33aSEmmanuel Vadot 64*cb7aa33aSEmmanuel Vadotexamples: 65*cb7aa33aSEmmanuel Vadot - | 66*cb7aa33aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 67*cb7aa33aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 68*cb7aa33aSEmmanuel Vadot #include <dt-bindings/mfd/qcom-rpm.h> 69*cb7aa33aSEmmanuel Vadot 70*cb7aa33aSEmmanuel Vadot rpm@108000 { 71*cb7aa33aSEmmanuel Vadot compatible = "qcom,rpm-msm8960"; 72*cb7aa33aSEmmanuel Vadot reg = <0x108000 0x1000>; 73*cb7aa33aSEmmanuel Vadot qcom,ipc = <&apcs 0x8 2>; 74*cb7aa33aSEmmanuel Vadot 75*cb7aa33aSEmmanuel Vadot interrupts = <GIC_SPI 19 IRQ_TYPE_NONE>, <GIC_SPI 21 IRQ_TYPE_NONE>, <GIC_SPI 22 IRQ_TYPE_NONE>; 76*cb7aa33aSEmmanuel Vadot interrupt-names = "ack", "err", "wakeup"; 77*cb7aa33aSEmmanuel Vadot 78*cb7aa33aSEmmanuel Vadot regulators { 79*cb7aa33aSEmmanuel Vadot compatible = "qcom,rpm-pm8921-regulators"; 80*cb7aa33aSEmmanuel Vadot vdd_l1_l2_l12_l18-supply = <&pm8921_s4>; 81*cb7aa33aSEmmanuel Vadot 82*cb7aa33aSEmmanuel Vadot s1 { 83*cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <1225000>; 84*cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <1225000>; 85*cb7aa33aSEmmanuel Vadot 86*cb7aa33aSEmmanuel Vadot bias-pull-down; 87*cb7aa33aSEmmanuel Vadot 88*cb7aa33aSEmmanuel Vadot qcom,switch-mode-frequency = <3200000>; 89*cb7aa33aSEmmanuel Vadot }; 90*cb7aa33aSEmmanuel Vadot 91*cb7aa33aSEmmanuel Vadot pm8921_s4: s4 { 92*cb7aa33aSEmmanuel Vadot regulator-min-microvolt = <1800000>; 93*cb7aa33aSEmmanuel Vadot regulator-max-microvolt = <1800000>; 94*cb7aa33aSEmmanuel Vadot 95*cb7aa33aSEmmanuel Vadot qcom,switch-mode-frequency = <1600000>; 96*cb7aa33aSEmmanuel Vadot bias-pull-down; 97*cb7aa33aSEmmanuel Vadot 98*cb7aa33aSEmmanuel Vadot qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>; 99*cb7aa33aSEmmanuel Vadot }; 100*cb7aa33aSEmmanuel Vadot }; 101*cb7aa33aSEmmanuel Vadot }; 102