On 29/04/2022 17:26, Mikhail Zhilkin wrote: > On 4/29/2022 9:46 AM, Krzysztof Kozlowski wrote: > >>>> I am sorry, but you changed now a lot in the bindings and it looks >>>> entirely different. Things previously being correct now are wrong, so >>>> rather start from your old bindings... >>> >>> Looks like I'm a bit confused... I use dual "compatible" in my real dts >>> and I realized that: >>> >>> 1. Therefore I have to use dual "compatible" in example too: >>> >>> compatible = "sercomm,sc-partitions", "fixed-partitions"; >>> >>> 2. When I'm trying to reuse "fixed-partitions" compatible from >>> fixed-partitions.yaml in my new .yaml I get "too long" errors. >> Yes, the fixed-partitions.yaml would have to be changed to allow extension. > > Well. > >>> Real dts: >>> >>> Link: >>> https://github.com/openwrt/openwrt/blob/edcc1a9a734bb3fcdc9242025290d3f173e71b78/target/linux/ramips/dts/mt7621_beeline_smartbox-giga.dts#L79 >>> >>> So, I currently found another solution - to extend fixed-partitions.yaml >>> with "sercomm,sc-partitions". Is It ok from your side? Can I use this >>> code in v3? >> Not really, I don't understand why do you need it > > The main idea is keeping original Sercomm firmware behavior: > > 1. If dynamic partition map found then use offsets and mtd sizes stored > in partition map. It's provided by "sercomm,sc-partitions" compatible. > > 2. If dynamic partition map doesn't exist or broken then default values > (from dts) are used. It's provided by "fixed-partitions" compatible. Then you need to adjust fixed-partitions for such case. See syscon case (all over the tree and Documentation/devicetree/bindings/mfd/syscon.yaml). > >> and it does not >> include our previous talks. > > At the time, I didn't realize how important is it. Understanding began > to come after dozens of experiments and checking the similar Linux patches. > >>> diff --git >>> a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml >>> b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml >>> index ea4cace6a955..9eebe39a57fb 100644 >>> --- a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml >>> +++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml >>> @@ -19,7 +19,11 @@ maintainers: >>> >>> properties: >>> compatible: >>> - const: fixed-partitions >>> + oneOf: >>> + - const: fixed-partitions >>> + - items: >>> + - const: sercomm,sc-partitions >>> + - const: fixed-partitions >>> >>> "#address-cells": true >>> >>> @@ -27,7 +31,18 @@ properties: >>> >>> patternProperties: >>> "@[0-9a-f]+$": >>> - $ref: "partition.yaml#" >>> + allOf: >>> + - $ref: "partition.yaml#" >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + const: sercomm,sc-partitions >>> + then: >>> + properties: >>> + scpart-id: >> It still misses vendor prefix and we agreed you don't need it, didn't we? > > Do you mean "sercomm" vendor prefix? If so then we agreed that I include > it in a separate patch: There was some misunderstanding then. We talk here about scpart-id name. Adding vendor prefix cannot be a separate patch because it does not make much sense. You add new property with wrong name and immediately change/fix it in next patch. No, it should have proper name since beginning. The property is not used in the kernel. > > Link: > https://lore.kernel.org/linux-mtd/1b391399-984b-7a63-3265-62ef09caec39@xxxxxxxxx/ > > I'm going to send it in v3: > > --- > dt-bindings: Add Sercomm (Suzhou) Corporation vendor prefix > > Update Documentation/devicetree/bindings/vendor-prefixes.yaml to include > "sercomm" as a vendor prefix for "Sercomm (Suzhou) Corporation". > Company website: > Link: https://www.sercomm.com/ > > Signed-off-by: Mikhail Zhilkin <csharper2005@xxxxxxxxx> > --- > 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 This can be separate patch, but it's separate issue... Best regards, Krzysztof