On Tue, Dec 28, 2021 at 03:25:43PM +0100, Michael Walle wrote: > Just add a simple list of the supported devices which need a nvmem > transformations. > > Also, since the compatible string is prepended to the actual nvmem > compatible string, we need to match using "contains" instead of an exact > match. > > Signed-off-by: Michael Walle <michael@xxxxxxxx> > --- > .../devicetree/bindings/mtd/mtd.yaml | 7 +-- > .../bindings/nvmem/nvmem-transformations.yaml | 46 +++++++++++++++++++ > 2 files changed, 50 insertions(+), 3 deletions(-) > create mode 100644 Documentation/devicetree/bindings/nvmem/nvmem-transformations.yaml > > diff --git a/Documentation/devicetree/bindings/mtd/mtd.yaml b/Documentation/devicetree/bindings/mtd/mtd.yaml > index 376b679cfc70..0291e439b6a6 100644 > --- a/Documentation/devicetree/bindings/mtd/mtd.yaml > +++ b/Documentation/devicetree/bindings/mtd/mtd.yaml > @@ -33,9 +33,10 @@ patternProperties: > > properties: > compatible: > - enum: > - - user-otp > - - factory-otp > + contains: > + enum: > + - user-otp > + - factory-otp If the addition is only compatible strings, then I would just add them here. Otherwise this needs to be structured a bit differently. More on that below. > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/nvmem/nvmem-transformations.yaml b/Documentation/devicetree/bindings/nvmem/nvmem-transformations.yaml > new file mode 100644 > index 000000000000..8c8d85fd6d27 > --- /dev/null > +++ b/Documentation/devicetree/bindings/nvmem/nvmem-transformations.yaml > @@ -0,0 +1,46 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/nvmem/nvmem-transformations.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: NVMEM transformations Device Tree Bindings > + > +maintainers: > + - Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> > + > +description: | > + This is a list NVMEM devices which need transformations. > + > +properties: > + compatible: > + oneOf: > + - items: > + - enum: > + - kontron,sl28-vpd > + - const: user-otp > + - const: user-otp This will be applied to any node containing 'user-otp'. You need a custom 'select' to avoid that. > + > +required: > + - compatible > + > +additionalProperties: true True is only allowed for common schema intended to be included (i.e. a $ref) by other schemas. IOW, ones that are incomplete on their own. So you need to reference mtd.yaml and make this 'unevaluatedProperties: false'. > + > +examples: > + - | > + otp-1 { > + compatible = "kontron,sl28-vpd", "user-otp"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + serial@2 { > + reg = <2 15>; > + }; > + > + base_mac_address: base-mac-address@17 { > + #nvmem-cell-cells = <1>; > + reg = <17 6>; > + }; > + }; > + > +... > -- > 2.30.2 > >