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 > >