* [PATCHv2] dt-bindings: mtd: convert IBM NDFC binding to YAML
@ 2026-09-23 19:25 Rosen Penev
2026-09-23 19:32 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Rosen Penev @ 2026-09-23 19:25 UTC (permalink / raw)
To: devicetree
Cc: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
Rob Herring, Krzysztof Kozlowski, Conor Dooley,
open list:MEMORY TECHNOLOGY DEVICES (MTD), open list
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
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
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
diff --git a/Documentation/devicetree/bindings/mtd/ibm,ndfc.txt b/Documentation/devicetree/bindings/mtd/ibm,ndfc.txt
deleted file mode 100644
index 869f0b5f16e8..000000000000
--- a/Documentation/devicetree/bindings/mtd/ibm,ndfc.txt
+++ /dev/null
@@ -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>;
- };
- };
-};
-
-
diff --git a/Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml b/Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml
new file mode 100644
index 000000000000..51ba0bd1d329
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/ibm,ndfc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM/AMCC NDFC (NAND Flash Controller)
+
+maintainers:
+ - Miquel Raynal <miquel.raynal@bootlin.com>
+ - Richard Weinberger <richard@nod.at>
+
+description: |
+ The NDFC is the NAND flash controller integrated into the IBM/AMCC
+ PowerPC 44x SoCs.
+
+allOf:
+ - $ref: nand-controller-legacy.yaml#
+
+properties:
+ compatible:
+ const: ibm,ndfc
+
+ reg:
+ description: Chip select and size used for the chip.
+ maxItems: 1
+
+ ccr:
+ description: NDFC config and control register value.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ 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":
+ const: 1
+ "#size-cells":
+ const: 1
+
+ patternProperties:
+ "(^partition)?@[0-9a-f]+$":
+ $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node
+ deprecated: true
+ unevaluatedProperties: false
+
+ additionalProperties: true
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ ebc {
+ #address-cells = <2>;
+ #size-cells = <1>;
+
+ 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>;
+ };
+ };
+ };
+ };
+...
--
2.55.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCHv2] dt-bindings: mtd: convert IBM NDFC binding to YAML
2026-09-23 19:25 [PATCHv2] dt-bindings: mtd: convert IBM NDFC binding to YAML Rosen Penev
@ 2026-09-23 19:32 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-09-23 19:32 UTC (permalink / raw)
To: Rosen Penev; +Cc: conor+dt, devicetree, robh
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 <rosenp@gmail.com>
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.
> diff --git a/Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml b/Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml
> new file mode 100644
> index 0000000000000..51ba0bd1d329d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mtd/ibm,ndfc.yaml
[ ... ]
> + 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.
> + $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?
> +
> +required:
> + - compatible
> + - reg
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260923192528.52330-1-rosenp@gmail.com?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-23 19:32 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23 19:25 [PATCHv2] dt-bindings: mtd: convert IBM NDFC binding to YAML Rosen Penev
2026-09-23 19:32 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox