@@ -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(-)