[v2,4/5] dt-bindings: regulators: convert non-smd RPM Regulators bindings to dt-schema

Message ID 20221005-mdm9615-pinctrl-yaml-v2-4-639fe67a04be@linaro.org
State New
Headers
Series arm: qcom: mdm9615: second round of bindings and DT fixes |

Commit Message

Neil Armstrong Oct. 17, 2022, 10:23 a.m. UTC
  Convert the non-SMD Regulators bindings to dt-schema, the old text based
bindings will be deleted later since the RPM bindings are not yet converted.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
 .../bindings/regulator/qcom,ipc-rpm-regulator.yaml | 127 +++++++++++++++++++++
 1 file changed, 127 insertions(+)
  

Comments

Rob Herring Oct. 17, 2022, 2:39 p.m. UTC | #1
On Mon, Oct 17, 2022 at 12:23:08PM +0200, Neil Armstrong wrote:
> Convert the non-SMD Regulators bindings to dt-schema, the old text based
> bindings will be deleted later since the RPM bindings are not yet converted.
> 
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
>  .../bindings/regulator/qcom,ipc-rpm-regulator.yaml | 127 +++++++++++++++++++++
>  1 file changed, 127 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
> new file mode 100644
> index 000000000000..e18bb8b87c43
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
> @@ -0,0 +1,127 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/qcom,ipc-rpm-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: QCOM IPC RPM REGULATOR

Fix your capslock.

> +
> +description:
> +  The Qualcomm RPM over IPC regulator is modelled as a subdevice of the RPM.
> +
> +  Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,ipc-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 pm8058 l0, 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, s0, s1, s2, s3, s4,
> +  lvs0, lvs1, ncp
> +
> +  For pm8901 l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
> +  mvs
> +
> +  For pm8921 s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
> +  l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
> +  l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
> +  ncp
> +
> +  For pm8018 s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
> +  l12, l14, lvs1
> +
> +  For smb208 s1a, s1b, s2a, s2b
> +
> +maintainers:
> +  - Bjorn Andersson <andersson@kernel.org>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - qcom,rpm-pm8058-regulators
> +      - qcom,rpm-pm8901-regulators
> +      - qcom,rpm-pm8921-regulators
> +      - qcom,rpm-pm8018-regulators
> +      - qcom,rpm-smb208-regulators
> +
> +patternProperties:
> +  ".*-supply$":
> +    description: Input supply phandle(s) for this node
> +
> +  "^((s|l|lvs)[0-9]*)|(s[1-2][a-b])|(ncp)|(mvs)|(usb-switch)|(hdmi-switch)$":
> +    description: List of regulators and its properties
> +    $ref: regulator.yaml#

       unevaluatedProperties: false

> +    properties:
> +      bias-pull-down:
> +        description: enable pull down of the regulator when inactive
> +        type: boolean
> +
> +      qcom,switch-mode-frequency:
> +        description: Frequency (Hz) of the switch-mode power supply
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        enum:
> +          - 19200000
> +          - 9600000
> +          - 6400000
> +          - 4800000
> +          - 3840000
> +          - 3200000
> +          - 2740000
> +          - 2400000
> +          - 2130000
> +          - 1920000
> +          - 1750000
> +          - 1600000
> +          - 1480000
> +          - 1370000
> +          - 1280000
> +          - 1200000
> +
> +      qcom,force-mode:
> +        description: Indicates that the regulator should be forced to a particular mode
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        enum:
> +          - 0 # QCOM_RPM_FORCE_MODE_NONE do not force any mode
> +          - 1 # QCOM_RPM_FORCE_MODE_LPM force into low power mode
> +          - 2 # QCOM_RPM_FORCE_MODE_HPM force into high power mode
> +          - 3 # QCOM_RPM_FORCE_MODE_AUTO allow regulator to automatically select its own mode
> +              # based on realtime current draw, only for pm8921 smps and ftsmps
> +
> +      qcom,power-mode-hysteretic:
> +        description: select that the power supply should operate in hysteretic mode,
> +          instead of the default pwm mode
> +        type: boolean
> +
> +additionalProperties: false
> +
> +required:
> +  - compatible
> +
> +examples:
> +  - |
> +    #include <dt-bindings/mfd/qcom-rpm.h>
> +    regulators {
> +      compatible = "qcom,rpm-pm8921-regulators";
> +      vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
> +
> +      s1 {
> +        regulator-min-microvolt = <1225000>;
> +        regulator-max-microvolt = <1225000>;
> +
> +        bias-pull-down;
> +
> +        qcom,switch-mode-frequency = <3200000>;
> +      };
> +
> +      pm8921_s4: s4 {
> +        regulator-min-microvolt = <1800000>;
> +        regulator-max-microvolt = <1800000>;
> +
> +        qcom,switch-mode-frequency = <1600000>;
> +        bias-pull-down;
> +
> +        qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
> +      };
> +    };
> +...
> 
> -- 
> b4 0.10.1
>
  
Neil Armstrong Oct. 17, 2022, 2:47 p.m. UTC | #2
Hi,

On 17/10/2022 16:39, Rob Herring wrote:
> On Mon, Oct 17, 2022 at 12:23:08PM +0200, Neil Armstrong wrote:
>> Convert the non-SMD Regulators bindings to dt-schema, the old text based
>> bindings will be deleted later since the RPM bindings are not yet converted.
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>>   .../bindings/regulator/qcom,ipc-rpm-regulator.yaml | 127 +++++++++++++++++++++
>>   1 file changed, 127 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
>> new file mode 100644
>> index 000000000000..e18bb8b87c43
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
>> @@ -0,0 +1,127 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/regulator/qcom,ipc-rpm-regulator.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: QCOM IPC RPM REGULATOR
> 
> Fix your capslock.

It's literally taken from Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml:

title: QCOM SMD RPM REGULATOR

> 
>> +
>> +description:
>> +  The Qualcomm RPM over IPC regulator is modelled as a subdevice of the RPM.
>> +
>> +  Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,ipc-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 pm8058 l0, 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, s0, s1, s2, s3, s4,
>> +  lvs0, lvs1, ncp
>> +
>> +  For pm8901 l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
>> +  mvs
>> +
>> +  For pm8921 s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
>> +  l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
>> +  l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
>> +  ncp
>> +
>> +  For pm8018 s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
>> +  l12, l14, lvs1
>> +
>> +  For smb208 s1a, s1b, s2a, s2b
>> +
>> +maintainers:
>> +  - Bjorn Andersson <andersson@kernel.org>
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - qcom,rpm-pm8058-regulators
>> +      - qcom,rpm-pm8901-regulators
>> +      - qcom,rpm-pm8921-regulators
>> +      - qcom,rpm-pm8018-regulators
>> +      - qcom,rpm-smb208-regulators
>> +
>> +patternProperties:
>> +  ".*-supply$":
>> +    description: Input supply phandle(s) for this node
>> +
>> +  "^((s|l|lvs)[0-9]*)|(s[1-2][a-b])|(ncp)|(mvs)|(usb-switch)|(hdmi-switch)$":
>> +    description: List of regulators and its properties
>> +    $ref: regulator.yaml#
> 
>         unevaluatedProperties: false

Ack

> 
>> +    properties:
>> +      bias-pull-down:
>> +        description: enable pull down of the regulator when inactive
>> +        type: boolean
>> +
>> +      qcom,switch-mode-frequency:
>> +        description: Frequency (Hz) of the switch-mode power supply
>> +        $ref: /schemas/types.yaml#/definitions/uint32
>> +        enum:
>> +          - 19200000
>> +          - 9600000
>> +          - 6400000
>> +          - 4800000
>> +          - 3840000
>> +          - 3200000
>> +          - 2740000
>> +          - 2400000
>> +          - 2130000
>> +          - 1920000
>> +          - 1750000
>> +          - 1600000
>> +          - 1480000
>> +          - 1370000
>> +          - 1280000
>> +          - 1200000
>> +
>> +      qcom,force-mode:
>> +        description: Indicates that the regulator should be forced to a particular mode
>> +        $ref: /schemas/types.yaml#/definitions/uint32
>> +        enum:
>> +          - 0 # QCOM_RPM_FORCE_MODE_NONE do not force any mode
>> +          - 1 # QCOM_RPM_FORCE_MODE_LPM force into low power mode
>> +          - 2 # QCOM_RPM_FORCE_MODE_HPM force into high power mode
>> +          - 3 # QCOM_RPM_FORCE_MODE_AUTO allow regulator to automatically select its own mode
>> +              # based on realtime current draw, only for pm8921 smps and ftsmps
>> +
>> +      qcom,power-mode-hysteretic:
>> +        description: select that the power supply should operate in hysteretic mode,
>> +          instead of the default pwm mode
>> +        type: boolean
>> +
>> +additionalProperties: false
>> +
>> +required:
>> +  - compatible
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/mfd/qcom-rpm.h>
>> +    regulators {
>> +      compatible = "qcom,rpm-pm8921-regulators";
>> +      vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
>> +
>> +      s1 {
>> +        regulator-min-microvolt = <1225000>;
>> +        regulator-max-microvolt = <1225000>;
>> +
>> +        bias-pull-down;
>> +
>> +        qcom,switch-mode-frequency = <3200000>;
>> +      };
>> +
>> +      pm8921_s4: s4 {
>> +        regulator-min-microvolt = <1800000>;
>> +        regulator-max-microvolt = <1800000>;
>> +
>> +        qcom,switch-mode-frequency = <1600000>;
>> +        bias-pull-down;
>> +
>> +        qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
>> +      };
>> +    };
>> +...
>>
>> -- 
>> b4 0.10.1
>>

Thanks,
Neil
  
Rob Herring Oct. 17, 2022, 7:02 p.m. UTC | #3
On Mon, Oct 17, 2022 at 04:47:44PM +0200, Neil Armstrong wrote:
> Hi,
> 
> On 17/10/2022 16:39, Rob Herring wrote:
> > On Mon, Oct 17, 2022 at 12:23:08PM +0200, Neil Armstrong wrote:
> > > Convert the non-SMD Regulators bindings to dt-schema, the old text based
> > > bindings will be deleted later since the RPM bindings are not yet converted.
> > > 
> > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> > > ---
> > >   .../bindings/regulator/qcom,ipc-rpm-regulator.yaml | 127 +++++++++++++++++++++
> > >   1 file changed, 127 insertions(+)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
> > > new file mode 100644
> > > index 000000000000..e18bb8b87c43
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
> > > @@ -0,0 +1,127 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/regulator/qcom,ipc-rpm-regulator.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: QCOM IPC RPM REGULATOR
> > 
> > Fix your capslock.
> 
> It's literally taken from Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml:
> 
> title: QCOM SMD RPM REGULATOR

Plenty of bad examples to follow.

Rob
  

Patch

diff --git a/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
new file mode 100644
index 000000000000..e18bb8b87c43
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/qcom,ipc-rpm-regulator.yaml
@@ -0,0 +1,127 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/qcom,ipc-rpm-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: QCOM IPC RPM REGULATOR
+
+description:
+  The Qualcomm RPM over IPC regulator is modelled as a subdevice of the RPM.
+
+  Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,ipc-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 pm8058 l0, 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, s0, s1, s2, s3, s4,
+  lvs0, lvs1, ncp
+
+  For pm8901 l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
+  mvs
+
+  For pm8921 s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
+  l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
+  l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
+  ncp
+
+  For pm8018 s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
+  l12, l14, lvs1
+
+  For smb208 s1a, s1b, s2a, s2b
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,rpm-pm8058-regulators
+      - qcom,rpm-pm8901-regulators
+      - qcom,rpm-pm8921-regulators
+      - qcom,rpm-pm8018-regulators
+      - qcom,rpm-smb208-regulators
+
+patternProperties:
+  ".*-supply$":
+    description: Input supply phandle(s) for this node
+
+  "^((s|l|lvs)[0-9]*)|(s[1-2][a-b])|(ncp)|(mvs)|(usb-switch)|(hdmi-switch)$":
+    description: List of regulators and its properties
+    $ref: regulator.yaml#
+    properties:
+      bias-pull-down:
+        description: enable pull down of the regulator when inactive
+        type: boolean
+
+      qcom,switch-mode-frequency:
+        description: Frequency (Hz) of the switch-mode power supply
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum:
+          - 19200000
+          - 9600000
+          - 6400000
+          - 4800000
+          - 3840000
+          - 3200000
+          - 2740000
+          - 2400000
+          - 2130000
+          - 1920000
+          - 1750000
+          - 1600000
+          - 1480000
+          - 1370000
+          - 1280000
+          - 1200000
+
+      qcom,force-mode:
+        description: Indicates that the regulator should be forced to a particular mode
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum:
+          - 0 # QCOM_RPM_FORCE_MODE_NONE do not force any mode
+          - 1 # QCOM_RPM_FORCE_MODE_LPM force into low power mode
+          - 2 # QCOM_RPM_FORCE_MODE_HPM force into high power mode
+          - 3 # QCOM_RPM_FORCE_MODE_AUTO allow regulator to automatically select its own mode
+              # based on realtime current draw, only for pm8921 smps and ftsmps
+
+      qcom,power-mode-hysteretic:
+        description: select that the power supply should operate in hysteretic mode,
+          instead of the default pwm mode
+        type: boolean
+
+additionalProperties: false
+
+required:
+  - compatible
+
+examples:
+  - |
+    #include <dt-bindings/mfd/qcom-rpm.h>
+    regulators {
+      compatible = "qcom,rpm-pm8921-regulators";
+      vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
+
+      s1 {
+        regulator-min-microvolt = <1225000>;
+        regulator-max-microvolt = <1225000>;
+
+        bias-pull-down;
+
+        qcom,switch-mode-frequency = <3200000>;
+      };
+
+      pm8921_s4: s4 {
+        regulator-min-microvolt = <1800000>;
+        regulator-max-microvolt = <1800000>;
+
+        qcom,switch-mode-frequency = <1600000>;
+        bias-pull-down;
+
+        qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
+      };
+    };
+...