Re: [RESEND PATCH v2] dt-bindings: bd718x7: Yamlify and add BD71850

From: Vaittinen, Matti
Date: Thu Feb 06 2020 - 07:42:35 EST


Hello Guys,


On Wed, 2020-01-15 at 08:29 +0200, Matti Vaittinen wrote:
> Convert ROHM bd71837 and bd71847 PMIC binding text docs to yaml.
> Split
> the binding document to two separate documents (own documents 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.
>
> Signed-off-by: Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>
> Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> ---
>
> Resending for Mark to check.

Can you please check if something is still missing from this? Should I
rework, resend or ...?

Br,
Matti Vaittinen

>
> changes since v1:
> - constrains to short and long presses.
> - reworded commit message to shorten a line exceeding 75 chars
> - added 'additionalProperties: false'
> - removed 'clock-names' from example node
>
> .../bindings/mfd/rohm,bd71837-pmic.txt | 90 -------
> .../bindings/mfd/rohm,bd71837-pmic.yaml | 236
> ++++++++++++++++++
> .../bindings/mfd/rohm,bd71847-pmic.yaml | 222 ++++++++++++++++
> .../regulator/rohm,bd71837-regulator.txt | 162 ------------
> .../regulator/rohm,bd71837-regulator.yaml | 103 ++++++++
> .../regulator/rohm,bd71847-regulator.yaml | 97 +++++++
> 6 files changed, 658 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
>
> diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71837-
> pmic.txt b/Documentation/devicetree/bindings/mfd/rohm,bd71837-
> pmic.txt
> deleted file mode 100644
> index f22d74c7a8db..000000000000
> --- a/Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
> +++ /dev/null
> @@ -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>;
> - };
> diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71837-
> pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71837-
> pmic.yaml
> new file mode 100644
> index 000000000000..aa922c560fcc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
> @@ -0,0 +1,236 @@
> +# 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 <matti.vaittinen@xxxxxxxxxxxxxxxxx>
> +
> +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.
> +
> + 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
> +# Short-press:
> +# Shortest being 10ms, next 500ms and then multiple of 500ms up to
> 7,5s
> +# Long-press:
> +# Shortest being 10ms, next 1000ms and then multiple of 1000ms up
> to 15s
> +# If these properties are not present the existing configuration
> (from
> +# bootloader or OTP) is not touched.
> +
> + rohm,short-press-ms:
> + description:
> + Short press duration in milliseconds
> + enum:
> + - 10
> + - 500
> + - 1000
> + - 1500
> + - 2000
> + - 2500
> + - 3000
> + - 3500
> + - 4000
> + - 4500
> + - 5000
> + - 5500
> + - 6000
> + - 6500
> + - 7000
> +
> + rohm,long-press-ms:
> + description:
> + Long press duration in milliseconds
> + enum:
> + - 10
> + - 1000
> + - 2000
> + - 3000
> + - 4000
> + - 5000
> + - 6000
> + - 7000
> + - 8000
> + - 9000
> + - 10000
> + - 11000
> + - 12000
> + - 13000
> + - 14000
> +
> + regulators:
> + $ref: ../regulator/rohm,bd71837-regulator.yaml
> + description:
> + List of child nodes that specify the regulators.
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> + - "#clock-cells"
> + - regulators
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/leds/common.h>
> +
> + i2c {
> + pmic: pmic@4b {
> + compatible = "rohm,bd71837";
> + reg = <0x4b>;
> + interrupt-parent = <&gpio1>;
> + interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
> + #clock-cells = <0>;
> + clocks = <&osc 0>;
> + rohm,reset-snvs-powered;
> + rohm,short-press-ms = <10>;
> + rohm,long-press-ms = <2000>;
> +
> + 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>;
> + };
> + };
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd71847-
> pmic.yaml b/Documentation/devicetree/bindings/mfd/rohm,bd71847-
> pmic.yaml
> new file mode 100644
> index 000000000000..402e40dfe0b8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
> @@ -0,0 +1,222 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/rohm,bd71847-pmic.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ROHM BD71847 and BD71850 Power Management Integrated Circuit
> bindings
> +
> +maintainers:
> + - Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>
> +
> +description: |
> + BD71847AMWV and BD71850MWV are 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.
> BD71847MWV and
> + BD71850MWV integrate 6 Buck regulators and 6 LDOs.
> + Datasheets are available at
> +
> https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71847amwv-product
> +
> https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71850mwv-product
> +
> +properties:
> + compatible:
> + enum:
> + - rohm,bd71847
> + - rohm,bd71850
> +
> + reg:
> + description:
> + I2C slave address.
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + "#clock-cells":
> + const: 0
> +
> +# The BD71847 abd BD71850 support 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,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
> +# Short-press:
> +# Shortest being 10ms, next 500ms and then multiple of 500ms up to
> 7,5s
> +# Long-press:
> +# Shortest being 10ms, next 1000ms and then multiple of 1000ms up
> to 15s
> +# If these properties are not present the existing # configuration
> (from
> +# bootloader or OTP) is not touched.
> +
> + rohm,short-press-ms:
> + description:
> + Short press duration in milliseconds
> + enum:
> + - 10
> + - 500
> + - 1000
> + - 1500
> + - 2000
> + - 2500
> + - 3000
> + - 3500
> + - 4000
> + - 4500
> + - 5000
> + - 5500
> + - 6000
> + - 6500
> + - 7000
> + - 7500
> +
> + rohm,long-press-ms:
> + description:
> + Long press duration in milliseconds
> + enum:
> + - 10
> + - 1000
> + - 2000
> + - 3000
> + - 4000
> + - 5000
> + - 6000
> + - 7000
> + - 8000
> + - 9000
> + - 10000
> + - 11000
> + - 12000
> + - 13000
> + - 14000
> + - 15000
> +
> + regulators:
> + $ref: ../regulator/rohm,bd71847-regulator.yaml
> + description:
> + List of child nodes that specify the regulators.
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> + - "#clock-cells"
> + - regulators
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/leds/common.h>
> +
> + i2c {
> + pmic: pmic@4b {
> + compatible = "rohm,bd71847";
> + reg = <0x4b>;
> + interrupt-parent = <&gpio1>;
> + interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
> + #clock-cells = <0>;
> + clocks = <&osc 0>;
> + rohm,reset-snvs-powered;
> + rohm,short-press-ms = <10>;
> + rohm,long-press-ms = <2000>;
> +
> + 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 = <550000>;
> + regulator-max-microvolt = <1350000>;
> + regulator-boot-on;
> + };
> + buck4: BUCK4 {
> + regulator-name = "buck4";
> + regulator-min-microvolt = <2600000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + };
> + buck5: BUCK5 {
> + regulator-name = "buck5";
> + regulator-min-microvolt = <1605000>;
> + regulator-max-microvolt = <1995000>;
> + regulator-boot-on;
> + };
> + buck8: BUCK6 {
> + regulator-name = "buck6";
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1400000>;
> + };
> +
> + ldo1: LDO1 {
> + regulator-name = "ldo1";
> + regulator-min-microvolt = <1600000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + };
> + ldo2: LDO2 {
> + regulator-name = "ldo2";
> + regulator-min-microvolt = <800000>;
> + 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 = <800000>;
> + regulator-max-microvolt = <3300000>;
> + };
> + ldo6: LDO6 {
> + regulator-name = "ldo6";
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <1800000>;
> + };
> + };
> + };
> + };
> diff --git
> a/Documentation/devicetree/bindings/regulator/rohm,bd71837-
> regulator.txt
> b/Documentation/devicetree/bindings/regulator/rohm,bd71837-
> regulator.txt
> deleted file mode 100644
> index cbce62c22b60..000000000000
> --- a/Documentation/devicetree/bindings/regulator/rohm,bd71837-
> regulator.txt
> +++ /dev/null
> @@ -1,162 +0,0 @@
> -ROHM BD71837 and BD71847 Power Management Integrated Circuit
> regulator bindings
> -
> -Required properties:
> - - regulator-name: should be "buck1", ..., "buck8" and "ldo1", ...,
> "ldo7" for
> - BD71837. For BD71847 names should be "buck1",
> ..., "buck6"
> - and "ldo1", ..., "ldo6"
> -
> -List of regulators provided by this controller. BD71837 regulators
> node
> -should be sub node of the BD71837 MFD node. See BD71837 MFD bindings
> at
> -Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt
> -Regulator nodes should be named to BUCK_<number> and LDO_<number>.
> The
> -definition for each of these nodes is defined using the standard
> -binding for regulators at
> -Documentation/devicetree/bindings/regulator/regulator.txt.
> -Note that if BD71837 starts at RUN state you probably want to use
> -regulator-boot-on at least for BUCK6 and BUCK7 so that those are not
> -disabled by driver at startup. LDO5 and LDO6 are supplied by those
> and
> -if they are disabled at startup the voltage monitoring for LDO5/LDO6
> will
> -cause PMIC to reset.
> -
> -The valid names for BD71837 regulator nodes are:
> -BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
> -LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7
> -
> -The valid names for BD71847 regulator nodes are:
> -BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6
> -LDO1, LDO2, LDO3, LDO4, LDO5, LDO6
> -
> -Optional properties:
> -- rohm,dvs-run-voltage : PMIC default "RUN" state
> voltage in uV.
> - See below table for bucks which
> support this.
> -- rohm,dvs-idle-voltage : PMIC default "IDLE" state
> voltage in uV.
> - See below table for bucks which
> support this.
> -- rohm,dvs-suspend-voltage : PMIC default "SUSPEND" state voltage
> in uV.
> - See below table for bucks which
> support this.
> -- Any optional property defined in bindings/regulator/regulator.txt
> -
> -Supported default DVS states:
> -
> -BD71837:
> -buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
> -------------------------------------------------------------------
> -----------
> -1 | supported | supported | supported
> -------------------------------------------------------------------
> ----------
> -2 | supported | supported | not
> supported
> -------------------------------------------------------------------
> ----------
> -3 | supported | not supported | not
> supported
> -------------------------------------------------------------------
> ----------
> -4 | supported | not supported | not
> supported
> -------------------------------------------------------------------
> ----------
> -rest | not supported | not supported | not
> supported
> -
> -BD71847:
> -buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-voltage
> -------------------------------------------------------------------
> -----------
> -1 | supported | supported | supported
> -------------------------------------------------------------------
> ----------
> -2 | supported | supported | not
> supported
> -------------------------------------------------------------------
> ----------
> -rest | not supported | not supported | not
> supported
> -
> -Example:
> -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>;
> - };
> -};
> -
> -
> diff --git
> a/Documentation/devicetree/bindings/regulator/rohm,bd71837-
> regulator.yaml
> b/Documentation/devicetree/bindings/regulator/rohm,bd71837-
> regulator.yaml
> new file mode 100644
> index 000000000000..a323b1696eee
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/rohm,bd71837-
> regulator.yaml
> @@ -0,0 +1,103 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id:
> http://devicetree.org/schemas/regulator/rohm,bd71837-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ROHM BD71837 Power Management Integrated Circuit regulators
> +
> +maintainers:
> + - Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>
> +
> +description: |
> + List of regulators provided by this controller. BD71837 regulators
> node
> + should be sub node of the BD71837 MFD node. See BD71837 MFD
> bindings at
> + Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.yaml
> + Regulator nodes should be named to BUCK_<number> and LDO_<number>.
> The
> + definition for each of these nodes is defined using the standard
> + binding for regulators at
> + Documentation/devicetree/bindings/regulator/regulator.txt.
> + Note that if BD71837 starts at RUN state you probably want to use
> + regulator-boot-on at least for BUCK6 and BUCK7 so that those are
> not
> + disabled by driver at startup. LDO5 and LDO6 are supplied by those
> and
> + if they are disabled at startup the voltage monitoring for
> LDO5/LDO6 will
> + cause PMIC to reset.
> +
> +#The valid names for BD71837 regulator nodes are:
> +#BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6, BUCK7, BUCK8
> +#LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7
> +
> +patternProperties:
> + "^LDO[1-7]$":
> + type: object
> + allOf:
> + - $ref: regulator.yaml#
> + description:
> + Properties for single LDO regulator.
> +
> + properties:
> + regulator-name:
> + pattern: "^ldo[1-7]$"
> + description:
> + should be "ldo1", ..., "ldo7"
> +
> + "^BUCK[1-8]$":
> + type: object
> + allOf:
> + - $ref: regulator.yaml#
> + description:
> + Properties for single BUCK regulator.
> +
> + properties:
> + regulator-name:
> + pattern: "^buck[1-8]$"
> + description:
> + should be "buck1", ..., "buck8"
> +
> + rohm,dvs-run-voltage:
> + allOf:
> + - $ref: "/schemas/types.yaml#/definitions/uint32"
> + - minimum: 0
> + maximum: 1300000
> + description:
> + PMIC default "RUN" state voltage in uV. See below table
> for
> + bucks which support this. 0 means disabled.
> +
> + rohm,dvs-idle-voltage:
> + allOf:
> + - $ref: "/schemas/types.yaml#/definitions/uint32"
> + - minimum: 0
> + maximum: 1300000
> + description:
> + PMIC default "IDLE" state voltage in uV. See below table
> for
> + bucks which support this. 0 means disabled.
> +
> + rohm,dvs-suspend-voltage:
> + allOf:
> + - $ref: "/schemas/types.yaml#/definitions/uint32"
> + - minimum: 0
> + maximum: 1300000
> + description:
> + PMIC default "SUSPEND" state voltage in uV. See below
> table for
> + bucks which support this. 0 means disabled.
> +
> + # Supported default DVS states:
> + #
> + # BD71837:
> + # buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-
> voltage
> + # ----------------------------------------------------------
> ------
> + # 1 | supported | supported | supported
> + # ----------------------------------------------------------
> ------
> + # 2 | supported | supported | not supported
> + # ----------------------------------------------------------
> ------
> + # 3 | supported | not supported | not supported
> + # ----------------------------------------------------------
> ------
> + # 4 | supported | not supported | not supported
> + # ----------------------------------------------------------
> ------
> + # rest | not supported | not supported | not supported
> +
> +
> + required:
> + - regulator-name
> + additionalProperties: false
> +additionalProperties: false
> diff --git
> a/Documentation/devicetree/bindings/regulator/rohm,bd71847-
> regulator.yaml
> b/Documentation/devicetree/bindings/regulator/rohm,bd71847-
> regulator.yaml
> new file mode 100644
> index 000000000000..526fd00bcb16
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/rohm,bd71847-
> regulator.yaml
> @@ -0,0 +1,97 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id:
> http://devicetree.org/schemas/regulator/rohm,bd71847-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ROHM BD71847 and BD71850 Power Management Integrated Circuit
> regulators
> +
> +maintainers:
> + - Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>
> +
> +description: |
> + List of regulators provided by this controller. BD71847 regulators
> node
> + should be sub node of the BD71847 MFD node. See BD71847 MFD
> bindings at
> + Documentation/devicetree/bindings/mfd/rohm,bd71847-pmic.yaml
> + Regulator nodes should be named to BUCK_<number> and LDO_<number>.
> The
> + definition for each of these nodes is defined using the standard
> + binding for regulators at
> + Documentation/devicetree/bindings/regulator/regulator.txt.
> + Note that if BD71847 starts at RUN state you probably want to use
> + regulator-boot-on at least for BUCK5. LDO6 is supplied by it and
> it must
> + not be disabled by driver at startup. If BUCK5 is disabled at
> startup the
> + voltage monitoring for LDO5/LDO6 can cause PMIC to reset.
> +
> +#The valid names for BD71847 regulator nodes are:
> +#BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6
> +#LDO1, LDO2, LDO3, LDO4, LDO5, LDO6
> +
> +patternProperties:
> + "^LDO[1-6]$":
> + type: object
> + allOf:
> + - $ref: regulator.yaml#
> + description:
> + Properties for single LDO regulator.
> +
> + properties:
> + regulator-name:
> + pattern: "^ldo[1-6]$"
> + description:
> + should be "ldo1", ..., "ldo6"
> +
> + "^BUCK[1-6]$":
> + type: object
> + allOf:
> + - $ref: regulator.yaml#
> + description:
> + Properties for single BUCK regulator.
> +
> + properties:
> + regulator-name:
> + pattern: "^buck[1-6]$"
> + description:
> + should be "buck1", ..., "buck6"
> +
> + rohm,dvs-run-voltage:
> + allOf:
> + - $ref: "/schemas/types.yaml#/definitions/uint32"
> + - minimum: 0
> + maximum: 1300000
> + description:
> + PMIC default "RUN" state voltage in uV. See below table
> for
> + bucks which support this. 0 means disabled.
> +
> + rohm,dvs-idle-voltage:
> + allOf:
> + - $ref: "/schemas/types.yaml#/definitions/uint32"
> + - minimum: 0
> + maximum: 1300000
> + description:
> + PMIC default "IDLE" state voltage in uV. See below table
> for
> + bucks which support this. 0 means disabled.
> +
> + rohm,dvs-suspend-voltage:
> + allOf:
> + - $ref: "/schemas/types.yaml#/definitions/uint32"
> + - minimum: 0
> + maximum: 1300000
> + description:
> + PMIC default "SUSPEND" state voltage in uV. See below
> table for
> + bucks which support this. 0 means disabled.
> +
> + # Supported default DVS states:
> + #
> + # BD71847:
> + # buck | dvs-run-voltage | dvs-idle-voltage | dvs-suspend-
> voltage
> + # ----------------------------------------------------------
> ------
> + # 1 | supported | supported | supported
> + # ----------------------------------------------------------
> ------
> + # 2 | supported | supported | not supported
> + # ----------------------------------------------------------
> ------
> + # rest | not supported | not supported | not supported
> +
> + required:
> + - regulator-name
> + additionalProperties: false
> +additionalProperties: false
> --
> 2.21.0
>
>