Message ID | 20220820194804.3352415-8-andrew@lunn.ch |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | Start converting MVEBU bindings to YAML | expand |
Context | Check | Description |
---|---|---|
robh/checkpatch | success | |
robh/patch-applied | success | |
robh/dt-meta-schema | fail | build log |
On Sat, 20 Aug 2022 21:48:00 +0200, Andrew Lunn wrote: > The Marvell Orion NAND driver comes from before the time of the > standardised NAND binding. The controller only supports a single > device, and expects the NAND partition table to be directly in the > controller node. This goes against the standardised NAND binding which > expects a sub node per NAND device, which contains the partition > table. > > Since the partition table contains a reg property indicating the start > address of the partition and its length, it needs #size-cells set to > 1. However, for a list of nand devices, the reg value is the device > number, requiring #size-cells of 0. > > Add an exception to nand-controller.yaml to allow this #size-cells > value when the compatible matches the orion controller. > > In order that the example works, it needs a compatible string so the > comparison can be made. > > Signed-off-by: Andrew Lunn <andrew@lunn.ch> > --- > .../bindings/mtd/nand-controller.yaml | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/mtd/nand-controller.example.dtb:0:0: /example-0/nand-controller: failed to match any schema with compatible: ['bar'] doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/patch/ This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit.
diff --git a/Documentation/devicetree/bindings/mtd/nand-controller.yaml b/Documentation/devicetree/bindings/mtd/nand-controller.yaml index 359a015d4e5a..ab90e34557ad 100644 --- a/Documentation/devicetree/bindings/mtd/nand-controller.yaml +++ b/Documentation/devicetree/bindings/mtd/nand-controller.yaml @@ -34,7 +34,7 @@ properties: const: 1 "#size-cells": - const: 0 + enum: [0, 1] ranges: true @@ -130,11 +130,26 @@ required: - "#address-cells" - "#size-cells" +if: + properties: + compatible: + contains: + const: marvell,orion-nand +then: + properties: + "#size-cells": + const: 1 +else: + properties: + "#size-cells": + const: 0 + additionalProperties: true examples: - | nand-controller { + compatible = "bar"; #address-cells = <1>; #size-cells = <0>; cs-gpios = <0>, <&gpioA 1>; /* A single native CS is available */
The Marvell Orion NAND driver comes from before the time of the standardised NAND binding. The controller only supports a single device, and expects the NAND partition table to be directly in the controller node. This goes against the standardised NAND binding which expects a sub node per NAND device, which contains the partition table. Since the partition table contains a reg property indicating the start address of the partition and its length, it needs #size-cells set to 1. However, for a list of nand devices, the reg value is the device number, requiring #size-cells of 0. Add an exception to nand-controller.yaml to allow this #size-cells value when the compatible matches the orion controller. In order that the example works, it needs a compatible string so the comparison can be made. Signed-off-by: Andrew Lunn <andrew@lunn.ch> --- .../bindings/mtd/nand-controller.yaml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)