On 1/06/23 00:35, Conor Dooley wrote: > Hey Chris, > > On Wed, May 31, 2023 at 11:54:55AM +1200, Chris Packham wrote: >> From: Vadym Kochan <vadym.kochan@xxxxxxxxxxx> >> >> Switch the DT binding to a YAML schema to enable the DT validation. >> >> Dropped deprecated compatibles and properties described in txt file. >> >> Signed-off-by: Vadym Kochan <vadym.kochan@xxxxxxxxxxx> >> Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> >> --- >> >> Notes: >> Changes in v7: >> - Restore "label" and "partitions" properties (should be picked up via >> nand-controller.yaml but aren't) >> - Add/restore nand-on-flash-bbt and nand-ecc-mode which aren't covered >> by nand-controller.yaml. >> - Use "unevalautedProperties: false" >> - Corrections for clock-names, dma-names, nand-rb and nand-ecc-strength >> - Add pxa3xx-nand-controller example >> >> Changes in v6: >> - remove properties covered by nand-controller.yaml >> - add example using armada-8k compatible >> >> earlier changes: >> >> v5: >> 1) Get back "label" and "partitions" properties but without >> ref to the "partition.yaml" which was wrongly used. >> >> 2) Add "additionalProperties: false" for nand@ because all possible >> properties are described. >> >> v4: >> 1) Remove "label" and "partitions" properties >> >> 2) Use 2 clocks for A7K/8K platform which is a requirement >> >> v3: >> 1) Remove txt version from the MAINTAINERS list >> >> 2) Use enum for some of compatible strings >> >> 3) Drop: >> #address-cells >> #size-cells: >> >> as they are inherited from the nand-controller.yaml >> >> 4) Add restriction to use 2 clocks for A8K SoC >> >> 5) Dropped description for clock-names and extend it with >> minItems: 1 >> >> 6) Drop description for "dmas" >> >> 7) Use "unevalautedProperties: false" >> >> 8) Drop quites from yaml refs. >> >> 9) Use 4-space indentation for the example section >> >> v2: >> 1) Fixed warning by yamllint with incorrect indentation for compatible list >> >> .../bindings/mtd/marvell,nand-controller.yaml | 221 ++++++++++++++++++ >> .../devicetree/bindings/mtd/marvell-nand.txt | 126 ---------- >> MAINTAINERS | 1 - >> 3 files changed, 221 insertions(+), 127 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml >> delete mode 100644 Documentation/devicetree/bindings/mtd/marvell-nand.txt >> >> diff --git a/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml >> new file mode 100644 >> index 000000000000..7cd4a2e99343 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml >> @@ -0,0 +1,221 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/mtd/marvell,nand-controller.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Marvell NAND Flash Controller (NFC) >> + >> +maintainers: >> + - Miquel Raynal <miquel.raynal@xxxxxxxxxxx> >> + >> +properties: >> + compatible: >> + oneOf: >> + - items: >> + - const: marvell,armada-8k-nand-controller >> + - const: marvell,armada370-nand-controller > Apologies if I have missed this - but the commit message should probably > explain where this fallback came from since it does not appear to be > present in the original binding. Yes I'll mention it. >> + - enum: >> + - marvell,armada370-nand-controller >> + - marvell,pxa3xx-nand-controller >> + - marvell,armada-8k-nand >> + - marvell,armada370-nand >> + - marvell,pxa3xx-nand > Please mark these 3 as deprecated. Will do >> + >> + reg: >> + maxItems: 1 >> + >> + interrupts: >> + maxItems: 1 >> + >> + clocks: >> + description: >> + Shall reference the NAND controller clocks, the second one is >> + is only needed for the Armada 7K/8K SoCs > As a nit, allOf below invalidates this second part of the sentence (in > possibly a clearer way too). I'm not quite sure what you mean. Is it just that the description is redundant now that the schema enforces the requirement or am I actually not enforcing things the way I think. >> + minItems: 1 >> + maxItems: 2 >> + >> + clock-names: >> + minItems: 1 >> + items: >> + - const: core >> + - const: reg >> + >> + dmas: >> + maxItems: 1 >> + >> + dma-names: >> + items: >> + - enum: > I don't think the items: here is needed, enum on its own suffices, no? The trend in other bindings seems to be items: - const: value1 - const: value2 so I'll go with that. > > Cheers, > Conor.