Skip to contentSkip to conversation

dt-bindings: memory-controllers: ingenic: Split out child node properties

PATCH In review Rob Herring 2 participants 2 messages May 25, 2022

Subsystems (3)
lore
Share & tools
lore

Rob Herring

author maintainer
#0 lore raw

PATCH 1/1 dt-bindings: memory-controllers: ingenic: Split out child node properties

Binding schemas which define child node properties such as memory controllers with timing properties need a separate schema which can be referenced from child device schemas. This is necessary for unevaluatedProperties checks to work properly.

Move the ingenic,nemc child properties to its own file and reference from ingenic,nand.yaml which describes a child NAND controller.

---
 .../ingenic,nemc-peripherals.yaml             | 46 +++++++++++++++++++
 .../memory-controllers/ingenic,nemc.yaml      | 32 -------------
 .../devicetree/bindings/mtd/ingenic,nand.yaml |  1 +
 3 files changed, 47 insertions(+), 32 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml
Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml new file +46 -0
new file mode 100644
index 000000000000..b8ed52a44d57
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ingenic SoCs NAND / External Memory Controller (NEMC) devicetree bindings
+
+maintainers:
+  - Paul Cercueil <[email protected]>
+
+properties:
+  reg:
+    minItems: 1
+    maxItems: 255
+
+  ingenic,nemc-bus-width:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [8, 16]
+    description: Specifies the bus width in bits.
+
+  ingenic,nemc-tAS:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Address setup time in nanoseconds.
+
+  ingenic,nemc-tAH:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Address hold time in nanoseconds.
+
+  ingenic,nemc-tBP:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Burst pitch time in nanoseconds.
+
+  ingenic,nemc-tAW:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Address wait time in nanoseconds.
+
+  ingenic,nemc-tSTRV:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Static memory recovery time in nanoseconds.
+
+required:
+  - reg
+
+additionalProperties: true
+...
Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml +0 -32
index 24f9e1982028..dd13a5106d6c 100644
@@ -39,38 +39,6 @@ properties:
 patternProperties:
   ".*@[0-9]+$":
     type: object
-    properties:
-      reg:
-        minItems: 1
-        maxItems: 255
-
-      ingenic,nemc-bus-width:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        enum: [8, 16]
-        description: Specifies the bus width in bits.
-
-      ingenic,nemc-tAS:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Address setup time in nanoseconds.
-
-      ingenic,nemc-tAH:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Address hold time in nanoseconds.
-
-      ingenic,nemc-tBP:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Burst pitch time in nanoseconds.
-
-      ingenic,nemc-tAW:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Address wait time in nanoseconds.
-
-      ingenic,nemc-tSTRV:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Static memory recovery time in nanoseconds.
-
-    required:
-      - reg
 
 required:
   - compatible
Documentation/devicetree/bindings/mtd/ingenic,nand.yaml +1 -0
index 9de8ef6e59ca..8c272c842bfd 100644
@@ -11,6 +11,7 @@ maintainers:
 
 allOf:
   - $ref: nand-controller.yaml#
+  - $ref: /schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
 
 properties:
   compatible:
Signature · 1 line
2.34.1
Acked-by on v1 1/1
#1 lore raw

Hi Rob,

Quoted 9 lines · Rob Herring

Binding schemas which define child node properties such as memory controllers with timing properties need a separate schema which can be referenced from child device schemas. This is necessary for unevaluatedProperties checks to work properly.

Move the ingenic,nemc child properties to its own file and reference from ingenic,nand.yaml which describes a child NAND controller.

Cheers,
-Paul

Quoted 124 lines
---
 .../ingenic,nemc-peripherals.yaml             | 46 
+++++++++++++++++++
 .../memory-controllers/ingenic,nemc.yaml      | 32 -------------
 .../devicetree/bindings/mtd/ingenic,nand.yaml |  1 +
 3 files changed, 47 insertions(+), 32 deletions(-)
 create mode 100644 

Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml

(quoted diff) +0 -0
new file mode 100644
index 000000000000..b8ed52a44d57

b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml

Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml new file +4 -0
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: 

http://devicetree.org/schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#

(quoted diff) +2 -0
+
+title: Ingenic SoCs NAND / External Memory Controller (NEMC) 

devicetree bindings

Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml new file +39 -0
+
+maintainers:
+  - Paul Cercueil <[email protected]>
+
+properties:
+  reg:
+    minItems: 1
+    maxItems: 255
+
+  ingenic,nemc-bus-width:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [8, 16]
+    description: Specifies the bus width in bits.
+
+  ingenic,nemc-tAS:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Address setup time in nanoseconds.
+
+  ingenic,nemc-tAH:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Address hold time in nanoseconds.
+
+  ingenic,nemc-tBP:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Burst pitch time in nanoseconds.
+
+  ingenic,nemc-tAW:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Address wait time in nanoseconds.
+
+  ingenic,nemc-tSTRV:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Static memory recovery time in nanoseconds.
+
+required:
+  - reg
+
+additionalProperties: true
+...
Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml +0 -1
index 24f9e1982028..dd13a5106d6c 100644
--- 

a/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
+++
b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml

Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml +0 -32
@@ -39,38 +39,6 @@ properties:
 patternProperties:
   ".*@[0-9]+$":
     type: object
-    properties:
-      reg:
-        minItems: 1
-        maxItems: 255
-
-      ingenic,nemc-bus-width:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        enum: [8, 16]
-        description: Specifies the bus width in bits.
-
-      ingenic,nemc-tAS:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Address setup time in nanoseconds.
-
-      ingenic,nemc-tAH:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Address hold time in nanoseconds.
-
-      ingenic,nemc-tBP:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Burst pitch time in nanoseconds.
-
-      ingenic,nemc-tAW:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Address wait time in nanoseconds.
-
-      ingenic,nemc-tSTRV:
-        $ref: /schemas/types.yaml#/definitions/uint32
-        description: Static memory recovery time in nanoseconds.
-
-    required:
-      - reg
 
 required:
   - compatible
Documentation/devicetree/bindings/mtd/ingenic,nand.yaml +1 -1
index 9de8ef6e59ca..8c272c842bfd 100644
@@ -11,6 +11,7 @@ maintainers:
 
 allOf:
   - $ref: nand-controller.yaml#
+  - $ref: /schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
 
 properties:
   compatible:
--

2.34.1