[RFC 3/7] mfd: devicetree: bindings: Add Qualcomm SMD based RPM DT binding

From: Bjorn Andersson
Date: Mon Sep 29 2014 - 20:35:04 EST


Add binding documentation for the Qualcomm Resource Power Manager (RPM)
using shared memory (Qualcomm SMD) as transport mechanism. This is found
in 8974 and newer based devices.

The binding currently describes the rpm itself and the regulator
subnodes.

Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
---

Note that this patch extends the rpm dt-bindings header from [1].

[1] https://lkml.org/lkml/2014/9/22/733

.../devicetree/bindings/mfd/qcom-rpm-smd.txt | 122 ++++++++++++++++++++
include/dt-bindings/mfd/qcom-rpm.h | 36 ++++++
2 files changed, 158 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt

diff --git a/Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt b/Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt
new file mode 100644
index 0000000..a846101
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/qcom-rpm-smd.txt
@@ -0,0 +1,122 @@
+Qualcomm Resource Power Manager (RPM) over SMD
+
+This driver is used to interface with the Resource Power Manager (RPM) found in
+various Qualcomm platforms. The RPM allows each component in the system to vote
+for state of the system resources, such as clocks, regulators and bus
+frequencies.
+
+- compatible:
+ Usage: required
+ Value type: <string>
+ Definition: must be one of:
+ "qcom,rpm-msm8974"
+
+- qcom,smd-channels:
+ Usage: required
+ Value type: <stringlist>
+ Definition: Shared Memory Channel used for communication with the RPM
+
+- #address-cells:
+ Usage: required
+ Value type: <u32>
+ Definition: must be 1
+
+- #size-cells:
+ Usage: required
+ Value type: <u32>
+ Definition: must be 0
+
+= SUBDEVICES
+
+The RPM exposes resources to its subnodes. The below bindings specify the set
+of valid subnodes that can operate on these resources.
+
+== Switch-mode Power Supply regulator
+
+- compatible:
+ Usage: required
+ Value type: <string>
+ Definition: must be one of:
+ "qcom,rpm-pm8841-smps"
+ "qcom,rpm-pm8941-smps"
+
+
+- reg:
+ Usage: required
+ Value type: <u32>
+ Definition: resource as defined in <dt-bindings/mfd/qcom-rpm.h>
+ must be one of:
+ QCOM_RPM_PM8841_SMPS1 - QCOM_RPM_PM8841_SMPS4,
+ QCOM_RPM_PM8941_SMPS1 - QCOM_RPM_PM8941_SMPS3
+
+Standard regulator bindings are used inside switch mode power supply subnodes.
+Check Documentation/devicetree/bindings/regulator/regulator.txt for more
+details.
+
+== Low-dropout regulator
+
+- compatible:
+ Usage: required
+ Value type: <string>
+ Definition: must be one of:
+ "qcom,rpm-pm8941-ldo"
+
+- reg:
+ Usage: required
+ Value type: <u32>
+ Definition: resource as defined in <dt-bindings/mfd/qcom-rpm.h>
+ must be one of:
+ QCOM_RPM_PM8941_LDO1 - QCOM_RPM_PM8941_LDO24
+
+Standard regulator bindings are used inside switch low-dropout regulator
+subnodes. Check Documentation/devicetree/bindings/regulator/regulator.txt for
+more details.
+
+== Switch
+
+- compatible:
+ Usage: required
+ Value type: <string>
+ Definition: must be one of:
+ "qcom,rpm-pm8941-switch"
+
+- reg:
+ Usage: required
+ Value type: <u32>
+ Definition: resource as defined in <dt-bindings/mfd/qcom/qcom-rpm.h>
+ must be one of:
+ QCOM_RPM_PM8941_LVS1 - QCOM_RPM_PM8941_LVS3,
+ QCOM_RPM_PM8941_MVS1 - QCOM_RPM_PM8941_MVS2
+
+Standard regulator bindings are used inside switch regulator subnodes. Check
+Documentation/devicetree/bindings/regulator/regulator.txt for more details.
+
+= EXAMPLE
+
+ #include <dt-bindings/mfd/qcom-rpm.h>
+
+ rpm@108000 {
+ compatible = "qcom,rpm-msm8960";
+ qcom,smd-channels = "rpm_requests";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pm8941_s1: regulator-s1 {
+ compatible = "qcom,rpm-pm8941-smps";
+ reg = <QCOM_RPM_PM8941_SMPS1>;
+
+ regulator-min-microvolt = <1300000>;
+ regulator-max-microvolt = <1300000>;
+ };
+
+ pm8941_l3: pm8941-l3 {
+ compatible = "qcom,rpm-pm8941-ldo";
+ reg = <QCOM_RPM_PM8941_LDO3>;
+
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ };
+
diff --git a/include/dt-bindings/mfd/qcom-rpm.h b/include/dt-bindings/mfd/qcom-rpm.h
index 388a6f3..a5c473e 100644
--- a/include/dt-bindings/mfd/qcom-rpm.h
+++ b/include/dt-bindings/mfd/qcom-rpm.h
@@ -141,6 +141,42 @@
#define QCOM_RPM_SYS_FABRIC_MODE 131
#define QCOM_RPM_USB_OTG_SWITCH 132
#define QCOM_RPM_VDDMIN_GPIO 133
+#define QCOM_RPM_PM8841_SMPS1 134
+#define QCOM_RPM_PM8841_SMPS2 135
+#define QCOM_RPM_PM8841_SMPS3 136
+#define QCOM_RPM_PM8841_SMPS4 137
+#define QCOM_RPM_PM8941_SMPS1 138
+#define QCOM_RPM_PM8941_SMPS2 139
+#define QCOM_RPM_PM8941_SMPS3 140
+#define QCOM_RPM_PM8941_LDO1 141
+#define QCOM_RPM_PM8941_LDO2 142
+#define QCOM_RPM_PM8941_LDO3 143
+#define QCOM_RPM_PM8941_LDO4 144
+#define QCOM_RPM_PM8941_LDO5 145
+#define QCOM_RPM_PM8941_LDO6 146
+#define QCOM_RPM_PM8941_LDO7 147
+#define QCOM_RPM_PM8941_LDO8 148
+#define QCOM_RPM_PM8941_LDO9 149
+#define QCOM_RPM_PM8941_LDO10 150
+#define QCOM_RPM_PM8941_LDO11 151
+#define QCOM_RPM_PM8941_LDO12 152
+#define QCOM_RPM_PM8941_LDO13 153
+#define QCOM_RPM_PM8941_LDO14 154
+#define QCOM_RPM_PM8941_LDO15 155
+#define QCOM_RPM_PM8941_LDO16 156
+#define QCOM_RPM_PM8941_LDO17 157
+#define QCOM_RPM_PM8941_LDO18 158
+#define QCOM_RPM_PM8941_LDO19 159
+#define QCOM_RPM_PM8941_LDO20 160
+#define QCOM_RPM_PM8941_LDO21 161
+#define QCOM_RPM_PM8941_LDO22 162
+#define QCOM_RPM_PM8941_LDO23 163
+#define QCOM_RPM_PM8941_LDO24 164
+#define QCOM_RPM_PM8941_LVS1 165
+#define QCOM_RPM_PM8941_LVS2 166
+#define QCOM_RPM_PM8941_LVS3 167
+#define QCOM_RPM_PM8941_MVS1 168
+#define QCOM_RPM_PM8941_MVS2 169

/*
* Constants used to select force mode for regulators.
--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/