Hello Krzysztof, On 4/7/2022 10:48 AM, Krzysztof Kozlowski wrote: (...) >> +properties: >> + compatible: >> + const: sercomm,sc-partitions >> + >> + scpart-id: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: Partition id in Sercomm partition map > Do you really need it? The reg should define the order, unless you > expect some incomplete partition list? > > In any case this requires vendor prefix. I'm not sure that "scpart-id" is necessary here. "sercomm,sc-partitions" is necessary. I'm going to add vendor prefix in a separate patch. Is this ok? --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index 01430973ecec..65ff22364fb3 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -1082,6 +1082,8 @@ patternProperties: description: Sensirion AG "^sensortek,.*": description: Sensortek Technology Corporation + "^sercomm,.*": + description: Sercomm (Suzhou) Corporation "^sff,.*": description: Small Form Factor Committee "^sgd,.*": -- >> + >> +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). > Are you sure that you tested your bindings? You miss here address/size > cells and children, so you should have big fat warning. > > Plus your DTS example has error and does not compile... Whole dts, for the real device (not for example), was tested many times. Thank you for your feedback! I checked the another examples and there are no any warnings now. But I'm not yet sure that "properties" and "required" are correct. What do you think (or what else I have to read / check)? --- .../mtd/partitions/sercomm,sc-partitions.yaml | 70 +++++++++++++++++++ 1 file changed, 70 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..cb171a0383aa --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/partitions/sercomm,sc-partitions.yaml @@ -0,0 +1,70 @@ +# 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). + +maintainers: + - Mikhail Zhilkin <csharper2005@xxxxxxxxx> + +properties: + compatible: + const: sercomm,sc-partitions + + "#address-cells": true + + "#size-cells": true + +required: + - "#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, > Krzysztof Best regards, Mikhail