blob: b00be9e01206d1c61802dee9f9ec777c4b946b7b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/qcom/qcom,rpm.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Resource Power Manager (RPM)
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
15maintainers:
16 - Bjorn Andersson <andersson@kernel.org>
17
18properties:
19 compatible:
20 enum:
21 - qcom,rpm-apq8064
22 - qcom,rpm-msm8660
23 - qcom,rpm-msm8960
24 - qcom,rpm-ipq8064
25 - qcom,rpm-mdm9615
26
27 reg:
28 maxItems: 1
29
30 interrupts:
31 maxItems: 3
32
33 interrupt-names:
34 items:
35 - const: ack
36 - const: err
37 - const: wakeup
38
39 qcom,ipc:
40 $ref: /schemas/types.yaml#/definitions/phandle-array
41 items:
42 - items:
43 - description: phandle to a syscon node representing the APCS registers
44 - description: u32 representing offset to the register within the syscon
45 - description: u32 representing the ipc bit within the register
46 description:
47 Three entries specifying the outgoing ipc bit used for signaling the RPM.
48
49patternProperties:
50 "^regulators(-[01])?$":
51 type: object
52 $ref: /schemas/regulator/qcom,rpm-regulator.yaml#
53 unevaluatedProperties: false
54
55required:
56 - compatible
57 - reg
58 - interrupts
59 - interrupt-names
60 - qcom,ipc
61
62additionalProperties: false
63
64examples:
65 - |
66 #include <dt-bindings/interrupt-controller/arm-gic.h>
67 #include <dt-bindings/interrupt-controller/irq.h>
68 #include <dt-bindings/mfd/qcom-rpm.h>
69
70 rpm@108000 {
71 compatible = "qcom,rpm-msm8960";
72 reg = <0x108000 0x1000>;
73 qcom,ipc = <&apcs 0x8 2>;
74
75 interrupts = <GIC_SPI 19 IRQ_TYPE_NONE>, <GIC_SPI 21 IRQ_TYPE_NONE>, <GIC_SPI 22 IRQ_TYPE_NONE>;
76 interrupt-names = "ack", "err", "wakeup";
77
78 regulators {
79 compatible = "qcom,rpm-pm8921-regulators";
80 vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
81
82 s1 {
83 regulator-min-microvolt = <1225000>;
84 regulator-max-microvolt = <1225000>;
85
86 bias-pull-down;
87
88 qcom,switch-mode-frequency = <3200000>;
89 };
90
91 pm8921_s4: s4 {
92 regulator-min-microvolt = <1800000>;
93 regulator-max-microvolt = <1800000>;
94
95 qcom,switch-mode-frequency = <1600000>;
96 bias-pull-down;
97
98 qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
99 };
100 };
101 };