On Mon, Jun 22, 2020 at 10:43:27PM +0200, Luca Ceresoli wrote: > The definition of "xxx-in-supply" was generic, thus define in detail the > possible cases for each chip variant. > > Also document that the only possible I2C slave address is 0x60 as per the > datasheet and fix the second example accordingly. > > Signed-off-by: Luca Ceresoli <luca@xxxxxxxxxxxxxxxx> > > --- > > Changes in v3: > - fix yaml errors > > Changes in v2: > - this patch replaces patch "regulator: lp87565: dt: remove duplicated > section" in RFC,v1 (Rob Herring) > - use capital letters consistently (Lee Jones) > - replace "regulator" -> "mfd" in subject line (Lee Jones) > - replace "dt:" suffix with "dt-bindings:" prefix in subject line > --- > .../devicetree/bindings/mfd/lp87565.txt | 79 ---------- > .../devicetree/bindings/mfd/ti,lp875xx.yaml | 142 ++++++++++++++++++ > 2 files changed, 142 insertions(+), 79 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/mfd/lp87565.txt > create mode 100644 Documentation/devicetree/bindings/mfd/ti,lp875xx.yaml > > diff --git a/Documentation/devicetree/bindings/mfd/lp87565.txt b/Documentation/devicetree/bindings/mfd/lp87565.txt > deleted file mode 100644 > index 41671e0dc26b..000000000000 > --- a/Documentation/devicetree/bindings/mfd/lp87565.txt > +++ /dev/null > @@ -1,79 +0,0 @@ > -TI LP87565 PMIC MFD driver > - > -Required properties: > - - compatible: "ti,lp87565", "ti,lp87565-q1" > - - reg: I2C slave address. > - - gpio-controller: Marks the device node as a GPIO Controller. > - - #gpio-cells: Should be two. The first cell is the pin number and > - the second cell is used to specify flags. > - See ../gpio/gpio.txt for more information. > - - xxx-in-supply: Phandle to parent supply node of each regulator > - populated under regulators node. xxx should match > - the supply_name populated in driver. > -Example: > - > -lp87565_pmic: pmic@60 { > - compatible = "ti,lp87565-q1"; > - reg = <0x60>; > - gpio-controller; > - #gpio-cells = <2>; > - > - buck10-in-supply = <&vsys_3v3>; > - buck23-in-supply = <&vsys_3v3>; > - > - regulators: regulators { > - buck10_reg: buck10 { > - /* VDD_MPU */ > - regulator-name = "buck10"; > - regulator-min-microvolt = <850000>; > - regulator-max-microvolt = <1250000>; > - regulator-always-on; > - regulator-boot-on; > - }; > - > - buck23_reg: buck23 { > - /* VDD_GPU */ > - regulator-name = "buck23"; > - regulator-min-microvolt = <850000>; > - regulator-max-microvolt = <1250000>; > - regulator-boot-on; > - regulator-always-on; > - }; > - }; > -}; > - > -TI LP87561 PMIC: > - > -This is a single output 4-phase regulator configuration > - > -Required properties: > - - compatible: "ti,lp87561-q1" > - - reg: I2C slave address. > - - gpio-controller: Marks the device node as a GPIO Controller. > - - #gpio-cells: Should be two. The first cell is the pin number and > - the second cell is used to specify flags. > - See ../gpio/gpio.txt for more information. > - - xxx-in-supply: Phandle to parent supply node of each regulator > - populated under regulators node. xxx should match > - the supply_name populated in driver. > -Example: > - > -lp87561_pmic: pmic@62 { > - compatible = "ti,lp87561-q1"; > - reg = <0x62>; > - gpio-controller; > - #gpio-cells = <2>; > - > - buck3210-in-supply = <&vsys_3v3>; > - > - regulators: regulators { > - buck3210_reg: buck3210 { > - /* VDD_CORE */ > - regulator-name = "buck3210"; > - regulator-min-microvolt = <800000>; > - regulator-max-microvolt = <800000>; > - regulator-always-on; > - regulator-boot-on; > - }; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/mfd/ti,lp875xx.yaml b/Documentation/devicetree/bindings/mfd/ti,lp875xx.yaml > new file mode 100644 > index 000000000000..2da703918d6a > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/ti,lp875xx.yaml > @@ -0,0 +1,142 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mfd/ti,lp875xx.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: TI LP875xx PMIC MFD driver > + > +maintainers: > + - Keerthy <j-keerthy@xxxxxx> > + > +properties: > + compatible: > + oneOf: > + - const: ti,lp87565 > + - const: ti,lp87565-q1 > + - const: ti,lp87561-q1 > + > + reg: > + description: I2C slave address > + const: 0x60 > + > + gpio-controller: true > + > + '#gpio-cells': > + description: > + The first cell is the pin number. > + The second cell is is used to specify flags. > + See ../gpio/gpio.txt for more information. > + const: 2 > + > +required: > + - compatible > + - reg > + - gpio-controller > + - '#gpio-cells' > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + enum: > + - ti,lp87565 > + - ti,lp87565-q1 > + then: > + properties: > + buck10-in-supply: > + description: > + Phandle to parent supply node for BUCK0 and BUCK1 converters. > + > + buck23-in-supply: > + description: > + Phandle to parent supply node for BUCK2 and BUCK3 converters. > + > + required: > + - buck10-in-supply > + - buck23-in-supply > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - ti,lp87561-q1 > + then: > + properties: > + buck3210-in-supply: > + description: > + Phandle to parent supply node for all the four BUCK converters. > + > + required: > + - buck3210-in-supply I think this should probably be 2 schema documents (and a 3rd for the next patch)... > + > +examples: > + - | > + /* TI LP87565-Q1 PMIC (dual 2-phase output configuration) */ > + i2c@0 { > + reg = <0x0 0x100>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pmic@60 { > + compatible = "ti,lp87565-q1"; > + reg = <0x60>; > + gpio-controller; > + #gpio-cells = <2>; > + > + buck10-in-supply = <&vsys_3v3>; > + buck23-in-supply = <&vsys_3v3>; > + > + regulators { > + buck10_reg: buck10 { The regulators also need to be documented. > + /* VDD_MPU */ > + regulator-name = "buck10"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <1250000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + > + buck23_reg: buck23 { > + /* VDD_GPU */ > + regulator-name = "buck23"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <1250000>; > + regulator-boot-on; > + regulator-always-on; > + }; > + }; > + }; > + }; > + > + - | > + /* TI LP87561 PMIC (single 4-phase output configuration) */ > + i2c@0 { > + reg = <0x0 0x100>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pmic@60 { > + compatible = "ti,lp87561-q1"; > + reg = <0x60>; > + gpio-controller; > + #gpio-cells = <2>; > + > + buck3210-in-supply = <&vsys_3v3>; > + > + regulators { > + buck3210_reg: buck3210 { > + /* VDD_CORE */ > + regulator-name = "buck3210"; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <800000>; > + regulator-always-on; > + regulator-boot-on; > + }; > + }; > + }; > + }; > + > +... > -- > 2.27.0 >