Hello, During a yaml conversion review, Krzysztof opened the discussion about the links and references made between the different files in the mtd bindings. I figured out some minimal changes might be needed to properly reference everything correctly and ensure we constrain as much as possible the existing bindings. That is what I tried to do here. The idea is: * partition.yaml defines one MTD partition * parsers/*.yaml define partition parsers (mainly compatibles) * mtd.yaml contains the generic definition of any mtd device (nand, spi-nand, spi-nor, nor, sram, etc), in particular, it defines the various partition formats (legacy and current) and references partition.yaml as well as a list of all the possible parsers within a "partitions" node. * nand-chip.yaml, jedec,spi-nor, mtd-physmap.yaml all describe real instances of mtd device, each of them with a different underlying technology, they reference mtd.yaml * nand-controller.yaml has subnodes which reference nand-chip.yaml. * Specific NAND controller bindings reference nand-controller.yaml. I've tested each and every patch with the following command and it worked fine: $ make dt_binding_check -j10 DT_CHECKER_FLAG=-m DT_SCHEMA_FILES=mtd/ Comments welcome of course :-) Cheers, Miquèl Changes in v2: * Fixed all the missing references to partitions.txt. * Created a proper partitions.yaml file to cut the logic * Constrained #{address,size}-cells to 1 or 2. * Used the description advised by Rob to list all the possible partition parsers without having to actually duplicate the compatibles. * Deprecated the #{address,size}-cells properties when relevant. * Fixed a regex pattern to match all sram device node names (including ones defined under memory-controllers. * Added a comment on another "additionalProperties: true" situation. * Dropped even more duplicated properties. * Fixed a few typos (like s/phymap/physmap/). * Changed qcom,smem-part partition type. * Standardized the style in the various examples. * Improved the nvmem-cells file as well. * Added an example to the sunxi-nand bindings. Miquel Raynal (17): dt-bindings: mtd: Clarify all partition subnodes dt-bindings: mtd: Remove useless file about partitions dt-bindings: mtd: nand-chip: Reference mtd.yaml dt-bindings: mtd: nand: Drop common properties already defined in generic files dt-bindings: mtd: nand: Standardize the child node name dt-bindings: mtd: ingenic: Mark partitions in the controller node as deprecated dt-bindings: mtd: onenand: Mention the expected node name dt-bindings: mtd: sunxi-nand: Add an example to validate the bindings dt-bindings: mtd: spi-nor: Drop common properties dt-bindings: mtd: physmap: Reuse the generic definitions dt-bindings: mtd: partitions: Constrain the list of parsers dt-bindings: mtd: partitions: Change qcom,smem-part partition type dt-bindings: mtd: nvmem-cells: Fix example dt-bindings: mtd: nvmem-cells: Inherit from MTD partitions dt-bindings: mtd: Argue in favor of keeping additionalProperties set to true dt-bindings: mtd: Drop object types when referencing other files dt-bindings: mtd: Standardize the style in the examples .../mtd/allwinner,sun4i-a10-nand.yaml | 34 +++-- .../bindings/mtd/arasan,nand-controller.yaml | 5 +- .../bindings/mtd/arm,pl353-nand-r2p1.yaml | 30 ++--- .../devicetree/bindings/mtd/atmel-nand.txt | 6 +- .../bindings/mtd/brcm,brcmnand.yaml | 80 ++++++------ .../devicetree/bindings/mtd/denali,nand.yaml | 2 +- .../devicetree/bindings/mtd/ingenic,nand.yaml | 116 ++++++++--------- .../bindings/mtd/intel,lgm-ebunand.yaml | 48 +++---- .../bindings/mtd/jedec,spi-nor.yaml | 14 --- .../devicetree/bindings/mtd/lpc32xx-mlc.txt | 2 +- .../devicetree/bindings/mtd/lpc32xx-slc.txt | 2 +- .../bindings/mtd/microchip,mchp48l640.yaml | 14 +-- .../devicetree/bindings/mtd/mtd-physmap.yaml | 7 +- .../devicetree/bindings/mtd/mtd.yaml | 24 +++- .../devicetree/bindings/mtd/mtk-nand.txt | 2 +- .../devicetree/bindings/mtd/nand-chip.yaml | 4 + .../bindings/mtd/nand-controller.yaml | 2 +- .../devicetree/bindings/mtd/partition.txt | 33 ----- .../partitions/arm,arm-firmware-suite.yaml | 2 + .../partitions/brcm,bcm4908-partitions.yaml | 2 + .../brcm,bcm947xx-cfe-partitions.yaml | 2 + .../mtd/partitions/linksys,ns-partitions.yaml | 2 + .../bindings/mtd/partitions/nvmem-cells.yaml | 4 +- .../bindings/mtd/partitions/partition.yaml | 1 + .../bindings/mtd/partitions/partitions.yaml | 41 ++++++ .../mtd/partitions/qcom,smem-part.yaml | 32 ++--- .../bindings/mtd/partitions/redboot-fis.yaml | 6 + .../devicetree/bindings/mtd/qcom,nandc.yaml | 117 +++++++++--------- .../bindings/mtd/st,stm32-fmc2-nand.yaml | 47 +++---- .../bindings/mtd/ti,am654-hbmc.yaml | 36 +++--- .../bindings/mtd/ti,gpmc-onenand.yaml | 3 + drivers/mtd/parsers/Kconfig | 2 +- 32 files changed, 380 insertions(+), 342 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mtd/partition.txt create mode 100644 Documentation/devicetree/bindings/mtd/partitions/partitions.yaml -- 2.34.1