linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms
@ 2015-09-23 16:53 Andy Gross
  2015-09-23 16:53 ` [Patch v2 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross
                   ` (9 more replies)
  0 siblings, 10 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch set cleans up the documentation that is currently in place for the
SMD, SMD-RPM, and SMD-RPM regulators.  In addition, this patch set adds support
for the PM8916 found on MSM8916 platforms and the PMA8084 found on APQ8084
platforms.
                                                                                                                               
All of the relevant DTS information is fleshed out for the regulators and their
dependencies for all of the platforms which support SMD-RPM regulators.

Changes since v1:
  - Fixed various review comments
  - Removed MSM8974 patches as there was already an outstanding patch

Andy Gross (10):
  soc: qcom: documentation: Update SMD/RPM Docs
  soc: qcom: smd-rpm: Add existing platform support
  arm64: dts: qcom: Add MSM8916 SMEM nodes
  arm64: dts: qcom: Add RPM/SMD support on MSM8916
  arm64: dts: Add PM8916 support on MSM8916
  regulators: qcom-smd: Add PM8916 support
  arm: dts: Add APQ8084 SMEM nodes
  arm: dts: Add RPM/SMD support on APQ8084
  arm: dts: Add support for PMA8084 on APQ8084
  regulator: qcom-smd: Add support for PMA8084

 .../devicetree/bindings/soc/qcom,smd-rpm.txt       |  117 --------------
 .../bindings/soc/qcom/qcom,smd-rpm-regulator.txt   |  156 +++++++++++++++++++
 .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt  |   57 +++++++
 arch/arm/boot/dts/qcom-apq8084.dtsi                |  103 +++++++++++++
 arch/arm64/boot/dts/qcom/msm8916.dtsi              |   84 +++++++++++
 drivers/regulator/qcom_smd-regulator.c             |  159 ++++++++++++++++++++
 drivers/soc/qcom/smd-rpm.c                         |    2 +
 7 files changed, 561 insertions(+), 117 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/soc/qcom,smd-rpm.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Patch v2 01/10] soc: qcom: documentation: Update SMD/RPM Docs
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 16:53 ` [Patch v2 02/10] soc: qcom: smd-rpm: Add existing platform support Andy Gross
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch moves the qcom,smd-rpm.txt to the correct location and splits
out the smd and rpm documentation.  In addition, a smd-rpm-regulator
document is added.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 .../devicetree/bindings/soc/qcom,smd-rpm.txt       |  117 --------------------
 .../bindings/soc/qcom/qcom,smd-rpm-regulator.txt   |  103 +++++++++++++++++
 .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt  |   55 +++++++++
 3 files changed, 158 insertions(+), 117 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/soc/qcom,smd-rpm.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt

diff --git a/Documentation/devicetree/bindings/soc/qcom,smd-rpm.txt b/Documentation/devicetree/bindings/soc/qcom,smd-rpm.txt
deleted file mode 100644
index e27f5c4..0000000
--- a/Documentation/devicetree/bindings/soc/qcom,smd-rpm.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-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
-
-= SUBDEVICES
-
-The RPM exposes resources to its subnodes. The below bindings specify the set
-of valid subnodes that can operate on these resources.
-
-== Regulators
-
-Regulator nodes are identified by their compatible:
-
-- compatible:
-	Usage: required
-	Value type: <string>
-	Definition: must be one of:
-		    "qcom,rpm-pm8841-regulators"
-		    "qcom,rpm-pm8941-regulators"
-
-- vdd_s1-supply:
-- vdd_s2-supply:
-- vdd_s3-supply:
-- vdd_s4-supply:
-- vdd_s5-supply:
-- vdd_s6-supply:
-- vdd_s7-supply:
-- vdd_s8-supply:
-	Usage: optional (pm8841 only)
-	Value type: <phandle>
-	Definition: reference to regulator supplying the input pin, as
-		    described in the data sheet
-
-- vdd_s1-supply:
-- vdd_s2-supply:
-- vdd_s3-supply:
-- vdd_l1_l3-supply:
-- vdd_l2_lvs1_2_3-supply:
-- vdd_l4_l11-supply:
-- vdd_l5_l7-supply:
-- vdd_l6_l12_l14_l15-supply:
-- vdd_l8_l16_l18_l19-supply:
-- vdd_l9_l10_l17_l22-supply:
-- vdd_l13_l20_l23_l24-supply:
-- vdd_l21-supply:
-- vin_5vs-supply:
-	Usage: optional (pm8941 only)
-	Value type: <phandle>
-	Definition: reference to regulator supplying the input pin, as
-		    described in the data sheet
-
-The regulator node houses sub-nodes for each regulator within the device. Each
-sub-node is identified using the node's name, with valid values listed for each
-of the pmics below.
-
-pm8841:
-	s1, s2, s3, s4, s5, s6, s7, s8
-
-pm8941:
-	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
-	l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
-	lvs3, 5vs1, 5vs2
-
-The content of each sub-node is defined by the standard binding for regulators -
-see regulator.txt.
-
-= EXAMPLE
-
-	smd {
-		compatible = "qcom,smd";
-
-		rpm {
-			interrupts = <0 168 1>;
-			qcom,ipc = <&apcs 8 0>;
-			qcom,smd-edge = <15>;
-
-			rpm_requests {
-				compatible = "qcom,rpm-msm8974";
-				qcom,smd-channels = "rpm_requests";
-
-				pm8941-regulators {
-					compatible = "qcom,rpm-pm8941-regulators";
-					vdd_l13_l20_l23_l24-supply = <&pm8941_boost>;
-
-					pm8941_s3: s3 {
-						regulator-min-microvolt = <1800000>;
-						regulator-max-microvolt = <1800000>;
-					};
-
-					pm8941_boost: s4 {
-						regulator-min-microvolt = <5000000>;
-						regulator-max-microvolt = <5000000>;
-					};
-
-					pm8941_l20: l20 {
-						regulator-min-microvolt = <2950000>;
-						regulator-max-microvolt = <2950000>;
-					};
-				};
-			};
-		};
-	};
-
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
new file mode 100644
index 0000000..7084474
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
@@ -0,0 +1,103 @@
+QCOM SMD RPM REGULATOR
+
+The Qualcomm RPM over SMD regulator is modelled as a subdevice of the RPM.
+Because SMD is used as the communication transport mechanism, the RPM resides as
+a subnode of the SMD.  As such, the SMD-RPM regulator requires that the SMD and
+RPM nodes be present.
+
+Please refer to the qcom,smd.txt for information pertaining to the SMD node.
+Please refer to the qcom,smd-rpm.txt for information regarding the RPM node.
+
+== Regulator
+
+Regulator nodes are identified by their compatible:
+
+- compatible:
+	Usage: required
+	Value type: <string>
+	Definition: must be one of:
+		    "qcom,rpm-pm8841-regulators"
+		    "qcom,rpm-pm8941-regulators"
+
+- vdd_s1-supply:
+- vdd_s2-supply:
+- vdd_s3-supply:
+- vdd_s4-supply:
+- vdd_s5-supply:
+- vdd_s6-supply:
+- vdd_s7-supply:
+- vdd_s8-supply:
+	Usage: optional (pm8841 only)
+	Value type: <phandle>
+	Definition: reference to regulator supplying the input pin, as
+		    described in the data sheet
+
+- vdd_s1-supply:
+- vdd_s2-supply:
+- vdd_s3-supply:
+- vdd_l1_l3-supply:
+- vdd_l2_lvs1_2_3-supply:
+- vdd_l4_l11-supply:
+- vdd_l5_l7-supply:
+- vdd_l6_l12_l14_l15-supply:
+- vdd_l8_l16_l18_l19-supply:
+- vdd_l9_l10_l17_l22-supply:
+- vdd_l13_l20_l23_l24-supply:
+- vdd_l21-supply:
+- vin_5vs-supply:
+	Usage: optional (pm8941 only)
+	Value type: <phandle>
+	Definition: reference to regulator supplying the input pin, as
+		    described in the data sheet
+
+The regulator node houses sub-nodes for each regulator within the device. Each
+sub-node is identified using the node's name, with valid values listed for each
+of the pmics below.
+
+pm8841:
+	s1, s2, s3, s4, s5, s6, s7, s8
+
+pm8941:
+	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
+	l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
+	lvs3, 5vs1, 5vs2
+
+The content of each sub-node is defined by the standard binding for regulators -
+see regulator.txt.
+
+= EXAMPLE
+
+	smd {
+		compatible = "qcom,smd";
+
+		rpm {
+			interrupts = <0 168 1>;
+			qcom,ipc = <&apcs 8 0>;
+			qcom,smd-edge = <15>;
+
+			rpm_requests {
+				compatible = "qcom,rpm-msm8974";
+				qcom,smd-channels = "rpm_requests";
+
+				pm8941-regulators {
+					compatible = "qcom,rpm-pm8941-regulators";
+					vdd_l13_l20_l23_l24-supply = <&pm8941_boost>;
+
+					pm8941_s3: s3 {
+						regulator-min-microvolt = <1800000>;
+						regulator-max-microvolt = <1800000>;
+					};
+
+					pm8941_boost: s4 {
+						regulator-min-microvolt = <5000000>;
+						regulator-max-microvolt = <5000000>;
+					};
+
+					pm8941_l20: l20 {
+						regulator-min-microvolt = <2950000>;
+						regulator-max-microvolt = <2950000>;
+					};
+				};
+			};
+		};
+	};
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
new file mode 100644
index 0000000..3710dd5
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
@@ -0,0 +1,55 @@
+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.
+
+The SMD information for the RPM edge should be filled out.  See qcom,smd.txt for
+the required edge properties.  All SMD related properties will reside within the
+RPM node itself.
+
+= SUBDEVICES
+
+The RPM exposes resources to its subnodes.  The rpm_requests node must be
+present and this subnode may contain children that designate regulator
+resources.
+
+- compatible:
+	Usage: required
+	Value type: <string>
+	Definition: must be one of:
+		    "qcom,rpm-msm8974"
+
+- qcom,smd-channels:
+	Usage: required
+	Value type: <string>
+	Definition: must be "rpm_requests"
+
+Please refer to qcom,smd-rpm-regulator.txt for information on the regulator
+subnodes that can exist under the rpm_requests.
+
+Example:
+
+       apcs: syscon at f9011000 {
+                compatible = "syscon";
+                reg = <0xf9011000 0x1000>;
+        };
+
+        smd {
+                compatible = "qcom,smd";
+
+                rpm {
+                        interrupts = <0 168 1>;
+                        qcom,ipc = <&apcs 8 0>;
+                        qcom,smd-edge = <15>;
+
+                        rpm_requests {
+                                compatible = "qcom,rpm-msm8974";
+                                qcom,smd-channels = "rpm_requests";
+
+                                ...
+                        };
+                };
+        };
+
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 02/10] soc: qcom: smd-rpm: Add existing platform support
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
  2015-09-23 16:53 ` [Patch v2 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 17:18   ` Bjorn Andersson
  2015-09-23 16:53 ` [Patch v2 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes Andy Gross
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds support for all current Qualcomm platforms which utilize
RPM over SMD.  This includes both MSM8916 and APQ8084.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt  |    2 ++
 drivers/soc/qcom/smd-rpm.c                         |    2 ++
 2 files changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
index 3710dd5..7d05246 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
@@ -20,6 +20,8 @@ resources.
 	Value type: <string>
 	Definition: must be one of:
 		    "qcom,rpm-msm8974"
+		    "qcom,rpm-msm8916"
+		    "qcom,rpm-apq8084"
 
 - qcom,smd-channels:
 	Usage: required
diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c
index 1392ccf..455083c 100644
--- a/drivers/soc/qcom/smd-rpm.c
+++ b/drivers/soc/qcom/smd-rpm.c
@@ -212,6 +212,8 @@ static void qcom_smd_rpm_remove(struct qcom_smd_device *sdev)
 
 static const struct of_device_id qcom_smd_rpm_of_match[] = {
 	{ .compatible = "qcom,rpm-msm8974" },
+	{ .compatible = "qcom,rpm-msm8916" },
+	{ .compatible = "qcom,rpm-apq8084" },
 	{}
 };
 MODULE_DEVICE_TABLE(of, qcom_smd_rpm_of_match);
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
  2015-09-23 16:53 ` [Patch v2 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross
  2015-09-23 16:53 ` [Patch v2 02/10] soc: qcom: smd-rpm: Add existing platform support Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 16:53 ` [Patch v2 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 Andy Gross
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds the nodes necessary to support the SMEM driver on MSM8916
platforms.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 arch/arm64/boot/dts/qcom/msm8916.dtsi |   36 +++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index 5911de0..d321266 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -37,6 +37,22 @@
 		reg = <0 0 0 0>;
 	};
 
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		reserve_aligned at 86000000 {
+			reg = <0x0 0x86000000 0x0 0x0300000>;
+			no-map;
+		};
+
+		smem_mem: smem_region at 86300000 {
+			reg = <0x0 0x86300000 0x0 0x0100000>;
+			no-map;
+		};
+	};
+
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -102,6 +118,26 @@
 			reg = <0x1800000 0x80000>;
 		};
 
+		tcsr_mutex_regs: syscon at 1905000 {
+			compatible = "syscon";
+			reg = <0x1905000 0x20000>;
+		};
+
+		tcsr_mutex: hwlock {
+			compatible = "qcom,tcsr-mutex";
+			syscon = <&tcsr_mutex_regs 0 0x1000>;
+			#hwlock-cells = <1>;
+		};
+
+		smem {
+			compatible = "qcom,smem";
+			reg = <0x60000 0x8000>;
+			reg-names = "aux-mem1";
+
+			memory-region = <&smem_mem>;
+			hwlocks = <&tcsr_mutex 3>;
+		};
+
 		blsp1_uart2: serial at 78b0000 {
 			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
 			reg = <0x78b0000 0x200>;
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
                   ` (2 preceding siblings ...)
  2015-09-23 16:53 ` [Patch v2 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 16:53 ` [Patch v2 05/10] arm64: dts: Add PM8916 " Andy Gross
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

Add support for the SMD and RPM devices found on MSM8916 platforms.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 arch/arm64/boot/dts/qcom/msm8916.dtsi |   20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index d321266..27d3e90 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -138,6 +138,11 @@
 			hwlocks = <&tcsr_mutex 3>;
 		};
 
+		apcs: syscon at b011000 {
+			compatible = "syscon";
+			reg = <0x0b011000 0x1000>;
+		};
+
 		blsp1_uart2: serial at 78b0000 {
 			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
 			reg = <0x78b0000 0x200>;
@@ -427,6 +432,21 @@
 			#interrupt-cells = <4>;
 		};
 	};
+
+	smd {
+		compatible = "qcom,smd";
+
+		rpm {
+			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+			qcom,ipc = <&apcs 8 0>;
+			qcom,smd-edge = <15>;
+
+			rpm_requests {
+				compatible = "qcom,rpm-msm8916";
+				qcom,smd-channels = "rpm_requests";
+			};
+		};
+	};
 };
 
 #include "msm8916-pins.dtsi"
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 05/10] arm64: dts: Add PM8916 support on MSM8916
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
                   ` (3 preceding siblings ...)
  2015-09-23 16:53 ` [Patch v2 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 16:53 ` [Patch v2 06/10] regulators: qcom-smd: Add PM8916 support Andy Gross
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds the PM8916 regulator nodes found on MSM8916 platforms.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 arch/arm64/boot/dts/qcom/msm8916.dtsi |   28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index 27d3e90..d2b07eb 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -444,6 +444,34 @@
 			rpm_requests {
 				compatible = "qcom,rpm-msm8916";
 				qcom,smd-channels = "rpm_requests";
+
+				pm8916-regulators {
+					compatible = "qcom,rpm-pm8916-regulators";
+
+					pm8916_s1: s1 {};
+					pm8916_s2: s2 {};
+					pm8916_s3: s3 {};
+					pm8916_s4: s4 {};
+
+					pm8916_l1: l1 {};
+					pm8916_l2: l2 {};
+					pm8916_l3: l3 {};
+					pm8916_l4: l4 {};
+					pm8916_l5: l5 {};
+					pm8916_l6: l6 {};
+					pm8916_l7: l7 {};
+					pm8916_l8: l8 {};
+					pm8916_l9: l9 {};
+					pm8916_l10: l10 {};
+					pm8916_l11: l11 {};
+					pm8916_l12: l12 {};
+					pm8916_l13: l13 {};
+					pm8916_l14: l14 {};
+					pm8916_l15: l15 {};
+					pm8916_l16: l16 {};
+					pm8916_l17: l17 {};
+					pm8916_l18: l18 {};
+				};
 			};
 		};
 	};
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 06/10] regulators: qcom-smd: Add PM8916 support
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
                   ` (4 preceding siblings ...)
  2015-09-23 16:53 ` [Patch v2 05/10] arm64: dts: Add PM8916 " Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 17:23   ` Bjorn Andersson
  2015-09-23 16:53 ` [Patch v2 07/10] arm: dts: Add APQ8084 SMEM nodes Andy Gross
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds support and documentation for the PM8916 regulators
found on MSM8916 platforms.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 .../bindings/soc/qcom/qcom,smd-rpm-regulator.txt   |   18 ++++++
 drivers/regulator/qcom_smd-regulator.c             |   64 ++++++++++++++++++++
 2 files changed, 82 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
index 7084474..05dfc1a 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
@@ -18,6 +18,7 @@ Regulator nodes are identified by their compatible:
 	Definition: must be one of:
 		    "qcom,rpm-pm8841-regulators"
 		    "qcom,rpm-pm8941-regulators"
+		    "qcom,rpm-pm8916-regulators"
 
 - vdd_s1-supply:
 - vdd_s2-supply:
@@ -50,6 +51,19 @@ Regulator nodes are identified by their compatible:
 	Definition: reference to regulator supplying the input pin, as
 		    described in the data sheet
 
+- vdd_s1-supply:
+- vdd_s2-supply:
+- vdd_s3-supply:
+- vdd_s4-supply:
+- vdd_l1_l2_l3-supply
+- vdd_l4_l5_l6-supply
+- vdd_l7-supply
+- vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18-supply:
+	Usage: optional (pm8916 only)
+	Value type: <phandle>
+	Definition: reference to regulator supplying the input pin, as
+		    described in the data sheet
+
 The regulator node houses sub-nodes for each regulator within the device. Each
 sub-node is identified using the node's name, with valid values listed for each
 of the pmics below.
@@ -62,6 +76,10 @@ pm8941:
 	l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
 	lvs3, 5vs1, 5vs2
 
+pm8916:
+	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
+	l14, l15, l16, l17, l18
+
 The content of each sub-node is defined by the standard binding for regulators -
 see regulator.txt.
 
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 9c6167d..0ba6712 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -211,6 +211,43 @@ static const struct regulator_desc pm8941_switch = {
 	.ops = &rpm_switch_ops,
 };
 
+static const struct regulator_desc pm8916_pldo = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(750000, 0, 208, 12500),
+	},
+	.n_linear_ranges = 1,
+	.n_voltages = 209,
+	.ops = &rpm_smps_ldo_ops,
+};
+
+static const struct regulator_desc pm8916_nldo = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(375000, 0, 93, 12500),
+	},
+	.n_linear_ranges = 1,
+	.n_voltages = 94,
+	.ops = &rpm_smps_ldo_ops,
+};
+
+static const struct regulator_desc pm8916_buck_lvo_smps = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(375000, 0, 95, 12500),
+		REGULATOR_LINEAR_RANGE(750000, 96, 127, 25000),
+	},
+	.n_linear_ranges = 2,
+	.n_voltages = 128,
+	.ops = &rpm_smps_ldo_ops,
+};
+
+static const struct regulator_desc pm8916_buck_hvo_smps = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(1550000, 0, 31, 25000),
+	},
+	.n_linear_ranges = 1,
+	.n_voltages = 32,
+	.ops = &rpm_smps_ldo_ops,
+};
+
 struct rpm_regulator_data {
 	const char *name;
 	u32 type;
@@ -219,6 +256,32 @@ struct rpm_regulator_data {
 	const char *supply;
 };
 
+static const struct rpm_regulator_data rpm_pm8916_regulators[] = {
+	{ "s1", QCOM_SMD_RPM_SMPA, 1, &pm8916_buck_lvo_smps, "vdd_s1" },
+	{ "s2", QCOM_SMD_RPM_SMPA, 2, &pm8916_buck_lvo_smps, "vdd_s2" },
+	{ "s3", QCOM_SMD_RPM_SMPA, 3, &pm8916_buck_lvo_smps, "vdd_s3" },
+	{ "s4", QCOM_SMD_RPM_SMPA, 4, &pm8916_buck_hvo_smps, "vdd_s4" },
+	{ "l1", QCOM_SMD_RPM_LDOA, 1, &pm8916_nldo, "vdd_l1_l2_l3" },
+	{ "l2", QCOM_SMD_RPM_LDOA, 2, &pm8916_nldo, "vdd_l1_l2_l3" },
+	{ "l3", QCOM_SMD_RPM_LDOA, 3, &pm8916_nldo, "vdd_l1_l2_l3" },
+	{ "l4", QCOM_SMD_RPM_LDOA, 4, &pm8916_pldo, "vdd_l4_l5_l6" },
+	{ "l5", QCOM_SMD_RPM_LDOA, 5, &pm8916_pldo, "vdd_l4_l5_l6" },
+	{ "l6", QCOM_SMD_RPM_LDOA, 6, &pm8916_pldo, "vdd_l4_l5_l6" },
+	{ "l7", QCOM_SMD_RPM_LDOA, 7, &pm8916_pldo, "vdd_l7" },
+	{ "l8", QCOM_SMD_RPM_LDOA, 8, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18" },
+	{ "l9", QCOM_SMD_RPM_LDOA, 9, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18" },
+	{ "l10", QCOM_SMD_RPM_LDOA, 10, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l11", QCOM_SMD_RPM_LDOA, 11, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l12", QCOM_SMD_RPM_LDOA, 12, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l13", QCOM_SMD_RPM_LDOA, 13, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l14", QCOM_SMD_RPM_LDOA, 14, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l15", QCOM_SMD_RPM_LDOA, 15, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l16", QCOM_SMD_RPM_LDOA, 16, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l17", QCOM_SMD_RPM_LDOA, 17, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{ "l18", QCOM_SMD_RPM_LDOA, 18, &pm8916_pldo, "vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18"},
+	{}
+};
+
 static const struct rpm_regulator_data rpm_pm8841_regulators[] = {
 	{ "s1", QCOM_SMD_RPM_SMPB, 1, &pm8x41_hfsmps, "vdd_s1" },
 	{ "s2", QCOM_SMD_RPM_SMPB, 2, &pm8841_ftsmps, "vdd_s2" },
@@ -273,6 +336,7 @@ static const struct rpm_regulator_data rpm_pm8941_regulators[] = {
 };
 
 static const struct of_device_id rpm_of_match[] = {
+	{ .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_regulators },
 	{ .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators },
 	{ .compatible = "qcom,rpm-pm8941-regulators", .data = &rpm_pm8941_regulators },
 	{}
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 07/10] arm: dts: Add APQ8084 SMEM nodes
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
                   ` (5 preceding siblings ...)
  2015-09-23 16:53 ` [Patch v2 06/10] regulators: qcom-smd: Add PM8916 support Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 16:53 ` [Patch v2 08/10] arm: dts: Add RPM/SMD support on APQ8084 Andy Gross
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds all the required nodes to support SMEM on APQ8084

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 arch/arm/boot/dts/qcom-apq8084.dtsi |   31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi
index 0554fbd..76be0ba 100644
--- a/arch/arm/boot/dts/qcom-apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8084.dtsi
@@ -10,6 +10,17 @@
 	compatible = "qcom,apq8084";
 	interrupt-parent = <&intc>;
 
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		smem_mem: smem_region at fa00000 {
+			reg = <0xfa00000 0x200000>;
+			no-map;
+		};
+	};
+
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
@@ -224,6 +235,26 @@
 			reg = <0xfc400000 0x4000>;
 		};
 
+		tcsr_mutex_regs: syscon at fd484000 {
+			compatible = "syscon";
+			reg = <0xfd484000 0x2000>;
+		};
+
+		tcsr_mutex: hwlock {
+			compatible = "qcom,tcsr-mutex";
+			syscon = <&tcsr_mutex_regs 0 0x80>;
+			#hwlock-cells = <1>;
+		};
+
+		smem {
+			compatible = "qcom,smem";
+			reg = <0xfc428000 0x4000>;
+			reg-names = "aux-mem1";
+
+			memory-region = <&smem_mem>;
+			hwlocks = <&tcsr_mutex 3>;
+		};
+
 		tlmm: pinctrl at fd510000 {
 			compatible = "qcom,apq8084-pinctrl";
 			reg = <0xfd510000 0x4000>;
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 08/10] arm: dts: Add RPM/SMD support on APQ8084
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
                   ` (6 preceding siblings ...)
  2015-09-23 16:53 ` [Patch v2 07/10] arm: dts: Add APQ8084 SMEM nodes Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 16:53 ` [Patch v2 09/10] arm: dts: Add support for PMA8084 " Andy Gross
  2015-09-23 16:53 ` [Patch v2 10/10] regulator: qcom-smd: Add support for PMA8084 Andy Gross
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds support for RPM and SMD nodes that are present on APQ8084
platforms.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 arch/arm/boot/dts/qcom-apq8084.dtsi |   20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi
index 76be0ba..d1c76e58 100644
--- a/arch/arm/boot/dts/qcom-apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8084.dtsi
@@ -114,6 +114,11 @@
 			      <0xf9002000 0x1000>;
 		};
 
+		apcs: syscon at f9011000 {
+			compatible = "syscon";
+			reg = <0xf9011000 0x1000>;
+		};
+
 		timer at f9020000 {
 			#address-cells = <1>;
 			#size-cells = <1>;
@@ -312,4 +317,19 @@
 			#interrupt-cells = <4>;
 		};
 	};
+
+	smd {
+		compatible = "qcom,smd";
+
+		rpm {
+			interrupts = <0 168 1>;
+			qcom,ipc = <&apcs 8 0>;
+			qcom,smd-edge = <15>;
+
+			rpm_requests {
+				compatible = "qcom,rpm-apq8084";
+				qcom,smd-channels = "rpm_requests";
+			};
+		};
+	};
 };
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 09/10] arm: dts: Add support for PMA8084 on APQ8084
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
                   ` (7 preceding siblings ...)
  2015-09-23 16:53 ` [Patch v2 08/10] arm: dts: Add RPM/SMD support on APQ8084 Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  2015-09-23 16:53 ` [Patch v2 10/10] regulator: qcom-smd: Add support for PMA8084 Andy Gross
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds support for the PMA8084 regulators found on APQ8084
platforms.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 arch/arm/boot/dts/qcom-apq8084.dtsi |   52 +++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi
index d1c76e58..05553d5 100644
--- a/arch/arm/boot/dts/qcom-apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8084.dtsi
@@ -329,6 +329,58 @@
 			rpm_requests {
 				compatible = "qcom,rpm-apq8084";
 				qcom,smd-channels = "rpm_requests";
+
+				pma8084-regulators {
+					compatible = "qcom,rpm-pma8084-regulators";
+
+					pma8084_s1: s1 {};
+					pma8084_s2: s2 {};
+					pma8084_s3: s3 {};
+					pma8084_s4: s4 {};
+					pma8084_s5: s5 {};
+					pma8084_s6: s6 {};
+					pma8084_s7: s7 {};
+					pma8084_s8: s8 {};
+					pma8084_s9: s9 {};
+					pma8084_s10: s10 {};
+					pma8084_s11: s11 {};
+					pma8084_s12: s12 {};
+
+					pma8084_l1: l1 {};
+					pma8084_l2: l2 {};
+					pma8084_l3: l3 {};
+					pma8084_l4: l4 {};
+					pma8084_l5: l5 {};
+					pma8084_l6: l6 {};
+					pma8084_l7: l7 {};
+					pma8084_l8: l8 {};
+					pma8084_l9: l9 {};
+					pma8084_l10: l10 {};
+					pma8084_l11: l11 {};
+					pma8084_l12: l12 {};
+					pma8084_l13: l13 {};
+					pma8084_l14: l14 {};
+					pma8084_l15: l15 {};
+					pma8084_l16: l16 {};
+					pma8084_l17: l17 {};
+					pma8084_l18: l18 {};
+					pma8084_l19: l19 {};
+					pma8084_l20: l20 {};
+					pma8084_l21: l21 {};
+					pma8084_l22: l22 {};
+					pma8084_l23: l23 {};
+					pma8084_l24: l24 {};
+					pma8084_l25: l25 {};
+					pma8084_l26: l26 {};
+					pma8084_l27: l27 {};
+
+					pma8084_lvs1: lvs1 {};
+					pma8084_lvs2: lvs2 {};
+					pma8084_lvs3: lvs3 {};
+					pma8084_lvs4: lvs4 {};
+
+					pma8084_5vs1: 5vs1 {};
+				};
 			};
 		};
 	};
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 10/10] regulator: qcom-smd: Add support for PMA8084
  2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
                   ` (8 preceding siblings ...)
  2015-09-23 16:53 ` [Patch v2 09/10] arm: dts: Add support for PMA8084 " Andy Gross
@ 2015-09-23 16:53 ` Andy Gross
  9 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 16:53 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds support and documentation for the PMA8084 regulators
found on APQ8084 platforms.

Signed-off-by: Andy Gross <agross@codeaurora.org>
---
 .../bindings/soc/qcom/qcom,smd-rpm-regulator.txt   |   35 ++++++++
 drivers/regulator/qcom_smd-regulator.c             |   95 ++++++++++++++++++++
 2 files changed, 130 insertions(+)

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
index 05dfc1a..482f520 100644
--- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
@@ -19,6 +19,7 @@ Regulator nodes are identified by their compatible:
 		    "qcom,rpm-pm8841-regulators"
 		    "qcom,rpm-pm8941-regulators"
 		    "qcom,rpm-pm8916-regulators"
+		    "qcom,rpm-pma8084-regulators"
 
 - vdd_s1-supply:
 - vdd_s2-supply:
@@ -64,6 +65,35 @@ Regulator nodes are identified by their compatible:
 	Definition: reference to regulator supplying the input pin, as
 		    described in the data sheet
 
+- vdd_s1-supply:
+- vdd_s2-supply:
+- vdd_s3-supply:
+- vdd_s4-supply:
+- vdd_s5-supply:
+- vdd_s6-supply:
+- vdd_s7-supply:
+- vdd_s8-supply:
+- vdd_s9-supply:
+- vdd_s10-supply:
+- vdd_s11-supply:
+- vdd_s12-supply:
+- vdd_l1_l11-supply:
+- vdd_l2_l3_l4_l27-supply:
+- vdd_l5_l7-supply:
+- vdd_l6_l12_l14_l15_l26-supply:
+- vdd_l8-supply:
+- vdd_l9_l10_l13_l20_l23_l24-supply:
+- vdd_l16_l25-supply:
+- vdd_l17-supply:
+- vdd_l18-supply:
+- vdd_l19-supply:
+- vdd_l21-supply:
+- vdd_l22-supply:
+	Usage: optional (pma8084 only)
+	Value type: <phandle>
+	Definition: reference to regulator supplying the input pin, as
+		    described in the data sheet
+
 The regulator node houses sub-nodes for each regulator within the device. Each
 sub-node is identified using the node's name, with valid values listed for each
 of the pmics below.
@@ -80,6 +110,11 @@ pm8916:
 	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
 	l14, l15, l16, l17, l18
 
+pma8084:
+	s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, l1, l2, l3, l4, l5,
+	l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20,
+	l21, l22, l23, l24, l25, l26, l27, lvs1, lvs2, lvs3, lvs4, 5vs1
+
 The content of each sub-node is defined by the standard binding for regulators -
 see regulator.txt.
 
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 0ba6712..0217561 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -153,6 +153,49 @@ static const struct regulator_ops rpm_switch_ops = {
 	.is_enabled = rpm_reg_is_enabled,
 };
 
+static const struct regulator_desc pma8084_hfsmps = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(375000,  0,  95, 12500),
+		REGULATOR_LINEAR_RANGE(1550000, 96, 158, 25000),
+	},
+	.n_linear_ranges = 2,
+	.n_voltages = 159,
+	.ops = &rpm_smps_ldo_ops,
+};
+
+static const struct regulator_desc pma8084_ftsmps = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(350000,  0, 184, 5000),
+		REGULATOR_LINEAR_RANGE(700000, 185, 339, 10000),
+	},
+	.n_linear_ranges = 2,
+	.n_voltages = 340,
+	.ops = &rpm_smps_ldo_ops,
+};
+
+static const struct regulator_desc pma8084_pldo = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(750000,  0,  30, 25000),
+		REGULATOR_LINEAR_RANGE(1500000, 31, 99, 50000),
+	},
+	.n_linear_ranges = 2,
+	.n_voltages = 100,
+	.ops = &rpm_smps_ldo_ops,
+};
+
+static const struct regulator_desc pma8084_nldo = {
+	.linear_ranges = (struct regulator_linear_range[]) {
+		REGULATOR_LINEAR_RANGE(750000, 0, 63, 12500),
+	},
+	.n_linear_ranges = 1,
+	.n_voltages = 64,
+	.ops = &rpm_smps_ldo_ops,
+};
+
+static const struct regulator_desc pma8084_switch = {
+	.ops = &rpm_switch_ops,
+};
+
 static const struct regulator_desc pm8x41_hfsmps = {
 	.linear_ranges = (struct regulator_linear_range[]) {
 		REGULATOR_LINEAR_RANGE( 375000,  0,  95, 12500),
@@ -335,10 +378,62 @@ static const struct rpm_regulator_data rpm_pm8941_regulators[] = {
 	{}
 };
 
+static const struct rpm_regulator_data rpm_pma8084_regulators[] = {
+	{ "s1", QCOM_SMD_RPM_SMPA, 1, &pma8084_ftsmps, "vdd_s1" },
+	{ "s2", QCOM_SMD_RPM_SMPA, 2, &pma8084_ftsmps, "vdd_s2" },
+	{ "s3", QCOM_SMD_RPM_SMPA, 3, &pma8084_hfsmps, "vdd_s3" },
+	{ "s4", QCOM_SMD_RPM_SMPA, 4, &pma8084_hfsmps, "vdd_s4" },
+	{ "s5", QCOM_SMD_RPM_SMPA, 5, &pma8084_hfsmps, "vdd_s5" },
+	{ "s6", QCOM_SMD_RPM_SMPA, 6, &pma8084_ftsmps, "vdd_s6" },
+	{ "s7", QCOM_SMD_RPM_SMPA, 7, &pma8084_ftsmps, "vdd_s7" },
+	{ "s8", QCOM_SMD_RPM_SMPA, 8, &pma8084_ftsmps, "vdd_s8" },
+	{ "s9", QCOM_SMD_RPM_SMPA, 9, &pma8084_ftsmps, "vdd_s9" },
+	{ "s10", QCOM_SMD_RPM_SMPA, 10, &pma8084_ftsmps, "vdd_s10" },
+	{ "s11", QCOM_SMD_RPM_SMPA, 11, &pma8084_ftsmps, "vdd_s11" },
+	{ "s12", QCOM_SMD_RPM_SMPA, 12, &pma8084_ftsmps, "vdd_s12" },
+
+	{ "l1", QCOM_SMD_RPM_LDOA, 1, &pma8084_nldo, "vdd_l1_l11" },
+	{ "l2", QCOM_SMD_RPM_LDOA, 2, &pma8084_nldo, "vdd_l2_l3_l4_l27" },
+	{ "l3", QCOM_SMD_RPM_LDOA, 3, &pma8084_nldo, "vdd_l2_l3_l4_l27" },
+	{ "l4", QCOM_SMD_RPM_LDOA, 4, &pma8084_nldo, "vdd_l2_l3_l4_l27" },
+	{ "l5", QCOM_SMD_RPM_LDOA, 5, &pma8084_pldo, "vdd_l5_l7" },
+	{ "l6", QCOM_SMD_RPM_LDOA, 6, &pma8084_pldo, "vdd_l6_l12_l14_l15_l26" },
+	{ "l7", QCOM_SMD_RPM_LDOA, 7, &pma8084_pldo, "vdd_l5_l7" },
+	{ "l8", QCOM_SMD_RPM_LDOA, 8, &pma8084_pldo, "vdd_l8" },
+	{ "l9", QCOM_SMD_RPM_LDOA, 9, &pma8084_pldo, "vdd_l9_l10_l13_l20_l23_l24" },
+	{ "l10", QCOM_SMD_RPM_LDOA, 10, &pma8084_pldo, "vdd_l9_l10_l13_l20_l23_l24" },
+	{ "l11", QCOM_SMD_RPM_LDOA, 11, &pma8084_nldo, "vdd_l1_l11" },
+	{ "l12", QCOM_SMD_RPM_LDOA, 12, &pma8084_pldo, "vdd_l6_l12_l14_l15_l26" },
+	{ "l13", QCOM_SMD_RPM_LDOA, 13, &pma8084_pldo, "vdd_l9_l10_l13_l20_l23_l24" },
+	{ "l14", QCOM_SMD_RPM_LDOA, 14, &pma8084_pldo, "vdd_l6_l12_l14_l15_l26" },
+	{ "l15", QCOM_SMD_RPM_LDOA, 15, &pma8084_pldo, "vdd_l6_l12_l14_l15_l26" },
+	{ "l16", QCOM_SMD_RPM_LDOA, 16, &pma8084_pldo, "vdd_l16_l25" },
+	{ "l17", QCOM_SMD_RPM_LDOA, 17, &pma8084_pldo, "vdd_l17" },
+	{ "l18", QCOM_SMD_RPM_LDOA, 18, &pma8084_pldo, "vdd_l18" },
+	{ "l19", QCOM_SMD_RPM_LDOA, 19, &pma8084_pldo, "vdd_l19" },
+	{ "l20", QCOM_SMD_RPM_LDOA, 20, &pma8084_pldo, "vdd_l9_l10_l13_l20_l23_l24" },
+	{ "l21", QCOM_SMD_RPM_LDOA, 21, &pma8084_pldo, "vdd_l21" },
+	{ "l22", QCOM_SMD_RPM_LDOA, 22, &pma8084_pldo, "vdd_l22" },
+	{ "l23", QCOM_SMD_RPM_LDOA, 23, &pma8084_pldo, "vdd_l9_l10_l13_l20_l23_l24" },
+	{ "l24", QCOM_SMD_RPM_LDOA, 24, &pma8084_pldo, "vdd_l9_l10_l13_l20_l23_l24" },
+	{ "l25", QCOM_SMD_RPM_LDOA, 25, &pma8084_pldo, "vdd_l16_l25" },
+	{ "l26", QCOM_SMD_RPM_LDOA, 26, &pma8084_pldo, "vdd_l6_l12_l14_l15_l26" },
+	{ "l27", QCOM_SMD_RPM_LDOA, 27, &pma8084_nldo, "vdd_l2_l3_l4_l27" },
+
+	{ "lvs1", QCOM_SMD_RPM_VSA, 1, &pma8084_switch },
+	{ "lvs2", QCOM_SMD_RPM_VSA, 2, &pma8084_switch },
+	{ "lvs3", QCOM_SMD_RPM_VSA, 3, &pma8084_switch },
+	{ "lvs4", QCOM_SMD_RPM_VSA, 4, &pma8084_switch },
+	{ "5vs1", QCOM_SMD_RPM_VSA, 5, &pma8084_switch },
+
+	{}
+};
+
 static const struct of_device_id rpm_of_match[] = {
 	{ .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_regulators },
 	{ .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators },
 	{ .compatible = "qcom,rpm-pm8941-regulators", .data = &rpm_pm8941_regulators },
+	{ .compatible = "qcom,rpm-pma8084-regulators", .data = &rpm_pma8084_regulators },
 	{}
 };
 MODULE_DEVICE_TABLE(of, rpm_of_match);
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Patch v2 02/10] soc: qcom: smd-rpm: Add existing platform support
  2015-09-23 16:53 ` [Patch v2 02/10] soc: qcom: smd-rpm: Add existing platform support Andy Gross
@ 2015-09-23 17:18   ` Bjorn Andersson
  2015-09-23 18:15     ` Andy Gross
  0 siblings, 1 reply; 15+ messages in thread
From: Bjorn Andersson @ 2015-09-23 17:18 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed 23 Sep 09:53 PDT 2015, Andy Gross wrote:

> This patch adds support for all current Qualcomm platforms which utilize
> RPM over SMD.  This includes both MSM8916 and APQ8084.
> 
> Signed-off-by: Andy Gross <agross@codeaurora.org>
> ---
>  .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt  |    2 ++
>  drivers/soc/qcom/smd-rpm.c                         |    2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
> index 3710dd5..7d05246 100644
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
> @@ -20,6 +20,8 @@ resources.
>  	Value type: <string>
>  	Definition: must be one of:
>  		    "qcom,rpm-msm8974"
> +		    "qcom,rpm-msm8916"
> +		    "qcom,rpm-apq8084"
>  
>  - qcom,smd-channels:
>  	Usage: required
> diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c
> index 1392ccf..455083c 100644
> --- a/drivers/soc/qcom/smd-rpm.c
> +++ b/drivers/soc/qcom/smd-rpm.c
> @@ -212,6 +212,8 @@ static void qcom_smd_rpm_remove(struct qcom_smd_device *sdev)
>  
>  static const struct of_device_id qcom_smd_rpm_of_match[] = {
>  	{ .compatible = "qcom,rpm-msm8974" },
> +	{ .compatible = "qcom,rpm-msm8916" },
> +	{ .compatible = "qcom,rpm-apq8084" },
>  	{}

This is now how the alphabet works, please update the order and add:

Reviewed-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>

Regards,
Bjorn

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Patch v2 06/10] regulators: qcom-smd: Add PM8916 support
  2015-09-23 16:53 ` [Patch v2 06/10] regulators: qcom-smd: Add PM8916 support Andy Gross
@ 2015-09-23 17:23   ` Bjorn Andersson
  2015-09-23 18:14     ` Andy Gross
  0 siblings, 1 reply; 15+ messages in thread
From: Bjorn Andersson @ 2015-09-23 17:23 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed 23 Sep 09:53 PDT 2015, Andy Gross wrote:

> This patch adds support and documentation for the PM8916 regulators
> found on MSM8916 platforms.
> 
> Signed-off-by: Andy Gross <agross@codeaurora.org>
> ---
>  .../bindings/soc/qcom/qcom,smd-rpm-regulator.txt   |   18 ++++++
>  drivers/regulator/qcom_smd-regulator.c             |   64 ++++++++++++++++++++
>  2 files changed, 82 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
> index 7084474..05dfc1a 100644
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
> @@ -18,6 +18,7 @@ Regulator nodes are identified by their compatible:
>  	Definition: must be one of:
>  		    "qcom,rpm-pm8841-regulators"
>  		    "qcom,rpm-pm8941-regulators"
> +		    "qcom,rpm-pm8916-regulators"

Alphabetical please

>  
>  - vdd_s1-supply:
>  - vdd_s2-supply:
> @@ -50,6 +51,19 @@ Regulator nodes are identified by their compatible:
>  	Definition: reference to regulator supplying the input pin, as
>  		    described in the data sheet
>  
> +- vdd_s1-supply:
> +- vdd_s2-supply:
> +- vdd_s3-supply:
> +- vdd_s4-supply:
> +- vdd_l1_l2_l3-supply
> +- vdd_l4_l5_l6-supply
> +- vdd_l7-supply

End these with ':' as well

> +- vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18-supply:
> +	Usage: optional (pm8916 only)
> +	Value type: <phandle>
> +	Definition: reference to regulator supplying the input pin, as
> +		    described in the data sheet
> +
[..]
> diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
[..]
>  static const struct of_device_id rpm_of_match[] = {
> +	{ .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_regulators },

pm8916 > pm8841

>  	{ .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators },
>  	{ .compatible = "qcom,rpm-pm8941-regulators", .data = &rpm_pm8941_regulators },
>  	{}

With these nits:

Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>

Regards,
Bjorn

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Patch v2 06/10] regulators: qcom-smd: Add PM8916 support
  2015-09-23 17:23   ` Bjorn Andersson
@ 2015-09-23 18:14     ` Andy Gross
  0 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 18:14 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 23, 2015 at 10:23:58AM -0700, Bjorn Andersson wrote:
> On Wed 23 Sep 09:53 PDT 2015, Andy Gross wrote:
> 
> > This patch adds support and documentation for the PM8916 regulators
> > found on MSM8916 platforms.
> > 
> > Signed-off-by: Andy Gross <agross@codeaurora.org>
> > ---
> >  .../bindings/soc/qcom/qcom,smd-rpm-regulator.txt   |   18 ++++++
> >  drivers/regulator/qcom_smd-regulator.c             |   64 ++++++++++++++++++++
> >  2 files changed, 82 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
> > index 7084474..05dfc1a 100644
> > --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
> > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt
> > @@ -18,6 +18,7 @@ Regulator nodes are identified by their compatible:
> >  	Definition: must be one of:
> >  		    "qcom,rpm-pm8841-regulators"
> >  		    "qcom,rpm-pm8941-regulators"
> > +		    "qcom,rpm-pm8916-regulators"
> 
> Alphabetical please
> 
> >  
> >  - vdd_s1-supply:
> >  - vdd_s2-supply:
> > @@ -50,6 +51,19 @@ Regulator nodes are identified by their compatible:
> >  	Definition: reference to regulator supplying the input pin, as
> >  		    described in the data sheet
> >  
> > +- vdd_s1-supply:
> > +- vdd_s2-supply:
> > +- vdd_s3-supply:
> > +- vdd_s4-supply:
> > +- vdd_l1_l2_l3-supply
> > +- vdd_l4_l5_l6-supply
> > +- vdd_l7-supply
> 
> End these with ':' as well
> 
> > +- vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18-supply:
> > +	Usage: optional (pm8916 only)
> > +	Value type: <phandle>
> > +	Definition: reference to regulator supplying the input pin, as
> > +		    described in the data sheet
> > +
> [..]
> > diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
> [..]
> >  static const struct of_device_id rpm_of_match[] = {
> > +	{ .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_regulators },
> 
> pm8916 > pm8841
> 
> >  	{ .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators },
> >  	{ .compatible = "qcom,rpm-pm8941-regulators", .data = &rpm_pm8941_regulators },
> >  	{}
> 
> With these nits:
> 
> Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
> 
> Regards,
> Bjorn

I'll fixup this when I apply it.  Thanks!

-- 
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Patch v2 02/10] soc: qcom: smd-rpm: Add existing platform support
  2015-09-23 17:18   ` Bjorn Andersson
@ 2015-09-23 18:15     ` Andy Gross
  0 siblings, 0 replies; 15+ messages in thread
From: Andy Gross @ 2015-09-23 18:15 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 23, 2015 at 10:18:40AM -0700, Bjorn Andersson wrote:
> On Wed 23 Sep 09:53 PDT 2015, Andy Gross wrote:
> 
> > This patch adds support for all current Qualcomm platforms which utilize
> > RPM over SMD.  This includes both MSM8916 and APQ8084.
> > 
> > Signed-off-by: Andy Gross <agross@codeaurora.org>
> > ---
> >  .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt  |    2 ++
> >  drivers/soc/qcom/smd-rpm.c                         |    2 ++
> >  2 files changed, 4 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
> > index 3710dd5..7d05246 100644
> > --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
> > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt
> > @@ -20,6 +20,8 @@ resources.
> >  	Value type: <string>
> >  	Definition: must be one of:
> >  		    "qcom,rpm-msm8974"
> > +		    "qcom,rpm-msm8916"
> > +		    "qcom,rpm-apq8084"
> >  
> >  - qcom,smd-channels:
> >  	Usage: required
> > diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c
> > index 1392ccf..455083c 100644
> > --- a/drivers/soc/qcom/smd-rpm.c
> > +++ b/drivers/soc/qcom/smd-rpm.c
> > @@ -212,6 +212,8 @@ static void qcom_smd_rpm_remove(struct qcom_smd_device *sdev)
> >  
> >  static const struct of_device_id qcom_smd_rpm_of_match[] = {
> >  	{ .compatible = "qcom,rpm-msm8974" },
> > +	{ .compatible = "qcom,rpm-msm8916" },
> > +	{ .compatible = "qcom,rpm-apq8084" },
> >  	{}
> 
> This is now how the alphabet works, please update the order and add:
> 
> Reviewed-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
> 
> Regards,
> Bjorn

I'll fixup before applying.  Thanks!


-- 
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2015-09-23 18:15 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-23 16:53 [Patch v2 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross
2015-09-23 16:53 ` [Patch v2 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross
2015-09-23 16:53 ` [Patch v2 02/10] soc: qcom: smd-rpm: Add existing platform support Andy Gross
2015-09-23 17:18   ` Bjorn Andersson
2015-09-23 18:15     ` Andy Gross
2015-09-23 16:53 ` [Patch v2 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes Andy Gross
2015-09-23 16:53 ` [Patch v2 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 Andy Gross
2015-09-23 16:53 ` [Patch v2 05/10] arm64: dts: Add PM8916 " Andy Gross
2015-09-23 16:53 ` [Patch v2 06/10] regulators: qcom-smd: Add PM8916 support Andy Gross
2015-09-23 17:23   ` Bjorn Andersson
2015-09-23 18:14     ` Andy Gross
2015-09-23 16:53 ` [Patch v2 07/10] arm: dts: Add APQ8084 SMEM nodes Andy Gross
2015-09-23 16:53 ` [Patch v2 08/10] arm: dts: Add RPM/SMD support on APQ8084 Andy Gross
2015-09-23 16:53 ` [Patch v2 09/10] arm: dts: Add support for PMA8084 " Andy Gross
2015-09-23 16:53 ` [Patch v2 10/10] regulator: qcom-smd: Add support for PMA8084 Andy Gross

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).