diff mbox series

[05/15] dt_bindings: mfd: Add ROHM BD71815 PMIC

Message ID 4b3a868c07312d630de32e85d31dee7501627b73.1610110144.git.matti.vaittinen@fi.rohmeurope.com (mailing list archive)
State Not Applicable, archived
Headers show
Series Support ROHM BD71815 PMIC | expand

Commit Message

Vaittinen, Matti Jan. 8, 2021, 1:34 p.m. UTC
Document DT bindings for ROHM BD71815.

BD71815 is a single-chip power management IC mainly for battery-powered
portable devices. The IC integrates 5 bucks, 7 LDOs, a boost driver for
LED, a battery charger with a Coulomb counter, a real-time clock, a 32kHz
clock and two general-purpose outputs although only one is documented by
the data-sheet.

Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
---
 .../bindings/mfd/rohm,bd71815-pmic.yaml       | 198 ++++++++++++++++++
 1 file changed, 198 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml

Comments

Rob Herring (Arm) Jan. 11, 2021, 7:06 p.m. UTC | #1
On Fri, Jan 08, 2021 at 03:34:52PM +0200, Matti Vaittinen wrote:
> Document DT bindings for ROHM BD71815.
> 
> BD71815 is a single-chip power management IC mainly for battery-powered
> portable devices. The IC integrates 5 bucks, 7 LDOs, a boost driver for
> LED, a battery charger with a Coulomb counter, a real-time clock, a 32kHz
> clock and two general-purpose outputs although only one is documented by
> the data-sheet.
> 
> Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> ---
>  .../bindings/mfd/rohm,bd71815-pmic.yaml       | 198 ++++++++++++++++++
>  1 file changed, 198 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
> new file mode 100644
> index 000000000000..2206b2008acd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
> @@ -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,bd71815-pmic.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ROHM BD71815 Power Management Integrated Circuit bindings
> +
> +maintainers:
> +  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> +
> +description: |
> +  BD71815AGW is a single-chip power management ICs for battery-powered
> +  portable devices. It integrates 5 buck converters, 8 LDOs, a boost driver
> +  for LED and a 500 mA single-cell linear charger. Also included is a Coulomb
> +  counter, a real-time clock (RTC), and a 32.768 kHz clock gate and two GPOs.
> +
> +properties:
> +  compatible:
> +    const: rohm,bd71815
> +
> +  reg:
> +    description:
> +      I2C slave address.
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  gpio-controller: true

Add a blank line here.

> +  "#gpio-cells":
> +    const: 2
> +    description: |
> +      The first cell is the pin number and the second cell is used to specify
> +      flags. See ../gpio/gpio.txt for more information.
> +
> +  clocks:
> +    maxItems: 1

And here.

> +  "#clock-cells":
> +    const: 0

And here.

> +  clock-output-names:
> +    const: bd71815-32k-out
> +
> +  rohm,clkout-mode:
> +    description: clk32kout mode. Can be set to "open-drain" or "cmos".
> +    $ref: "/schemas/types.yaml#/definitions/string"
> +    enum:
> +      - open-drain
> +      - cmos
> +
> +  rohm,charger-sense-resistor-ohms:
> +    minimum: 10000000
> +    maximum: 50000000
> +    description: |
> +      BD71827 and BD71828 have SAR ADC for measuring charging currents.
> +      External sense resistor (RSENSE in data sheet) should be used. If some
> +      other but 30MOhm resistor is used the resistance value should be given

'something other'

Though this can be expressed as 'default: 30000000'

> +      here in Ohms.
> +
> +  regulators:
> +    $ref: ../regulator/rohm,bd71815-regulator.yaml

This file needs to come first.

> +    description:
> +      List of child nodes that specify the regulators.
> +
> +  gpio-reserved-ranges:
> +    description: |
> +      Usage of BD71828 GPIO pins can be changed via OTP. This property can be
> +      used to mark the pins which should not be configured for GPIO. Please see
> +      the ../gpio/gpio.txt for more information.
> +
> +  rohm,enable-hidden-gpo:
> +    description: |
> +      The BD71815 has undocumented GPO at pin E5. Pin is marked as GND at the
> +      data-sheet as it's location in the middle of GND pins makes it hard to
> +      use on PCB. If your board has managed to use this pin you can enable the
> +      second GPO by defining this property. Dont enable this if you are unsure
> +      about how the E5 pin is connected on your board.
> +    type: boolean
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - "#clock-cells"
> +  - regulators
> +  - gpio-controller
> +  - "#gpio-cells"
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    #include <dt-bindings/leds/common.h>
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        pmic: pmic@4b {
> +            compatible = "rohm,bd71815";
> +            reg = <0x4b>;
> +
> +            interrupt-parent = <&gpio1>;
> +            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
> +
> +            clocks = <&osc 0>;
> +            #clock-cells = <0>;
> +            clock-output-names = "bd71815-32k-out";
> +
> +            gpio-controller;
> +            #gpio-cells = <2>;
> +
> +            rohm,charger-sense-resistor-ohms = <10000000>;
> +
> +            regulators {
> +                buck1: buck1 {
> +                    regulator-name = "buck1";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <2000000>;
> +                    regulator-always-on;
> +                    regulator-ramp-delay = <1250>;
> +                    rohm,dvs-run-voltage = <1150000>;
> +                    rohm,dvs-suspend-voltage = <950000>;
> +                };
> +                buck2: buck2 {
> +                    regulator-name = "buck2";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <2000000>;
> +                    regulator-always-on;
> +                    regulator-ramp-delay = <1250>;
> +                    rohm,dvs-run-voltage = <1150000>;
> +                    rohm,dvs-suspend-voltage = <950000>;
> +                };
> +                buck3: buck3 {
> +                    regulator-name = "buck3";
> +                    regulator-min-microvolt = <1200000>;
> +                    regulator-max-microvolt = <2700000>;
> +                    regulator-always-on;
> +                };
> +                buck4: buck4 {
> +                    regulator-name = "buck4";
> +                    regulator-min-microvolt = <1100000>;
> +                    regulator-max-microvolt = <1850000>;
> +                    regulator-always-on;
> +                };
> +                buck5: buck5 {
> +                    regulator-name = "buck5";
> +                    regulator-min-microvolt = <1800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-always-on;
> +                };
> +                ldo1: ldo1 {
> +                    regulator-name = "ldo1";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-always-on;
> +                };
> +                ldo2: ldo2 {
> +                    regulator-name = "ldo2";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-always-on;
> +                };
> +                ldo3: ldo3 {
> +                    regulator-name = "ldo3";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-always-on;
> +                };
> +                ldo4: ldo4 {
> +                    regulator-name = "ldo4";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-always-on;
> +                };
> +                ldo5: ldo5 {
> +                    regulator-name = "ldo5";
> +                    regulator-min-microvolt = <800000>;
> +                    regulator-max-microvolt = <3300000>;
> +                    regulator-always-on;
> +                };
> +                ldo6: ldodvref {
> +                    regulator-name = "ldodvref";
> +                    regulator-always-on;
> +                };
> +                ldo7: ldolpsr {
> +                    regulator-name = "ldolpsr";
> +                    regulator-always-on;
> +                };
> +
> +                boost: wled {
> +                    regulator-name = "wled";
> +                    regulator-min-microamp = <10>;
> +                    regulator-max-microamp = <25000>;
> +                };
> +            };
> +        };
> +    };
> -- 
> 2.25.4
> 
> 
> -- 
> 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 =]
Vaittinen, Matti Jan. 12, 2021, 6:14 a.m. UTC | #2
On Mon, 2021-01-11 at 13:06 -0600, Rob Herring wrote:
> On Fri, Jan 08, 2021 at 03:34:52PM +0200, Matti Vaittinen wrote:
> > Document DT bindings for ROHM BD71815.
> > 
> > BD71815 is a single-chip power management IC mainly for battery-
> > powered
> > portable devices. The IC integrates 5 bucks, 7 LDOs, a boost driver
> > for
> > LED, a battery charger with a Coulomb counter, a real-time clock, a
> > 32kHz
> > clock and two general-purpose outputs although only one is
> > documented by
> > the data-sheet.
> > 
> > Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> > ---
> >  .../bindings/mfd/rohm,bd71815-pmic.yaml       | 198
> > ++++++++++++++++++
> >  1 file changed, 198 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71815-
> > pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71815-
> > pmic.yaml
> > new file mode 100644
> > index 000000000000..2206b2008acd
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
> > @@ -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,bd71815-pmic.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: ROHM BD71815 Power Management Integrated Circuit bindings
> > +
> > +maintainers:
> > +  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> > +
> > +description: |
> > +  BD71815AGW is a single-chip power management ICs for battery-
> > powered
> > +  portable devices. It integrates 5 buck converters, 8 LDOs, a
> > boost driver
> > +  for LED and a 500 mA single-cell linear charger. Also included
> > is a Coulomb
> > +  counter, a real-time clock (RTC), and a 32.768 kHz clock gate
> > and two GPOs.
> > +
> > +properties:
> > +  compatible:
> > +    const: rohm,bd71815
> > +
> > +  reg:
> > +    description:
> > +      I2C slave address.
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  gpio-controller: true
> 
> Add a blank line here.
> 
> > +  "#gpio-cells":
> > +    const: 2
> > +    description: |
> > +      The first cell is the pin number and the second cell is used
> > to specify
> > +      flags. See ../gpio/gpio.txt for more information.
> > +
> > +  clocks:
> > +    maxItems: 1
> 
> And here.
> 
> > +  "#clock-cells":
> > +    const: 0
> 
> And here.
> 
> > +  clock-output-names:
> > +    const: bd71815-32k-out
> > +
> > +  rohm,clkout-mode:
> > +    description: clk32kout mode. Can be set to "open-drain" or
> > "cmos".
> > +    $ref: "/schemas/types.yaml#/definitions/string"
> > +    enum:
> > +      - open-drain
> > +      - cmos
> > +
> > +  rohm,charger-sense-resistor-ohms:
> > +    minimum: 10000000
> > +    maximum: 50000000
> > +    description: |
> > +      BD71827 and BD71828 have SAR ADC for measuring charging
> > currents.
> > +      External sense resistor (RSENSE in data sheet) should be
> > used. If some
> > +      other but 30MOhm resistor is used the resistance value
> > should be given
> 
> 'something other'
> 
> Though this can be expressed as 'default: 30000000'

I guess I'll use both 'something other' and 'default: 30000000' in next
version. 'default: 30000000' is nice for machine parser - but for human
reader the 'something other' is likely to be superior. (No scientific
test conducted to back off this statement though).

Thanks Rob!

Best Regards
	Matti Vaittinen
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
new file mode 100644
index 000000000000..2206b2008acd
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/rohm,bd71815-pmic.yaml
@@ -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,bd71815-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BD71815 Power Management Integrated Circuit bindings
+
+maintainers:
+  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+
+description: |
+  BD71815AGW is a single-chip power management ICs for battery-powered
+  portable devices. It integrates 5 buck converters, 8 LDOs, a boost driver
+  for LED and a 500 mA single-cell linear charger. Also included is a Coulomb
+  counter, a real-time clock (RTC), and a 32.768 kHz clock gate and two GPOs.
+
+properties:
+  compatible:
+    const: rohm,bd71815
+
+  reg:
+    description:
+      I2C slave address.
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-controller: true
+  "#gpio-cells":
+    const: 2
+    description: |
+      The first cell is the pin number and the second cell is used to specify
+      flags. See ../gpio/gpio.txt for more information.
+
+  clocks:
+    maxItems: 1
+  "#clock-cells":
+    const: 0
+  clock-output-names:
+    const: bd71815-32k-out
+
+  rohm,clkout-mode:
+    description: clk32kout mode. Can be set to "open-drain" or "cmos".
+    $ref: "/schemas/types.yaml#/definitions/string"
+    enum:
+      - open-drain
+      - cmos
+
+  rohm,charger-sense-resistor-ohms:
+    minimum: 10000000
+    maximum: 50000000
+    description: |
+      BD71827 and BD71828 have SAR ADC for measuring charging currents.
+      External sense resistor (RSENSE in data sheet) should be used. If some
+      other but 30MOhm resistor is used the resistance value should be given
+      here in Ohms.
+
+  regulators:
+    $ref: ../regulator/rohm,bd71815-regulator.yaml
+    description:
+      List of child nodes that specify the regulators.
+
+  gpio-reserved-ranges:
+    description: |
+      Usage of BD71828 GPIO pins can be changed via OTP. This property can be
+      used to mark the pins which should not be configured for GPIO. Please see
+      the ../gpio/gpio.txt for more information.
+
+  rohm,enable-hidden-gpo:
+    description: |
+      The BD71815 has undocumented GPO at pin E5. Pin is marked as GND at the
+      data-sheet as it's location in the middle of GND pins makes it hard to
+      use on PCB. If your board has managed to use this pin you can enable the
+      second GPO by defining this property. Dont enable this if you are unsure
+      about how the E5 pin is connected on your board.
+    type: boolean
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - "#clock-cells"
+  - regulators
+  - gpio-controller
+  - "#gpio-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/leds/common.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        pmic: pmic@4b {
+            compatible = "rohm,bd71815";
+            reg = <0x4b>;
+
+            interrupt-parent = <&gpio1>;
+            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
+
+            clocks = <&osc 0>;
+            #clock-cells = <0>;
+            clock-output-names = "bd71815-32k-out";
+
+            gpio-controller;
+            #gpio-cells = <2>;
+
+            rohm,charger-sense-resistor-ohms = <10000000>;
+
+            regulators {
+                buck1: buck1 {
+                    regulator-name = "buck1";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <2000000>;
+                    regulator-always-on;
+                    regulator-ramp-delay = <1250>;
+                    rohm,dvs-run-voltage = <1150000>;
+                    rohm,dvs-suspend-voltage = <950000>;
+                };
+                buck2: buck2 {
+                    regulator-name = "buck2";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <2000000>;
+                    regulator-always-on;
+                    regulator-ramp-delay = <1250>;
+                    rohm,dvs-run-voltage = <1150000>;
+                    rohm,dvs-suspend-voltage = <950000>;
+                };
+                buck3: buck3 {
+                    regulator-name = "buck3";
+                    regulator-min-microvolt = <1200000>;
+                    regulator-max-microvolt = <2700000>;
+                    regulator-always-on;
+                };
+                buck4: buck4 {
+                    regulator-name = "buck4";
+                    regulator-min-microvolt = <1100000>;
+                    regulator-max-microvolt = <1850000>;
+                    regulator-always-on;
+                };
+                buck5: buck5 {
+                    regulator-name = "buck5";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-always-on;
+                };
+                ldo1: ldo1 {
+                    regulator-name = "ldo1";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-always-on;
+                };
+                ldo2: ldo2 {
+                    regulator-name = "ldo2";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-always-on;
+                };
+                ldo3: ldo3 {
+                    regulator-name = "ldo3";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-always-on;
+                };
+                ldo4: ldo4 {
+                    regulator-name = "ldo4";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-always-on;
+                };
+                ldo5: ldo5 {
+                    regulator-name = "ldo5";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-always-on;
+                };
+                ldo6: ldodvref {
+                    regulator-name = "ldodvref";
+                    regulator-always-on;
+                };
+                ldo7: ldolpsr {
+                    regulator-name = "ldolpsr";
+                    regulator-always-on;
+                };
+
+                boost: wled {
+                    regulator-name = "wled";
+                    regulator-min-microamp = <10>;
+                    regulator-max-microamp = <25000>;
+                };
+            };
+        };
+    };