On Tue, 22 Sep 2020 19:40:41 -0600 Rob Herring <robh@xxxxxxxxxx> wrote: > On Wed, Sep 16, 2020 at 08:17:57AM +0200, Andreas Kemnade wrote: > > Convert the RN5T618 binding to DT schema format. Also > > clearly state which regulators are available. > > > > Signed-off-by: Andreas Kemnade <andreas@xxxxxxxxxxxx> > > --- > > Changes in v2: > > - drop irq description > > > > Due to its .txt-format history BSD license was not added. > > .../bindings/mfd/ricoh,rn5t618.yaml | 111 ++++++++++++++++++ > > .../devicetree/bindings/mfd/rn5t618.txt | 52 -------- > > 2 files changed, 111 insertions(+), 52 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml > > delete mode 100644 Documentation/devicetree/bindings/mfd/rn5t618.txt > > > > diff --git a/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml b/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml > > new file mode 100644 > > index 000000000000..d70e85a09c84 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml > > @@ -0,0 +1,111 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/mfd/ricoh,rn5t618.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Ricoh RN5T567/RN5T618/RC5T619 PMIC > > + > > +maintainers: > > + - Andreas Kemnade <andreas@xxxxxxxxxxxx> > > + > > +description: | > > + Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which > > + integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators, > > + GPIOs, and a watchdog timer. It can be controlled through an I2C interface. > > + The RN5T618/RC5T619 provides additionally a Li-ion battery charger, > > + fuel gauge, and an ADC. > > + The RC5T619 additionnally includes USB charger detection and an RTC. > > + > > +allOf: > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: ricoh,rn5t567 > > + then: > > + properties: > > + regulators: > > + patternProperties: > > + "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$": > > + $ref: ../regulator/regulator.yaml > > + additionalProperties: false > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: ricoh,rn5t618 > > + then: > > + properties: > > + regulators: > > + patternProperties: > > + "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$": > > + $ref: ../regulator/regulator.yaml > > + additionalProperties: false > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: ricoh,rc5t619 > > + then: > > + properties: > > + regulators: > > + patternProperties: > > + "^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$": > > + $ref: ../regulator/regulator.yaml > > + additionalProperties: false > > + > > +properties: > > + compatible: > > + enum: > > + - ricoh,rn5t567 > > + - ricoh,rn5t618 > > + - ricoh,rc5t619 > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + system-power-controller: > > + type: boolean > > + description: | > > + See Documentation/devicetree/bindings/power/power-controller.txt > > + > > + regulators: > > + type: object > > Add here: > > $ref: ../regulator/regulator.yaml > > And then the occurrances up above can be just 'true'. > That feels wrong. I would think that gets applied to things directly below regulator node and not to the individual regulator subnodes. To check that I did: diff --git a/Documentation/devicetree/bindings/regulator/regulator.yaml b/Documentation/devicetree/bindings/regulator/regulator.yaml index ec505dbbf87c..077cb473d5f4 100644 --- a/Documentation/devicetree/bindings/regulator/regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/regulator.yaml @@ -188,6 +188,8 @@ patternProperties: additionalProperties: false +additionalProperties: false + additionally to your requested change with this result: andi@aktux:~/gta04/dt-chk$ DT_SCHEMA_FILES=Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml makearm dt_binding_check CHKDT Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml SCHEMA Documentation/devicetree/bindings/processed-schema-examples.yaml DTC Documentation/devicetree/bindings/mfd/ricoh,rn5t618.example.dt.yaml CHECK Documentation/devicetree/bindings/mfd/ricoh,rn5t618.example.dt.yaml /home/andi/gta04/dt-chk/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.example.dt.yaml: pmic@32: regulators: 'DCDC1', 'DCDC2' do not match any of the regexes: '.*-supply$', 'pinctrl-[0-9]+', 'regulator-state-(standby|mem|disk)' From schema: /home/andi/kernel/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml > > > + > > +additionalProperties: false > > + > > +required: > > + - compatible > > + - reg > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/irq.h> > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + pmic@32 { > > + compatible = "ricoh,rn5t618"; > > + reg = <0x32>; > > + interrupt-parent = <&gpio5>; > > + interrupts = <11 IRQ_TYPE_EDGE_FALLING>; > > + system-power-controller; > > + > > + regulators { > > + DCDC1 { > > + regulator-min-microvolt = <1050000>; > > + regulator-max-microvolt = <1050000>; > > + }; > > + > > + DCDC2 { > > + regulator-min-microvolt = <1175000>; > > + regulator-max-microvolt = <1175000>; > > + }; > > + }; > > + }; > > + }; > > diff --git a/Documentation/devicetree/bindings/mfd/rn5t618.txt b/Documentation/devicetree/bindings/mfd/rn5t618.txt > > deleted file mode 100644 > > index 16778ea00dbc..000000000000 > > --- a/Documentation/devicetree/bindings/mfd/rn5t618.txt > > +++ /dev/null > > @@ -1,52 +0,0 @@ > > -* Ricoh RN5T567/RN5T618 PMIC > > - > > -Ricoh RN5T567/RN5T618/RC5T619 is a power management IC family which > > -integrates 3 to 5 step-down DCDC converters, 7 to 10 low-dropout regulators, > > -GPIOs, and a watchdog timer. It can be controlled through an I2C interface. > > -The RN5T618/RC5T619 provides additionally a Li-ion battery charger, > > -fuel gauge, and an ADC. > > -The RC5T619 additionnally includes USB charger detection and an RTC. > > - > > -Required properties: > > - - compatible: must be one of > > - "ricoh,rn5t567" > > - "ricoh,rn5t618" > > - "ricoh,rc5t619" > > - - reg: the I2C slave address of the device > > - > > -Optional properties: > > - - interrupts: interrupt mapping for IRQ > > - See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt > > - - system-power-controller: > > - See Documentation/devicetree/bindings/power/power-controller.txt > > - > > -Sub-nodes: > > - - regulators: the node is required if the regulator functionality is > > - needed. The valid regulator names are: DCDC1, DCDC2, DCDC3, DCDC4 > > - (RN5T567/RC5T619), LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7, LDO8, > > - LDO9, LDO10, LDORTC1 and LDORTC2. > > - LDO7-10 are specific to RC5T619. > > - The common bindings for each individual regulator can be found in: > > - Documentation/devicetree/bindings/regulator/regulator.txt > > - > > -Example: > > - > > - pmic@32 { > > - compatible = "ricoh,rn5t618"; > > - reg = <0x32>; > > - interrupt-parent = <&gpio5>; > > - interrupts = <11 IRQ_TYPE_EDGE_FALLING>; > > - system-power-controller; > > - > > - regulators { > > - DCDC1 { > > - regulator-min-microvolt = <1050000>; > > - regulator-max-microvolt = <1050000>; > > - }; > > - > > - DCDC2 { > > - regulator-min-microvolt = <1175000>; > > - regulator-max-microvolt = <1175000>; > > - }; > > - }; > > - }; > > -- > > 2.20.1 > > >