Skip to contentSkip to conversation

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

PATCH Superseded Rosen Penev 2 participants 2 messages Sep 24

Subsystems (2)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 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

---
v3: fix wrong regex
v2: fix reg value

 .../devicetree/bindings/mtd/ibm,ndfc.txt      | 39 --------
 .../devicetree/bindings/mtd/ibm,ndfc.yaml     | 88 +++++++++++++++++++
 2 files changed, 88 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 +88 -0

88 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 1 potential issue(s) to consider: - [Medium] dt-bindings: mtd: ibm,ndfc schema rejects modern partitions --

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] dt-bindings: mtd: ibm,ndfc schema rejects modern partitions
--

commit f1a26fcb68368a1ab8dd195e7a927c46335d8315
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 "failed to match any schema". This commit converts the binding to the YAML format.

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

[ ... ]

Quoted 10 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +10 -0
+  bank-settings:
+    description: NDFC bank configuration register value.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  nand:
+    type: object
+    description: NAND chip attached to the controller.
+
+    properties:
+      "#address-cells":

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

Quoted 10 lines
Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml new file +10 -0
+        const: 1
+      "#size-cells":
+        const: 1
+
+    patternProperties:
+      "^partition@[0-9a-f]+$":
+        $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node
+        deprecated: true
+
+    unevaluatedProperties: false

[Severity: Medium]
Does this strict definition of the nand child node prevent device trees from using modern partition layouts?

Because unevaluatedProperties is set to false without a reference to /schemas/mtd/mtd.yaml# or /schemas/mtd/nand-chip.yaml#, the schema will reject modern generic MTD properties.

For example, if a device tree author updates their DTS files by replacing deprecated direct partition@ nodes with the modern partitions subnode (using compatible = "fixed-partitions"), dt_binding_check will fail.

Additionally, the node name nand (without a unit address) does not match the

^nand@[a-f0-9]$ regex in the inherited nand-controller-legacy.yaml.

Could this be updated to allow the correct modern alternatives?

Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1