On Tue, 15 Sep 2020 11:11:52 -0600 Rob Herring <robh@xxxxxxxxxx> wrote: > On Tue, Sep 08, 2020 at 10:13:03PM +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> > > --- > > I have noted myself here as maintainer because I wrote most of the > > code of the several subdevices, although not of the .txt-binding. > > Due to its .txt-format history BSD license was not added. > > I happily ignored the "does MAINTAINERS need updating" thing > > from checkpatch.pl, I do not know whether that PMIC should > > have a separate entry there. > > > > .../bindings/mfd/ricoh,rn5t618.yaml | 113 ++++++++++++++++++ > > .../devicetree/bindings/mfd/rn5t618.txt | 52 -------- > > 2 files changed, 113 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..9596dde7a69a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml > > @@ -0,0 +1,113 @@ > > +# 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 > > I prefer under 'regulators' below, you have all possible regulator > names: > > patternProperties: > "^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$": > $ref: ../regulator/regulator.yaml > > and then above you just need to restrict the possible names: > > regulators: > propertyNames: > pattern: "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$" > > (propertyNames schema is applied to all an object's properties and you > don't need additionalProperties here.) > hmm, dt_binding_check refuses to digest things like this: allOf: - if: properties: compatible: contains: const: ricoh,rn5t567 then: properties: regulators: propertyNames: pattern: "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$" I get: andi@aktux:~/kernel$ DT_SCHEMA_FILES=Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml makearm dt_binding_check CHKDT Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml /home/andi/kernel/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml: allOf:0:then:properties:regulators: Additional properties are not allowed ('propertyNames' was unexpected) /home/andi/kernel/Documentation/devicetree/bindings/mfd/ricoh,rn5t618.yaml: allOf:0:then:properties:regulators: 'propertyNames' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'type', 'typeSize', 'unevaluatedProperties', 'uniqueItems'] andi@aktux:~/kernel/Documentation$ grep -R propertyNames * devicetree/bindings/mfd/ricoh,rn5t618.yaml: propertyNames: devicetree/bindings/mfd/ricoh,rn5t618.yaml: propertyNames: devicetree/bindings/mfd/ricoh,rn5t618.yaml: propertyNames: ... and I am the only user, it is not documented. and yes I have updated my tools andi@aktux:~/kernel$ dt-validate --version 2020.8.1 Regards, Andreas