On 4/9/2022 9:04 PM, Mikhail Zhilkin wrote: >>>>> +required: >>>>> + - compatible >>>> Missing reg. >>> reg isn't required. Parser can read partition offsets and sizes from >>> SC PART MAP table. Or do you mean something else? All is ok >>> without reg definition in "Example" (except the warns that reg property >>> is missing). >> reg might not be required for current implementation but it is required >> by devicetree for every node with unit address. Do you expect here nodes >> without unit addresses? > Only "partitions" node has no unit address. All subnodes have unit > addresses and therefore have to have reg property. I've just realized > that "fixed-partitions.yaml" is almost my case. It looks like I can > copy'n'paste "required" and "*properties". > Do you mind if I don't reinvent the wheel and reuse this good > practice? > > Here's what I got (no any warnings appears): I'm sorry, Krzysztof & All. Here is the final one. --- .../mtd/partitions/sercomm,sc-partitions.yaml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Documentation/devicetree/bindings/mtd/partitions/sercomm,sc-partitions.yaml diff --git a/Documentation/devicetree/bindings/mtd/partitions/sercomm,sc-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/sercomm,sc-partitions.yaml new file mode 100644 index 000000000000..33172f0be92a --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/partitions/sercomm,sc-partitions.yaml @@ -0,0 +1,78 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mtd/partitions/sercomm,sc-partitions.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Sercomm Partitions + +description: | + Sercomm is one of hardware manufacturers providing SoCs used in home routers. + The Sercomm partition map table contains information about non-standard + partition offsets and sizes (depending on the bad blocks presence and their + locations). Partition map is used by many Sercomm-based Ralink devices (e.g. + Beeline, Netgear). + + The partition table should be a node named "partitions". Partitions are then + defined as subnodes. + +maintainers: + - Mikhail Zhilkin <csharper2005@xxxxxxxxx> + +properties: + compatible: + const: sercomm,sc-partitions + + "#address-cells": true + + "#size-cells": true + +patternProperties: + "@[0-9a-f]+$": + $ref: "partition.yaml#" + +required: + - compatible + - "#address-cells" + - "#size-cells" + +additionalProperties: true + +examples: + - | + partitions { + compatible = "sercomm,sc-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x100000>; + scpart-id = <0>; + read-only; + }; + + partition@100000 { + label = "dynamic partition map"; + reg = <0x100000 0x100000>; + scpart-id = <1>; + }; + + factory: partition@200000 { + label = "Factory"; + reg = <0x200000 0x100000>; + scpart-id = <2>; + read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_factory_21000: macaddr@21000 { + reg = <0x21000 0x6>; + }; + }; + + /* ... */ + + }; -- > Best regards, > Mikhail