On 25/10/2022 08:52, Vadym Kochan wrote: > On Tue, 25 Oct 2022 08:25:01 -0400, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: >> On 25/10/2022 06:17, Vadym Kochan wrote: >>> 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> >>> --- >>> >>> v4: >>> 1) Remove "label" and "partitions" properties >> >> I think you did not read the feedback. >> >> >> (...) >> >>> + >>> + marvell,system-controller: >>> + $ref: /schemas/types.yaml#/definitions/phandle >>> + description: Syscon node that handles NAND controller related registers >>> + >>> +patternProperties: >>> + "^nand@[0-3]$": >>> + type: object >>> + properties: >>> + reg: >>> + minimum: 0 >>> + maximum: 3 >>> + >>> + nand-rb: >>> + minimum: 0 >>> + maximum: 1 >>> + >>> + nand-ecc-strength: >>> + enum: [1, 4, 8] >>> + >>> + nand-on-flash-bbt: true >>> + >>> + nand-ecc-mode: true >>> + >>> + nand-ecc-algo: >>> + description: | >>> + This property is essentially useful when not using hardware ECC. >>> + Howerver, it may be added when using hardware ECC for clarification >>> + but will be ignored by the driver because ECC mode is chosen depending >>> + on the page size and the strength required by the NAND chip. >>> + This value may be overwritten with nand-ecc-strength property. >>> + >>> + nand-ecc-step-size: >>> + description: | >>> + Marvell's NAND flash controller does use fixed strength >>> + (1-bit for Hamming, 16-bit for BCH), so the actual step size >>> + will shrink or grow in order to fit the required strength. >>> + Step sizes are not completely random for all and follow certain >>> + patterns described in AN-379, "Marvell SoC NFC ECC". >>> + >>> + marvell,nand-keep-config: >>> + description: | >>> + Orders the driver not to take the timings from the core and >>> + leaving them completely untouched. Bootloader timings will then >>> + be used. >>> + $ref: /schemas/types.yaml#/definitions/flag >>> + >>> + marvell,nand-enable-arbiter: >>> + description: | >>> + To enable the arbiter, all boards blindly used it, >>> + this bit was set by the bootloader for many boards and even if >>> + it is marked reserved in several datasheets, it might be needed to set >>> + it (otherwise it is harmless) so whether or not this property is set, >>> + the bit is selected by the driver. >>> + $ref: /schemas/types.yaml#/definitions/flag >>> + deprecated: true >>> + >>> + required: >>> + - reg >>> + - nand-rb >> >> I have no clue why you are doing some random changes. Now you dropped >> additionalProperties for nand@ about which no one asked you to drop. >> >> No. It *must* be here. > > Sorry for this mess, I was confused with the "label" and "partitions" > because I got errors about these properties when I used only > "additionalProperties: false", so I tried to put reference to partition.yaml. > > Then I looked at other nand-controllers schemas and I did not find inclusion of partition.yaml > for them so I decided to just drop it at all. My understanding is that "additionalProperties:false" > is needed for nand@ if to have "label" and "partitions" properties, otherwise it is not needed. A final schema (not used by other schemas) must always finish with additional/unevaluatedProperties false. You have errors since beginning - I wrote about it in your first patchset (v1). You had error visible after adding proper unevaluatedProperties in proper place. You have partitions node, for partitions. But you reference only *one* partition. Best regards, Krzysztof