Skip to contentSkip to conversation

dt-bindings: mtd: convert IBM NDFC binding to YAML

PATCH Superseded Rosen Penev 2 participants 2 messages Sep 23

Subsystems (2)

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 dt-bindings: mtd: convert IBM NDFC binding to YAML

The NDFC NAND flash controller was only described in a legacy text file, so dtbs_check reported "failed to match any schema with compatible:
['ibm,ndfc']" for the ndfc nodes of the bluestone, canyonlands, eiger, glacier, sequoia and warp device trees.

Convert the binding to the YAML format so those nodes match the generic nand-controller-legacy schema. Describe the node's reg, ccr and bank-settings properties, along with its "nand" chip node which carries the legacy partition layout.

Assisted-by LLM

---
v2: fix reg value

 .../devicetree/bindings/mtd/ibm,ndfc.txt      | 39 --------
 .../devicetree/bindings/mtd/ibm,ndfc.yaml     | 89 +++++++++++++++++++
 2 files changed, 89 insertions(+), 39 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mtd/ibm,ndfc.txt
 create mode 100644 Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml
Documentation/devicetree/bindings/mtd/ibm,ndfc.txt deleted +0 -39
deleted file mode 100644
index 869f0b5f16e8..000000000000
@@ -1,39 +0,0 @@
-AMCC NDFC (NanD Flash Controller)
-
-Required properties:
-- compatible : "ibm,ndfc".
-- reg : should specify chip select and size used for the chip (0x2000).
-
-Optional properties:
-- ccr : NDFC config and control register value (default 0).
-- bank-settings : NDFC bank configuration register value (default 0).
-
-Notes:
-- partition(s) - follows the OF MTD standard for partitions
-
-Example:
-
-ndfc@1,0 {
-	compatible = "ibm,ndfc";
-	reg = <0x00000001 0x00000000 0x00002000>;
-	ccr = <0x00001000>;
-	bank-settings = <0x80002222>;
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	nand {
-		#address-cells = <1>;
-		#size-cells = <1>;
-
-		partition@0 {
-			label = "kernel";
-			reg = <0x00000000 0x00200000>;
-		};
-		partition@200000 {
-			label = "root";
-			reg = <0x00200000 0x03E00000>;
-		};
-	};
-};
-
-
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +89 -0

89 lines not on this page · raw message

Signature · 1 line
2.55.0
#1 lore raw
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [Medium] dt-bindings: mtd: incorrectly anchored regex in patternProperties - [Medium] dt-bindings: mtd…

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] dt-bindings: mtd: incorrectly anchored regex in patternProperties
- [Medium] dt-bindings: mtd: schema validation bypassed for nand node
--

commit 56ea8b4c720a5df58f5f626346eba38c6d9ee900
Author: Rosen Penev <[email protected]>

dt-bindings: mtd: convert IBM NDFC binding to YAML

The NDFC NAND flash controller was only described in a legacy text file, so dtbs_check reported a failure to match any schema with the ibm,ndfc compatible. Convert the binding to the YAML format so those nodes match the generic nand-controller-legacy schema.

Quoted 5 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +0 -0
new file mode 100644
index 0000000000000..51ba0bd1d329d

[ ... ]

Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml line 47

Quoted 12 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +12 -0
+  nand:
+    type: object
+    description: NAND chip attached to the controller.
+
+    properties:
+      "#address-cells":
+        const: 1
+      "#size-cells":
+        const: 1
+
+    patternProperties:
+      "(^partition)?@[0-9a-f]+$":
         ^^^^^^^^^^^^^^^^^^^^^^^^^^

[Severity: Medium]
Does this regex incorrectly match any node ending with a unit address?

Because the start anchor is inside an optional group, the unanchored

@[0-9a-f]+$ allows it to match any node name ending in @<hex> (for example,
chip@0). This incorrectly applies the deprecated partition schema and its
unevaluatedProperties: false constraint to unrelated subnodes, breaking
schema validation for any device tree containing a node named
<anything>@<hex> under the nand node.

Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml line 52

Quoted 5 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +5 -0
+        $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node
+        deprecated: true
+        unevaluatedProperties: false
+
+    additionalProperties: true
                             ^^^^

[Severity: Medium]
Does setting additionalProperties to true on the nand subnode bypass schema validation?

This explicitly disables strict schema validation for the nand subnode, rendering its contents largely unvalidated. It allows arbitrary, undocumented, or misspelled properties to pass validation silently, which defeats the purpose of the YAML schema conversion for this node.

Should this node use additionalProperties: false or
unevaluatedProperties: false and explicitly define or reference the required standard NAND properties?

Quoted 4 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +4 -0
+
+required:
+  - compatible
+  - reg
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1