* [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms
@ 2015-09-24 19:18 Andy Gross
2015-09-24 19:18 ` [Patch v3 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross
` (10 more replies)
0 siblings, 11 replies; 20+ messages in thread
From: Andy Gross @ 2015-09-24 19:18 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 v2:
- Fixed some missed review comments
- Corrected the SMD RPM example binding indentation
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
.../qcom,smd-rpm-regulator.txt} | 83 +++++++---
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt | 59 ++++++++
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 +
6 files changed, 468 insertions(+), 22 deletions(-)
rename Documentation/devicetree/bindings/soc/{qcom,smd-rpm.txt => qcom/qcom,smd-rpm-regulator.txt} (54%)
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] 20+ messages in thread* [Patch v3 01/10] soc: qcom: documentation: Update SMD/RPM Docs 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:19 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 02/10] soc: qcom: smd-rpm: Add existing platform support Andy Gross ` (9 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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> --- .../qcom,smd-rpm-regulator.txt} | 30 +++-------- .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt | 57 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 22 deletions(-) rename Documentation/devicetree/bindings/soc/{qcom,smd-rpm.txt => qcom/qcom,smd-rpm-regulator.txt} (75%) 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/qcom,smd-rpm-regulator.txt similarity index 75% rename from Documentation/devicetree/bindings/soc/qcom,smd-rpm.txt rename to Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt index e27f5c4..7084474 100644 --- a/Documentation/devicetree/bindings/soc/qcom,smd-rpm.txt +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt @@ -1,27 +1,14 @@ -Qualcomm Resource Power Manager (RPM) over SMD +QCOM SMD RPM REGULATOR -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 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. -- compatible: - Usage: required - Value type: <string> - Definition: must be one of: - "qcom,rpm-msm8974" +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. -- 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 Regulator nodes are identified by their compatible: @@ -114,4 +101,3 @@ see regulator.txt. }; }; }; - 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..003bedd --- /dev/null +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt @@ -0,0 +1,57 @@ +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: + + soc { + 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] 20+ messages in thread
* [Patch v3 01/10] soc: qcom: documentation: Update SMD/RPM Docs 2015-09-24 19:18 ` [Patch v3 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross @ 2015-09-25 3:19 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:19 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > 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. > Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Regards, Bjorn ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Patch v3 02/10] soc: qcom: smd-rpm: Add existing platform support 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross 2015-09-24 19:18 ` [Patch v3 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-24 19:18 ` [Patch v3 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes Andy Gross ` (8 subsequent siblings) 10 siblings, 0 replies; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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. Reviewed-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> 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 003bedd..18d4d04 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt @@ -19,6 +19,8 @@ resources. Usage: required Value type: <string> Definition: must be one of: + "qcom,rpm-apq8084" + "qcom,rpm-msm8916" "qcom,rpm-msm8974" - qcom,smd-channels: diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c index 1392ccf..e8450f3 100644 --- a/drivers/soc/qcom/smd-rpm.c +++ b/drivers/soc/qcom/smd-rpm.c @@ -211,6 +211,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-apq8084" }, + { .compatible = "qcom,rpm-msm8916" }, { .compatible = "qcom,rpm-msm8974" }, {} }; -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [Patch v3 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross 2015-09-24 19:18 ` [Patch v3 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross 2015-09-24 19:18 ` [Patch v3 02/10] soc: qcom: smd-rpm: Add existing platform support Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:20 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 Andy Gross ` (7 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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] 20+ messages in thread
* [Patch v3 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes 2015-09-24 19:18 ` [Patch v3 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes Andy Gross @ 2015-09-25 3:20 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:20 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > This patch adds the nodes necessary to support the SMEM driver on MSM8916 > platforms. > Looks reasonable, I've not reviewed the addresses of things, but I presume you have :) Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Reards, Bjorn ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Patch v3 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (2 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:21 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 05/10] arm64: dts: Add PM8916 " Andy Gross ` (6 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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] 20+ messages in thread
* [Patch v3 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 2015-09-24 19:18 ` [Patch v3 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 Andy Gross @ 2015-09-25 3:21 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:21 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > Add support for the SMD and RPM devices found on MSM8916 platforms. > Looks reasonable Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Regards, Bjorn ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Patch v3 05/10] arm64: dts: Add PM8916 support on MSM8916 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (3 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:22 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 06/10] regulators: qcom-smd: Add PM8916 support Andy Gross ` (5 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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] 20+ messages in thread
* [Patch v3 05/10] arm64: dts: Add PM8916 support on MSM8916 2015-09-24 19:18 ` [Patch v3 05/10] arm64: dts: Add PM8916 " Andy Gross @ 2015-09-25 3:22 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:22 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > This patch adds the PM8916 regulator nodes found on MSM8916 platforms. > Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Regards, Bjorn ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Patch v3 06/10] regulators: qcom-smd: Add PM8916 support 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (4 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 05/10] arm64: dts: Add PM8916 " Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-24 19:18 ` [Patch v3 07/10] arm: dts: Add APQ8084 SMEM nodes Andy Gross ` (4 subsequent siblings) 10 siblings, 0 replies; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 UTC (permalink / raw) To: linux-arm-kernel This patch adds support and documentation for the PM8916 regulators found on MSM8916 platforms. Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> 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..e74ffe1 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm-regulator.txt @@ -17,6 +17,7 @@ Regulator nodes are identified by their compatible: Value type: <string> Definition: must be one of: "qcom,rpm-pm8841-regulators" + "qcom,rpm-pm8916-regulators" "qcom,rpm-pm8941-regulators" - vdd_s1-supply: @@ -35,6 +36,19 @@ Regulator nodes are identified by their compatible: - 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 + +- vdd_s1-supply: +- vdd_s2-supply: +- vdd_s3-supply: - vdd_l1_l3-supply: - vdd_l2_lvs1_2_3-supply: - vdd_l4_l11-supply: @@ -57,6 +71,10 @@ of the pmics below. pm8841: s1, s2, s3, s4, s5, s6, s7, s8 +pm8916: + s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, + l14, l15, l16, l17, l18 + 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, diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c index 9c6167d..e9b07cc3 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; @@ -231,6 +268,32 @@ static const struct rpm_regulator_data rpm_pm8841_regulators[] = { {} }; +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_pm8941_regulators[] = { { "s1", QCOM_SMD_RPM_SMPA, 1, &pm8x41_hfsmps, "vdd_s1" }, { "s2", QCOM_SMD_RPM_SMPA, 2, &pm8x41_hfsmps, "vdd_s2" }, @@ -274,6 +337,7 @@ static const struct rpm_regulator_data rpm_pm8941_regulators[] = { static const struct of_device_id rpm_of_match[] = { { .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators }, + { .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_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] 20+ messages in thread
* [Patch v3 07/10] arm: dts: Add APQ8084 SMEM nodes 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (5 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 06/10] regulators: qcom-smd: Add PM8916 support Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:23 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 08/10] arm: dts: Add RPM/SMD support on APQ8084 Andy Gross ` (3 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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] 20+ messages in thread
* [Patch v3 07/10] arm: dts: Add APQ8084 SMEM nodes 2015-09-24 19:18 ` [Patch v3 07/10] arm: dts: Add APQ8084 SMEM nodes Andy Gross @ 2015-09-25 3:23 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:23 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > This patch adds all the required nodes to support SMEM on APQ8084 > Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Regards, Bjorn ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Patch v3 08/10] arm: dts: Add RPM/SMD support on APQ8084 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (6 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 07/10] arm: dts: Add APQ8084 SMEM nodes Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:24 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 09/10] arm: dts: Add support for PMA8084 " Andy Gross ` (2 subsequent siblings) 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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] 20+ messages in thread
* [Patch v3 08/10] arm: dts: Add RPM/SMD support on APQ8084 2015-09-24 19:18 ` [Patch v3 08/10] arm: dts: Add RPM/SMD support on APQ8084 Andy Gross @ 2015-09-25 3:24 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:24 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > This patch adds support for RPM and SMD nodes that are present on APQ8084 > platforms. > Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Regards, Bjorn ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Patch v3 09/10] arm: dts: Add support for PMA8084 on APQ8084 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (7 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 08/10] arm: dts: Add RPM/SMD support on APQ8084 Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:24 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 10/10] regulator: qcom-smd: Add support for PMA8084 Andy Gross 2015-09-25 18:01 ` [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Mark Brown 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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] 20+ messages in thread
* [Patch v3 09/10] arm: dts: Add support for PMA8084 on APQ8084 2015-09-24 19:18 ` [Patch v3 09/10] arm: dts: Add support for PMA8084 " Andy Gross @ 2015-09-25 3:24 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:24 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > This patch adds support for the PMA8084 regulators found on APQ8084 > platforms. > Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Regards, Bjorn ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Patch v3 10/10] regulator: qcom-smd: Add support for PMA8084 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (8 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 09/10] arm: dts: Add support for PMA8084 " Andy Gross @ 2015-09-24 19:18 ` Andy Gross 2015-09-25 3:28 ` Bjorn Andersson 2015-09-25 18:01 ` [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Mark Brown 10 siblings, 1 reply; 20+ messages in thread From: Andy Gross @ 2015-09-24 19:18 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 e74ffe1..22b3506 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-pm8916-regulators" "qcom,rpm-pm8941-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 @@ pm8941: l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, lvs3, 5vs1, 5vs2 +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 e9b07cc3..24f4be7 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-pm8841-regulators", .data = &rpm_pm8841_regulators }, { .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_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] 20+ messages in thread
* [Patch v3 10/10] regulator: qcom-smd: Add support for PMA8084 2015-09-24 19:18 ` [Patch v3 10/10] regulator: qcom-smd: Add support for PMA8084 Andy Gross @ 2015-09-25 3:28 ` Bjorn Andersson 0 siblings, 0 replies; 20+ messages in thread From: Bjorn Andersson @ 2015-09-25 3:28 UTC (permalink / raw) To: linux-arm-kernel On Thu 24 Sep 12:18 PDT 2015, Andy Gross wrote: > This patch adds support and documentation for the PMA8084 regulators > found on APQ8084 platforms. > Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Regards, Bjorn > 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 e74ffe1..22b3506 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-pm8916-regulators" > "qcom,rpm-pm8941-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 @@ pm8941: > l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, > lvs3, 5vs1, 5vs2 > > +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 e9b07cc3..24f4be7 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-pm8841-regulators", .data = &rpm_pm8841_regulators }, > { .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_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 [flat|nested] 20+ messages in thread
* [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross ` (9 preceding siblings ...) 2015-09-24 19:18 ` [Patch v3 10/10] regulator: qcom-smd: Add support for PMA8084 Andy Gross @ 2015-09-25 18:01 ` Mark Brown 10 siblings, 0 replies; 20+ messages in thread From: Mark Brown @ 2015-09-25 18:01 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 24, 2015 at 02:18:49PM -0500, Andy Gross wrote: > 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. The regulator patches are fine but depend on the first patch moving the documentation around - I don't know how you want to handle this? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150925/a60da526/attachment.sig> ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2015-09-25 18:01 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-09-24 19:18 [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Andy Gross 2015-09-24 19:18 ` [Patch v3 01/10] soc: qcom: documentation: Update SMD/RPM Docs Andy Gross 2015-09-25 3:19 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 02/10] soc: qcom: smd-rpm: Add existing platform support Andy Gross 2015-09-24 19:18 ` [Patch v3 03/10] arm64: dts: qcom: Add MSM8916 SMEM nodes Andy Gross 2015-09-25 3:20 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 04/10] arm64: dts: qcom: Add RPM/SMD support on MSM8916 Andy Gross 2015-09-25 3:21 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 05/10] arm64: dts: Add PM8916 " Andy Gross 2015-09-25 3:22 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 06/10] regulators: qcom-smd: Add PM8916 support Andy Gross 2015-09-24 19:18 ` [Patch v3 07/10] arm: dts: Add APQ8084 SMEM nodes Andy Gross 2015-09-25 3:23 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 08/10] arm: dts: Add RPM/SMD support on APQ8084 Andy Gross 2015-09-25 3:24 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 09/10] arm: dts: Add support for PMA8084 " Andy Gross 2015-09-25 3:24 ` Bjorn Andersson 2015-09-24 19:18 ` [Patch v3 10/10] regulator: qcom-smd: Add support for PMA8084 Andy Gross 2015-09-25 3:28 ` Bjorn Andersson 2015-09-25 18:01 ` [Patch v3 00/10] Add RPM/SMD Support for QCOM platforms Mark Brown
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).