* [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC @ 2020-06-19 7:05 Kathiravan T 2020-06-19 7:05 ` [PATCH 1/6] dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver Kathiravan T ` (5 more replies) 0 siblings, 6 replies; 9+ messages in thread From: Kathiravan T @ 2020-06-19 7:05 UTC (permalink / raw) To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, kathirav, linux-arm-msm, linux-kernel, devicetree Cc: sivaprak IPQ6018 SoC uses the PMIC MP5496. SMPA2 and LDOA2 regulator of MP5496 controls the APSS and SDCC voltage scaling respectively. Add support for the same. Kathiravan T (6): dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver dt-bindings: soc: qcom: Add IPQ6018 compatible soc: qcom: smd-rpm: Add IPQ6018 compatible dt-bindings: regulator: add YAML schema for QCOM SMD-RPM regulator dt-bindings: add MP5496 regulator compatible regulator: qcom_smd: Add MP5496 regulators .../bindings/regulator/qcom,smd-rpm-regulator.txt | 320 --------------------- .../bindings/regulator/qcom,smd-rpm-regulator.yaml | 106 +++++++ .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt | 62 ---- .../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 92 ++++++ drivers/regulator/qcom_smd-regulator.c | 34 +++ drivers/soc/qcom/smd-rpm.c | 1 + 6 files changed, 233 insertions(+), 382 deletions(-) delete mode 100644 Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt create mode 100644 Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/6] dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver 2020-06-19 7:05 [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC Kathiravan T @ 2020-06-19 7:05 ` Kathiravan T 2020-07-15 19:14 ` Rob Herring 2020-06-19 7:05 ` [PATCH 2/6] dt-bindings: soc: qcom: Add IPQ6018 compatible Kathiravan T ` (4 subsequent siblings) 5 siblings, 1 reply; 9+ messages in thread From: Kathiravan T @ 2020-06-19 7:05 UTC (permalink / raw) To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, kathirav, linux-arm-msm, linux-kernel, devicetree Cc: sivaprak Add YAML schema for the devitree properties used in the SMD-RPM driver. Signed-off-by: Kathiravan T <kathirav@codeaurora.org> --- .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt | 62 --------------- .../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 91 ++++++++++++++++++++++ 2 files changed, 91 insertions(+), 62 deletions(-) delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt deleted file mode 100644 index 616fddc..00000000 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt +++ /dev/null @@ -1,62 +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. - -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-apq8084" - "qcom,rpm-msm8916" - "qcom,rpm-msm8974" - "qcom,rpm-msm8976" - "qcom,rpm-msm8998" - "qcom,rpm-sdm660" - "qcom,rpm-qcs404" - -- qcom,smd-channels: - Usage: required - Value type: <string> - Definition: must be "rpm_requests" - -Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt -for information on the regulator subnodes that can exist under the rpm_requests. - -Example: - - soc { - apcs: syscon@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"; - - ... - }; - }; - }; diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml new file mode 100644 index 00000000..5b33def --- /dev/null +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml @@ -0,0 +1,91 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/qcom/qcom,smd-rpm.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: Qualcomm Resource Power Manager (RPM) over SMD + +description: | + 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. + + The RPM exposes resources to its subnodes. The rpm_requests node must be + present and this subnode may contain children that designate regulator + resources. + + Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt + for information on the regulator subnodes that can exist under the + rpm_requests. + +maintainers: + - Kathiravan T <kathirav@codeaurora.org> + +properties: + compatible: + enum: + - qcom,rpm-apq8084 + - qcom,rpm-msm8916 + - qcom,rpm-msm8974 + - qcom,rpm-msm8976 + - qcom,rpm-msm8996 + - qcom,rpm-msm8998 + - qcom,rpm-sdm660 + - qcom,rpm-qcs404 + + qcom,smd-channels: + $ref: /schemas/types.yaml#/definitions/string-array + description: Channel name used for the RPM communication + items: + - const: rpm_requests + +if: + properties: + compatible: + contains: + enum: + - qcom,rpm-apq8084 + - qcom,rpm-msm8916 + - qcom,rpm-msm8974 +then: + required: + - qcom,smd-channels + +required: + - compatible + +additionalProperties: false + +examples: + - | + soc { + #address-cells = <1>; + #size-cells = <1>; + apcs: syscon@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"; + + /* Regulator nodes to follow */ + }; + }; + }; +... -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/6] dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver 2020-06-19 7:05 ` [PATCH 1/6] dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver Kathiravan T @ 2020-07-15 19:14 ` Rob Herring 0 siblings, 0 replies; 9+ messages in thread From: Rob Herring @ 2020-07-15 19:14 UTC (permalink / raw) To: Kathiravan T Cc: agross, bjorn.andersson, lgirdwood, broonie, linux-arm-msm, linux-kernel, devicetree, sivaprak On Fri, Jun 19, 2020 at 12:35:02PM +0530, Kathiravan T wrote: > Add YAML schema for the devitree properties used in the SMD-RPM driver. This is converting, not adding... > > Signed-off-by: Kathiravan T <kathirav@codeaurora.org> > --- > .../devicetree/bindings/soc/qcom/qcom,smd-rpm.txt | 62 --------------- > .../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 91 ++++++++++++++++++++++ > 2 files changed, 91 insertions(+), 62 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml > new file mode 100644 > index 00000000..5b33def > --- /dev/null > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml > @@ -0,0 +1,91 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/soc/qcom/qcom,smd-rpm.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: Qualcomm Resource Power Manager (RPM) over SMD > + > +description: | > + 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. > + > + The RPM exposes resources to its subnodes. The rpm_requests node must be > + present and this subnode may contain children that designate regulator > + resources. > + > + Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt > + for information on the regulator subnodes that can exist under the > + rpm_requests. > + > +maintainers: > + - Kathiravan T <kathirav@codeaurora.org> > + > +properties: > + compatible: > + enum: > + - qcom,rpm-apq8084 > + - qcom,rpm-msm8916 > + - qcom,rpm-msm8974 > + - qcom,rpm-msm8976 > + - qcom,rpm-msm8996 > + - qcom,rpm-msm8998 > + - qcom,rpm-sdm660 > + - qcom,rpm-qcs404 > + > + qcom,smd-channels: > + $ref: /schemas/types.yaml#/definitions/string-array > + description: Channel name used for the RPM communication > + items: > + - const: rpm_requests > + > +if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,rpm-apq8084 > + - qcom,rpm-msm8916 > + - qcom,rpm-msm8974 > +then: > + required: > + - qcom,smd-channels > + > +required: > + - compatible > + > +additionalProperties: false > + > +examples: > + - | > + soc { > + #address-cells = <1>; > + #size-cells = <1>; > + apcs: syscon@f9011000 { > + compatible = "syscon"; > + reg = <0xf9011000 0x1000>; > + }; > + }; Drop this node. The use of 'syscon' alone is not valid and will now generate warnings with what I have queued for 5.9. > + 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"; > + > + /* Regulator nodes to follow */ > + }; > + }; > + }; > +... > -- > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/6] dt-bindings: soc: qcom: Add IPQ6018 compatible 2020-06-19 7:05 [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC Kathiravan T 2020-06-19 7:05 ` [PATCH 1/6] dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver Kathiravan T @ 2020-06-19 7:05 ` Kathiravan T 2020-06-19 7:05 ` [PATCH 3/6] soc: qcom: smd-rpm: " Kathiravan T ` (3 subsequent siblings) 5 siblings, 0 replies; 9+ messages in thread From: Kathiravan T @ 2020-06-19 7:05 UTC (permalink / raw) To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, kathirav, linux-arm-msm, linux-kernel, devicetree Cc: sivaprak This patch adds the dt-binding for the rpm on the Qualcomm IPQ6018 platform. Signed-off-by: Kathiravan T <kathirav@codeaurora.org> --- Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml index 5b33def..06aa6b1 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml @@ -31,6 +31,7 @@ properties: compatible: enum: - qcom,rpm-apq8084 + - qcom,rpm-ipq6018 - qcom,rpm-msm8916 - qcom,rpm-msm8974 - qcom,rpm-msm8976 -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/6] soc: qcom: smd-rpm: Add IPQ6018 compatible 2020-06-19 7:05 [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC Kathiravan T 2020-06-19 7:05 ` [PATCH 1/6] dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver Kathiravan T 2020-06-19 7:05 ` [PATCH 2/6] dt-bindings: soc: qcom: Add IPQ6018 compatible Kathiravan T @ 2020-06-19 7:05 ` Kathiravan T 2020-06-19 7:05 ` [PATCH 4/6] dt-bindings: regulator: add YAML schema for QCOM SMD-RPM regulator Kathiravan T ` (2 subsequent siblings) 5 siblings, 0 replies; 9+ messages in thread From: Kathiravan T @ 2020-06-19 7:05 UTC (permalink / raw) To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, kathirav, linux-arm-msm, linux-kernel, devicetree Cc: sivaprak This patch adds a compatible for the rpm on the Qualcomm IPQ6018 platform. Signed-off-by: Kathiravan T <kathirav@codeaurora.org> --- drivers/soc/qcom/smd-rpm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c index 005dd30..1a5226a 100644 --- a/drivers/soc/qcom/smd-rpm.c +++ b/drivers/soc/qcom/smd-rpm.c @@ -230,6 +230,7 @@ static void qcom_smd_rpm_remove(struct rpmsg_device *rpdev) static const struct of_device_id qcom_smd_rpm_of_match[] = { { .compatible = "qcom,rpm-apq8084" }, + { .compatible = "qcom,rpm-ipq6018" }, { .compatible = "qcom,rpm-msm8916" }, { .compatible = "qcom,rpm-msm8974" }, { .compatible = "qcom,rpm-msm8976" }, -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/6] dt-bindings: regulator: add YAML schema for QCOM SMD-RPM regulator 2020-06-19 7:05 [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC Kathiravan T ` (2 preceding siblings ...) 2020-06-19 7:05 ` [PATCH 3/6] soc: qcom: smd-rpm: " Kathiravan T @ 2020-06-19 7:05 ` Kathiravan T 2020-06-19 10:41 ` Mark Brown 2020-06-19 7:05 ` [PATCH 5/6] dt-bindings: add MP5496 regulator compatible Kathiravan T 2020-06-19 7:05 ` [PATCH 6/6] regulator: qcom_smd: Add MP5496 regulators Kathiravan T 5 siblings, 1 reply; 9+ messages in thread From: Kathiravan T @ 2020-06-19 7:05 UTC (permalink / raw) To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, kathirav, linux-arm-msm, linux-kernel, devicetree Cc: sivaprak Add the YAML schema for the devicetree properties used in the QCOM SMD-RPM driver. Signed-off-by: Kathiravan T <kathirav@codeaurora.org> --- .../bindings/regulator/qcom,smd-rpm-regulator.txt | 320 --------------------- .../bindings/regulator/qcom,smd-rpm-regulator.yaml | 105 +++++++ 2 files changed, 105 insertions(+), 320 deletions(-) delete mode 100644 Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt create mode 100644 Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml diff --git a/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt b/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt deleted file mode 100644 index dea4384..00000000 --- a/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt +++ /dev/null @@ -1,320 +0,0 @@ -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 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt for -information pertaining to the SMD node. - -Please refer to Documentation/devicetree/bindings/soc/qcom/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-pm8916-regulators" - "qcom,rpm-pm8941-regulators" - "qcom,rpm-pm8950-regulators" - "qcom,rpm-pm8994-regulators" - "qcom,rpm-pm8998-regulators" - "qcom,rpm-pma8084-regulators" - "qcom,rpm-pmi8994-regulators" - "qcom,rpm-pmi8998-regulators" - "qcom,rpm-pms405-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_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_s4-supply: -- vdd_s4-supply: -- vdd_s5-supply: -- vdd_s6-supply: -- vdd_l1_l19-supply: -- vdd_l2_l23-supply: -- vdd_l3-supply: -- vdd_l4_l5_l6_l7_l16-supply: -- vdd_l8_l11_l12_l17_l22-supply: -- vdd_l9_l10_l13_l14_l15_l18-supply: -- vdd_l20-supply: -- vdd_l21-supply: - Usage: optional (pm8950 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 - -- 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-supply: -- vdd_l2_l26_l28-supply: -- vdd_l3_l11-supply: -- vdd_l4_l27_l31-supply: -- vdd_l5_l7-supply: -- vdd_l6_l12_l32-supply: -- vdd_l5_l7-supply: -- vdd_l8_l16_l30-supply: -- vdd_l9_l10_l18_l22-supply: -- vdd_l9_l10_l18_l22-supply: -- vdd_l3_l11-supply: -- vdd_l6_l12_l32-supply: -- vdd_l13_l19_l23_l24-supply: -- vdd_l14_l15-supply: -- vdd_l14_l15-supply: -- vdd_l8_l16_l30-supply: -- vdd_l17_l29-supply: -- vdd_l9_l10_l18_l22-supply: -- vdd_l13_l19_l23_l24-supply: -- vdd_l20_l21-supply: -- vdd_l20_l21-supply: -- vdd_l9_l10_l18_l22-supply: -- vdd_l13_l19_l23_l24-supply: -- vdd_l13_l19_l23_l24-supply: -- vdd_l25-supply: -- vdd_l2_l26_l28-supply: -- vdd_l4_l27_l31-supply: -- vdd_l2_l26_l28-supply: -- vdd_l17_l29-supply: -- vdd_l8_l16_l30-supply: -- vdd_l4_l27_l31-supply: -- vdd_l6_l12_l32-supply: -- vdd_lvs1_2-supply: - Usage: optional (pm8994 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_bst_byp-supply: - Usage: optional (pmi8994 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_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_s13-supply: -- vdd_l1_l27-supply: -- vdd_l20_l24-supply: -- vdd_l26-supply: -- vdd_l2_l8_l17-supply: -- vdd_l3_l11-supply: -- vdd_l4_l5-supply: -- vdd_l6-supply: -- vdd_l7_l12_l14_l15-supply: -- vdd_l9-supply: -- vdd_l10_l23_l25-supply: -- vdd_l13_l19_l21-supply: -- vdd_l16_l28-supply: -- vdd_l18_l22-supply: -- vdd_lvs1_lvs2-supply: - Usage: optional (pmi8998 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_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 - -- vdd_bob-supply: - Usage: optional (pmi8998 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_s4-supply: -- vdd_s5-supply: -- vdd_l1_l2-supply: -- vdd_l3_l8-supply: -- vdd_l4-supply: -- vdd_l5_l6-supply: -- vdd_l7-supply: -- vdd_l3_l8-supply: -- vdd_l9-supply: -- vdd_l10_l11_l12_l13-supply: - Usage: optional (pms405 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 - -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, - lvs3, 5vs1, 5vs2 - -pm8994: - 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, l28, l29, l30, l31, l32, lvs1, lvs2 - -pm8998: - s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, 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, l28, lvs1, lvs2 - -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 - -pmi8994: - s1, s2, s3, boost-bypass - -pmi8998: - bob - -pms405: - s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, - l13 - -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/regulator/qcom,smd-rpm-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml new file mode 100644 index 00000000..cb0bd7b --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml @@ -0,0 +1,105 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/qcom,smd-rpm-regulator.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: QCOM SMD RPM REGULATOR + +description: + 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 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt for + information pertaining to the SMD node. + + Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml + for information regarding the RPM node. + + 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. + + For pm8841, s1, s2, s3, s4, s5, s6, s7, s8 + + For pm8916, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, + l12, l13, l14, l15, l16, l17, l18 + + For 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 + + For pm8994, 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, l28, l29, l30, l31, l32, lvs1, lvs2 + + For pm8998, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, 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, l28, lvs1, lvs2 + + For 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 + + For pmi8994, s1, s2, s3, boost-bypass + + For pmi8998, bob + + For pms405, s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, + l12, l13 + +maintainers: + - Kathiravan T <kathirav@codeaurora.org> + +properties: + compatible: + enum: + - qcom,rpm-pm8841-regulators + - qcom,rpm-pm8916-regulators + - qcom,rpm-pm8941-regulators + - qcom,rpm-pm8950-regulators + - qcom,rpm-pm8994-regulators + - qcom,rpm-pm8998-regulators + - qcom,rpm-pma8084-regulators + - qcom,rpm-pmi8994-regulators + - qcom,rpm-pmi8998-regulators + - qcom,rpm-pms405-regulators + +patternProperties: + ".*-supply$": + description: Input supply phandle(s) for this node + + "^((s|l|lvs|5vs)[0-9]*)|(boost-bypass)|(bob)$": + description: List of regulators and its properties + allOf: + - $ref: regulator.yaml# + +additionalProperties: false + +required: + - compatible + +examples: + - | + 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>; + }; + }; +... -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 4/6] dt-bindings: regulator: add YAML schema for QCOM SMD-RPM regulator 2020-06-19 7:05 ` [PATCH 4/6] dt-bindings: regulator: add YAML schema for QCOM SMD-RPM regulator Kathiravan T @ 2020-06-19 10:41 ` Mark Brown 0 siblings, 0 replies; 9+ messages in thread From: Mark Brown @ 2020-06-19 10:41 UTC (permalink / raw) To: Kathiravan T Cc: agross, bjorn.andersson, lgirdwood, robh+dt, linux-arm-msm, linux-kernel, devicetree, sivaprak [-- Attachment #1: Type: text/plain, Size: 390 bytes --] On Fri, Jun 19, 2020 at 12:35:05PM +0530, Kathiravan T wrote: > Add the YAML schema for the devicetree properties used in the QCOM > SMD-RPM driver. Please make YAML binding conversions the last thing you do in any series that includes them, they often require quite a few revisions and there is often quite a backlog in YAML binding reviews which means that everything else gets delayed. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 5/6] dt-bindings: add MP5496 regulator compatible 2020-06-19 7:05 [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC Kathiravan T ` (3 preceding siblings ...) 2020-06-19 7:05 ` [PATCH 4/6] dt-bindings: regulator: add YAML schema for QCOM SMD-RPM regulator Kathiravan T @ 2020-06-19 7:05 ` Kathiravan T 2020-06-19 7:05 ` [PATCH 6/6] regulator: qcom_smd: Add MP5496 regulators Kathiravan T 5 siblings, 0 replies; 9+ messages in thread From: Kathiravan T @ 2020-06-19 7:05 UTC (permalink / raw) To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, kathirav, linux-arm-msm, linux-kernel, devicetree Cc: sivaprak IPQ6018 uses the PMIC MP5496. Add the binding for the same. Signed-off-by: Kathiravan T <kathirav@codeaurora.org> --- Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml index cb0bd7b..8d212bd 100644 --- a/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml @@ -56,6 +56,7 @@ maintainers: properties: compatible: enum: + - qcom,rpm-mp5496-regulators - qcom,rpm-pm8841-regulators - qcom,rpm-pm8916-regulators - qcom,rpm-pm8941-regulators -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 6/6] regulator: qcom_smd: Add MP5496 regulators 2020-06-19 7:05 [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC Kathiravan T ` (4 preceding siblings ...) 2020-06-19 7:05 ` [PATCH 5/6] dt-bindings: add MP5496 regulator compatible Kathiravan T @ 2020-06-19 7:05 ` Kathiravan T 5 siblings, 0 replies; 9+ messages in thread From: Kathiravan T @ 2020-06-19 7:05 UTC (permalink / raw) To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, kathirav, linux-arm-msm, linux-kernel, devicetree Cc: sivaprak IPQ6018 SoC uses the PMIC MP5496. SMPA2 and LDOA2 regulator controls the APSS and SDCC voltage scaling respectively. Add support for the same. Signed-off-by: Kathiravan T <kathirav@codeaurora.org> --- drivers/regulator/qcom_smd-regulator.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c index 53a64d8..e6d137a 100644 --- a/drivers/regulator/qcom_smd-regulator.c +++ b/drivers/regulator/qcom_smd-regulator.c @@ -198,6 +198,15 @@ static const struct regulator_ops rpm_bob_ops = { .set_voltage = rpm_reg_set_voltage, }; +static const struct regulator_ops rpm_mp5496_ops = { + .enable = rpm_reg_enable, + .disable = rpm_reg_disable, + .is_enabled = rpm_reg_is_enabled, + .list_voltage = regulator_list_voltage_linear_range, + + .set_voltage = rpm_reg_set_voltage, +}; + static const struct regulator_desc pma8084_hfsmps = { .linear_ranges = (struct linear_range[]) { REGULATOR_LINEAR_RANGE(375000, 0, 95, 12500), @@ -595,6 +604,24 @@ static const struct regulator_desc pms405_pldo600 = { .ops = &rpm_smps_ldo_ops, }; +static const struct regulator_desc mp5496_smpa2 = { + .linear_ranges = (struct linear_range[]) { + REGULATOR_LINEAR_RANGE(725000, 0, 27, 12500), + }, + .n_linear_ranges = 1, + .n_voltages = 28, + .ops = &rpm_mp5496_ops, +}; + +static const struct regulator_desc mp5496_ldoa2 = { + .linear_ranges = (struct linear_range[]) { + REGULATOR_LINEAR_RANGE(1800000, 0, 60, 25000), + }, + .n_linear_ranges = 1, + .n_voltages = 61, + .ops = &rpm_mp5496_ops, +}; + struct rpm_regulator_data { const char *name; u32 type; @@ -603,6 +630,12 @@ struct rpm_regulator_data { const char *supply; }; +static const struct rpm_regulator_data rpm_mp5496_regulators[] = { + { "s2", QCOM_SMD_RPM_SMPA, 2, &mp5496_smpa2, "s2" }, + { "l2", QCOM_SMD_RPM_LDOA, 2, &mp5496_ldoa2, "l2" }, + {} +}; + 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" }, @@ -901,6 +934,7 @@ static const struct rpm_regulator_data rpm_pms405_regulators[] = { }; static const struct of_device_id rpm_of_match[] = { + { .compatible = "qcom,rpm-mp5496-regulators", .data = &rpm_mp5496_regulators }, { .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 }, -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-07-15 19:14 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-06-19 7:05 [PATCH 0/6] Add frequency and voltage scaling support for IPQ6018 SoC Kathiravan T 2020-06-19 7:05 ` [PATCH 1/6] dt-bindings: soc: qcom: add YAML schema for SMD-RPM driver Kathiravan T 2020-07-15 19:14 ` Rob Herring 2020-06-19 7:05 ` [PATCH 2/6] dt-bindings: soc: qcom: Add IPQ6018 compatible Kathiravan T 2020-06-19 7:05 ` [PATCH 3/6] soc: qcom: smd-rpm: " Kathiravan T 2020-06-19 7:05 ` [PATCH 4/6] dt-bindings: regulator: add YAML schema for QCOM SMD-RPM regulator Kathiravan T 2020-06-19 10:41 ` Mark Brown 2020-06-19 7:05 ` [PATCH 5/6] dt-bindings: add MP5496 regulator compatible Kathiravan T 2020-06-19 7:05 ` [PATCH 6/6] regulator: qcom_smd: Add MP5496 regulators Kathiravan T
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).