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

Bjorn Andersson bjorn.andersson at sonymobile.com
Mon Sep 29 17:34:47 PDT 2014


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 at sonymobile.com>
---

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 at 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




More information about the linux-arm-kernel mailing list