Skip to contentSkip to conversation

dt-bindings: bd718x7: Yamlify and add BD71850

PATCH Superseded Matti Vaittinen 3 participants 4 messages Dec 17, 2019 – Jan 2, 2020

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dt-bindings: bd718x7: Yamlify and add BD71850

Convert ROHM bd71837 and bd71847 PMIC binding text docs to yaml. Split the binding document to two separate documents (own for BD71837 and BD71847) as they have different amount of regulators. This way we can better enforce the node name check for regulators. ROHM is also providing BD71850 - which is almost identical to BD71847 - main difference is some initial regulator states. The BD71850 can be driven by same driver and it has same buck/LDO setup as BD71847 - add it to BD71847 binding document and introduce compatible for it.

---

Oh dear how bad I am with yaml...

Lee, I think the support series for BD71828 included some changes to drivers/mfd/rohm-bd718x7.c - I will add BD71850 compatible to next version of that series in order to avoid conflicts. Does that work for you?

 .../bindings/mfd/rohm,bd71837-pmic.txt        |  90 --------
 .../bindings/mfd/rohm,bd71837-pmic.yaml       | 198 ++++++++++++++++++
 .../bindings/mfd/rohm,bd71847-pmic.yaml       | 181 ++++++++++++++++
 .../regulator/rohm,bd71837-regulator.txt      | 162 --------------
 .../regulator/rohm,bd71837-regulator.yaml     | 103 +++++++++
 .../regulator/rohm,bd71847-regulator.yaml     |  97 +++++++++
 6 files changed, 579 insertions(+), 252 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
 create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
 delete mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.txt
 create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.yaml
 create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71847-regulator.yaml
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt deleted +0 -90
deleted file mode 100644
index f22d74c7a8db..000000000000
@@ -1,90 +0,0 @@
-* ROHM BD71837 and BD71847 Power Management Integrated Circuit bindings
-
-BD71837MWV and BD71847MWV are programmable Power Management ICs for powering
-single-core, dual-core, and quad-core SoCs such as NXP-i.MX 8M. They are
-optimized for low BOM cost and compact solution footprint. BD71837MWV
-integrates 8 Buck regulators and 7 LDOs. BD71847MWV contains 6 Buck regulators
-and 6 LDOs.
-
-Datasheet for BD71837 is available at:
-https://www.rohm.com/datasheet/BD71837MWV/bd71837mwv-e
-Datasheet for BD71847 is available at:
-https://www.rohm.com/datasheet/BD71847AMWV/bd71847amwv-e
-
-Required properties:
- - compatible		: Should be "rohm,bd71837" for bd71837
-				    "rohm,bd71847" for bd71847.
- - reg			: I2C slave address.
- - interrupt-parent	: Phandle to the parent interrupt controller.
- - interrupts		: The interrupt line the device is connected to.
- - clocks		: The parent clock connected to PMIC. If this is missing
-			  32768 KHz clock is assumed.
- - #clock-cells		: Should be 0.
- - regulators:		: List of child nodes that specify the regulators.
-			  Please see ../regulator/rohm,bd71837-regulator.txt
-
-Optional properties:
-- clock-output-names	: Should contain name for output clock.
-- rohm,reset-snvs-powered : Transfer BD718x7 to SNVS state at reset.
-
-The BD718x7 supports two different HW states as reset target states. States
-are called as SNVS and READY. At READY state all the PMIC power outputs go
-down and OTP is reload. At the SNVS state all other logic and external
-devices apart from the SNVS power domain are shut off. Please refer to NXP
-i.MX8 documentation for further information regarding SNVS state. When a
-reset is done via SNVS state the PMIC OTP data is not reload. This causes
-power outputs that have been under SW control to stay down when reset has
-switched power state to SNVS. If reset is done via READY state the power
-outputs will be returned to HW control by OTP loading. Thus the reset
-target state is set to READY by default. If SNVS state is used the boot
-crucial regulators must have the regulator-always-on and regulator-boot-on
-properties set in regulator node.
-
-- rohm,short-press-ms	: Short press duration in milliseconds
-- rohm,long-press-ms	: Long press duration in milliseconds
-
-Configure the "short press" and "long press" timers for the power button.
-Values are rounded to what hardware supports (500ms multiple for short and
-1000ms multiple for long). If these properties are not present the existing
-configuration (from bootloader or OTP) is not touched.
-
-Example:
-
-	/* external oscillator node */
-	osc: oscillator {
-		compatible = "fixed-clock";
-		#clock-cells = <1>;
-		clock-frequency  = <32768>;
-		clock-output-names = "osc";
-	};
-
-	pmic: pmic@4b {
-		compatible = "rohm,bd71837";
-		reg = <0x4b>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <29 GPIO_ACTIVE_LOW>;
-		interrupt-names = "irq";
-		#clock-cells = <0>;
-		clocks = <&osc 0>;
-		clock-output-names = "bd71837-32k-out";
-		rohm,reset-snvs-powered;
-
-		regulators {
-			buck1: BUCK1 {
-				regulator-name = "buck1";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1300000>;
-				regulator-boot-on;
-				regulator-always-on;
-				regulator-ramp-delay = <1250>;
-			};
-			// [...]
-		};
-	};
-
-	/* Clock consumer node */
-	rtc@0 {
-		compatible = "company,my-rtc";
-		clock-names = "my-clock";
-		clocks = <&pmic>;
-	};
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +198 -0

198 lines not on this page · raw message

Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml new file +181 -0

181 lines not on this page · raw message

Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.txt deleted +0 -162

162 lines not on this page · raw message

Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.yaml new file +103 -0

103 lines not on this page · raw message

Documentation/devicetree/bindings/regulator/rohm,bd71847-regulator.yaml new file +97 -0

97 lines not on this page · raw message

base-commit: d1eef1c619749b2a57e514a3fa67d9a516ffa919

Signature · 14 lines
2.21.0


-- 
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND

~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =] 
maintainer
#1 lore raw
Quoted 9 lines · Matti Vaittinen

Convert ROHM bd71837 and bd71847 PMIC binding text docs to yaml. Split the binding document to two separate documents (own for BD71837 and BD71847) as they have different amount of regulators. This way we can better enforce the node name check for regulators. ROHM is also providing BD71850 - which is almost identical to BD71847 - main difference is some initial regulator states. The BD71850 can be driven by same driver and it has same buck/LDO setup as BD71847 - add it to BD71847 binding document and introduce compatible for it.

Quoted 4 lines

---

Oh dear how bad I am with yaml...

Looks pretty good overall.

I hope 'yamlify' doesn't catch on. :)

Quoted 76 lines

Lee, I think the support series for BD71828 included some changes to drivers/mfd/rohm-bd718x7.c - I will add BD71850 compatible to next version of that series in order to avoid conflicts. Does that work for you?

 .../bindings/mfd/rohm,bd71837-pmic.txt        |  90 --------
 .../bindings/mfd/rohm,bd71837-pmic.yaml       | 198 ++++++++++++++++++
 .../bindings/mfd/rohm,bd71847-pmic.yaml       | 181 ++++++++++++++++
 .../regulator/rohm,bd71837-regulator.txt      | 162 --------------
 .../regulator/rohm,bd71837-regulator.yaml     | 103 +++++++++
 .../regulator/rohm,bd71847-regulator.yaml     |  97 +++++++++
 6 files changed, 579 insertions(+), 252 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
 create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
 delete mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.txt
 create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71837-regulator.yaml
 create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd71847-regulator.yaml
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +49 -0
new file mode 100644
index 000000000000..3a6d408aebbd
@@ -0,0 +1,198 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BD71837 Power Management Integrated Circuit bindings
+
+maintainers:
+  - Matti Vaittinen <[email protected]>
+
+description: |
+  BD71837MWV is programmable Power Management ICs for powering single-core,
+  dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low
+  BOM cost and compact solution footprint. BD71837MWV  integrates 8 Buck
+  regulators and 7 LDOs.
+  Datasheet for BD71837 is available at
+  https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product
+
+properties:
+  compatible:
+    const: rohm,bd71837
+
+  reg:
+    description:
+      I2C slave address.
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 0
+
+# The BD718x7 supports two different HW states as reset target states. States
+# are called as SNVS and READY. At READY state all the PMIC power outputs go
+# down and OTP is reload. At the SNVS state all other logic and external
+# devices apart from the SNVS power domain are shut off. Please refer to NXP
+# i.MX8 documentation for further information regarding SNVS state. When a
+# reset is done via SNVS state the PMIC OTP data is not reload. This causes
+# power outputs that have been under SW control to stay down when reset has
+# switched power state to SNVS. If reset is done via READY state the power
+# outputs will be returned to HW control by OTP loading. Thus the reset
+# target state is set to READY by default. If SNVS state is used the boot
+# crucial regulators must have the regulator-always-on and regulator-boot-on
+# properties set in regulator node.

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml line 59

Quoted 10 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +10 -0
+
+  rohm,reset-snvs-powered:
+    description: |
+      Transfer PMIC to SNVS state at reset
+    type: boolean
+
+# Configure the "short press" and "long press" timers for the power button.
+# Values are rounded to what hardware supports (500ms multiple for short and
+# 1000ms multiple for long). If these properties are not present the existing
+# configuration (from bootloader or OTP) is not touched.

You can use 'multipleOf' keyword below for some constraints.

Same for the other file.

Quoted 11 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +11 -0
+
+  rohm,short-press-ms:
+    description:
+      Short press duration in milliseconds
+
+  rohm,long-press-ms:
+    description:
+      Long press duration in milliseconds
+
+  regulators:
+    $ref: ../regulator/rohm,bd71837-regulator.yaml

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml line 80

Quoted 10 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +10 -0
+    description:
+      List of child nodes that specify the regulators.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - "#clock-cells"
+  - regulators

additionalProperties: false

Quoted 6 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +6 -0
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/leds/common.h>
+    #

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml line 96

Quoted 10 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +10 -0
+
+    i2c {
+      pmic: pmic@4b {
+            compatible = "rohm,bd71837";
+            reg = <0x4b>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
+            #clock-cells = <0>;
+            clocks = <&osc 0>;
+            clock-output-names = "bd71837-32k-out";

Not documented.

Quoted 102 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +102 -0
+            rohm,reset-snvs-powered;
+
+            regulators {
+                buck1: BUCK1 {
+                    regulator-name = "buck1";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-ramp-delay = <1250>;
+                    rohm,dvs-run-voltage = <900000>;
+                    rohm,dvs-idle-voltage = <850000>;
+                    rohm,dvs-suspend-voltage = <800000>;
+                };
+                buck2: BUCK2 {
+                    regulator-name = "buck2";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-ramp-delay = <1250>;
+                    rohm,dvs-run-voltage = <1000000>;
+                    rohm,dvs-idle-voltage = <900000>;
+                };
+                buck3: BUCK3 {
+                    regulator-name = "buck3";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    rohm,dvs-run-voltage = <1000000>;
+                };
+                buck4: BUCK4 {
+                    regulator-name = "buck4";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    rohm,dvs-run-voltage = <1000000>;
+                };
+                buck5: BUCK5 {
+                    regulator-name = "buck5";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1350000>;
+                    regulator-boot-on;
+                };
+                buck6: BUCK6 {
+                    regulator-name = "buck6";
+                    regulator-min-microvolt = <3000000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                };
+                buck7: BUCK7 {
+                    regulator-name = "buck7";
+                    regulator-min-microvolt = <1605000>;
+                    regulator-max-microvolt = <1995000>;
+                    regulator-boot-on;
+                };
+                buck8: BUCK8 {
+                    regulator-name = "buck8";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <1400000>;
+                };
+
+                ldo1: LDO1 {
+                    regulator-name = "ldo1";
+                    regulator-min-microvolt = <3000000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                };
+                ldo2: LDO2 {
+                    regulator-name = "ldo2";
+                    regulator-min-microvolt = <900000>;
+                    regulator-max-microvolt = <900000>;
+                    regulator-boot-on;
+                };
+                ldo3: LDO3 {
+                    regulator-name = "ldo3";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo4: LDO4 {
+                    regulator-name = "ldo4";
+                    regulator-min-microvolt = <900000>;
+                    regulator-max-microvolt = <1800000>;
+                };
+                ldo5: LDO5 {
+                    regulator-name = "ldo5";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo6: LDO6 {
+                    regulator-name = "ldo6";
+                    regulator-min-microvolt = <900000>;
+                    regulator-max-microvolt = <1800000>;
+                };
+                ldo7_reg: LDO7 {
+                    regulator-name = "ldo7";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+            };
+        };
+    };
#2 lore raw

Thanks for taking a look on this Rob,

Quoted 16 lines · Rob Herring
Quoted 15 lines · Matti Vaittinen

Convert ROHM bd71837 and bd71847 PMIC binding text docs to yaml. Split
the binding document to two separate documents (own for BD71837 and BD71847)
as they have different amount of regulators. This way we can better enforce
the node name check for regulators. ROHM is also providing BD71850
- which
is almost identical to BD71847 - main difference is some initial regulator
states. The BD71850 can be driven by same driver and it has same buck/LDO
setup as BD71847 - add it to BD71847 binding document and introduce compatible for it.

Quoted 6 lines
Quoted 4 lines

---

Oh dear how bad I am with yaml...

Looks pretty good overall.

Thanks. But it was not easy for me. It took bunch of trials to fix all the errors...

Quoted 1 line

I hope 'yamlify' doesn't catch on. :)

I can almost see that in OED already xD

Quoted 109 lines
Quoted 109 lines

Lee, I think the support series for BD71828 included some changes to drivers/mfd/rohm-bd718x7.c - I will add BD71850 compatible to next
version of that series in order to avoid conflicts. Does that work for you?

 .../bindings/mfd/rohm,bd71837-pmic.txt        |  90 --------
 .../bindings/mfd/rohm,bd71837-pmic.yaml       | 198
++++++++++++++++++
 .../bindings/mfd/rohm,bd71847-pmic.yaml       | 181
++++++++++++++++
 .../regulator/rohm,bd71837-regulator.txt      | 162 --------------
 .../regulator/rohm,bd71837-regulator.yaml     | 103 +++++++++
 .../regulator/rohm,bd71847-regulator.yaml     |  97 +++++++++
 6 files changed, 579 insertions(+), 252 deletions(-)
 delete mode 100644
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
 create mode 100644
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
 create mode 100644
Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
 delete mode 100644
Documentation/devicetree/bindings/regulator/rohm,bd71837-
regulator.txt
 create mode 100644
Documentation/devicetree/bindings/regulator/rohm,bd71837-
regulator.yaml
 create mode 100644

Documentation/devicetree/bindings/regulator/rohm,bd71847- regulator.yaml

(quoted diff) +0 -0

pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71837- pmic.yaml
new file mode 100644
index 000000000000..3a6d408aebbd

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +13 -0
@@ -0,0 +1,198 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BD71837 Power Management Integrated Circuit bindings
+
+maintainers:
+  - Matti Vaittinen <[email protected]>
+
+description: |
+  BD71837MWV is programmable Power Management ICs for powering

single-core,
+ dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low
+ BOM cost and compact solution footprint. BD71837MWV integrates 8 Buck

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +3 -0
+  regulators and 7 LDOs.
+  Datasheet for BD71837 is available at
+  

https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +20 -0
+
+properties:
+  compatible:
+    const: rohm,bd71837
+
+  reg:
+    description:
+      I2C slave address.
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 0
+
+# The BD718x7 supports two different HW states as reset target

states. States
+# are called as SNVS and READY. At READY state all the PMIC power outputs go
+# down and OTP is reload. At the SNVS state all other logic and external
+# devices apart from the SNVS power domain are shut off. Please refer to NXP
+# i.MX8 documentation for further information regarding SNVS state. When a
+# reset is done via SNVS state the PMIC OTP data is not reload. This causes
+# power outputs that have been under SW control to stay down when reset has
+# switched power state to SNVS. If reset is done via READY state the power
+# outputs will be returned to HW control by OTP loading. Thus the reset
+# target state is set to READY by default. If SNVS state is used the boot
+# crucial regulators must have the regulator-always-on and regulator-boot-on

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +8 -0
+# properties set in regulator node.
+
+  rohm,reset-snvs-powered:
+    description: |
+      Transfer PMIC to SNVS state at reset
+    type: boolean
+
+# Configure the "short press" and "long press" timers for the
Quoted 8 lines
Quoted 6 lines

power button.
+# Values are rounded to what hardware supports (500ms multiple for short and
+# 1000ms multiple for long). If these properties are not present the existing
+# configuration (from bootloader or OTP) is not touched.

You can use 'multipleOf' keyword below for some constraints.

Umm.. Actually, now that I checked the datasheet for proper constraints... Minimum value for both short and long press is 10ms. After that the values are multiples of 500ms or 1000ms - but first value is 10ms. I'll add minimum and maximum and update the comment accordingly. Thanks for catching this :)

Quoted 18 lines

Same for the other file.

Quoted 15 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +15 -0
+
+  rohm,short-press-ms:
+    description:
+      Short press duration in milliseconds
+
+  rohm,long-press-ms:
+    description:
+      Long press duration in milliseconds
+
+  regulators:
+    $ref: ../regulator/rohm,bd71837-regulator.yaml
+    description:
+      List of child nodes that specify the regulators.
+
+required:
Quoted 8 lines

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml line 80

Quoted 6 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +6 -0
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - "#clock-cells"
+  - regulators

additionalProperties: false

Ok.

Quoted 11 lines
Quoted 11 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +10 -0
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/leds/common.h>
+    #
+
+    i2c {
+      pmic: pmic@4b {
+            compatible = "rohm,bd71837";
Quoted 8 lines

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml line 96

Quoted 6 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +6 -0
+            reg = <0x4b>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
+            #clock-cells = <0>;
+            clocks = <&osc 0>;
+            clock-output-names = "bd71837-32k-out";

Not documented.

I'll just drop this from the example for now. We can add ref to common clock bindings later - if they are needed at some point.

Quoted 102 lines
Quoted 102 lines
Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml new file +102 -0
+            rohm,reset-snvs-powered;
+
+            regulators {
+                buck1: BUCK1 {
+                    regulator-name = "buck1";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-ramp-delay = <1250>;
+                    rohm,dvs-run-voltage = <900000>;
+                    rohm,dvs-idle-voltage = <850000>;
+                    rohm,dvs-suspend-voltage = <800000>;
+                };
+                buck2: BUCK2 {
+                    regulator-name = "buck2";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-ramp-delay = <1250>;
+                    rohm,dvs-run-voltage = <1000000>;
+                    rohm,dvs-idle-voltage = <900000>;
+                };
+                buck3: BUCK3 {
+                    regulator-name = "buck3";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    rohm,dvs-run-voltage = <1000000>;
+                };
+                buck4: BUCK4 {
+                    regulator-name = "buck4";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1300000>;
+                    regulator-boot-on;
+                    rohm,dvs-run-voltage = <1000000>;
+                };
+                buck5: BUCK5 {
+                    regulator-name = "buck5";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1350000>;
+                    regulator-boot-on;
+                };
+                buck6: BUCK6 {
+                    regulator-name = "buck6";
+                    regulator-min-microvolt = <3000000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                };
+                buck7: BUCK7 {
+                    regulator-name = "buck7";
+                    regulator-min-microvolt = <1605000>;
+                    regulator-max-microvolt = <1995000>;
+                    regulator-boot-on;
+                };
+                buck8: BUCK8 {
+                    regulator-name = "buck8";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <1400000>;
+                };
+
+                ldo1: LDO1 {
+                    regulator-name = "ldo1";
+                    regulator-min-microvolt = <3000000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-boot-on;
+                };
+                ldo2: LDO2 {
+                    regulator-name = "ldo2";
+                    regulator-min-microvolt = <900000>;
+                    regulator-max-microvolt = <900000>;
+                    regulator-boot-on;
+                };
+                ldo3: LDO3 {
+                    regulator-name = "ldo3";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo4: LDO4 {
+                    regulator-name = "ldo4";
+                    regulator-min-microvolt = <900000>;
+                    regulator-max-microvolt = <1800000>;
+                };
+                ldo5: LDO5 {
+                    regulator-name = "ldo5";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo6: LDO6 {
+                    regulator-name = "ldo6";
+                    regulator-min-microvolt = <900000>;
+                    regulator-max-microvolt = <1800000>;
+                };
+                ldo7_reg: LDO7 {
+                    regulator-name = "ldo7";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+            };
+        };
+    };
#3 lore raw
In reply to Rob Herring
Quoted 10 lines · Rob Herring
Quoted 9 lines · Matti Vaittinen

Convert ROHM bd71837 and bd71847 PMIC binding text docs to yaml. Split the binding document to two separate documents (own for BD71837 and BD71847) as they have different amount of regulators. This way we can better enforce the node name check for regulators. ROHM is also providing BD71850 - which is almost identical to BD71847 - main difference is some initial regulator states. The BD71850 can be driven by same driver and it has same buck/LDO setup as BD71847 - add it to BD71847 binding document and introduce compatible for it.

Quoted 8 lines
Quoted 4 lines

---

Oh dear how bad I am with yaml...

Looks pretty good overall.

I hope 'yamlify' doesn't catch on. :)

Adopted.

Signature · 4 lines
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog