Re: [PATCH v4 4/4] dt-bindings: memory-controllers: Convert fsl,elbc to YAML

2025-03-14 Thread Rob Herring (Arm)


On Thu, 13 Mar 2025 22:35:47 +0100, J. Neuschäfer wrote:
> Convert the Freescale localbus controller bindings from text form to
> YAML. Compared to the .txt version, the YAML binding contains a new
> usage example with FCM NAND flash, and a full list of compatible strings
> based on current usage in arch/powerpc/boot/dts/.
> 
> Note that the both the compatible strings and the unit address format
> are kept as-is, for compatibility with existing kernels and device
> trees, as well as unit address readability. This results in dts
> validation warnings:
> 
>   Warning (simple_bus_reg): /example-0/localbus@f0010100/board-control@1,0:
>   simple-bus unit address format error, expected "1"
> 
> Signed-off-by: J. Neuschäfer 
> ---
> 
> V4:
> - no changes
> 
> V3:
> - move this patch after the GPCM/FCM patches to dtschema/dtc warnings
>   due to missing bindings for fsl,elbc-gpcm-uio and fsl,elbc-fcm-nand
> - add "simple-bus" again, for compatibility with existing DTs/drivers
>   based on discussion with Crystal Wood and Rob Herring
> - fix fsl,pq2-localbus compatible properties based on mgcoge.dts / ep8248e.dts
>   (was missing "simple-bus")
> - add board-control (bcsr) example again, now using the compatible
>   string listed in Documentation/devicetree/bindings/board/fsl,bcsr.yaml
> - remove interrupt-parent property from example
> - rework the commit message
> 
> V2:
> - fix order of properties in examples, according to dts coding style
> - move to Documentation/devicetree/bindings/memory-controllers
> - clarify the commit message a tiny bit
> - remove unnecessary multiline markers (|)
> - define address format in patternProperties
> - trim subject line (remove "binding")
> - remove use of "simple-bus", because it's technically incorrect
> ---
>  .../bindings/memory-controllers/fsl,elbc.yaml  | 158 
> +
>  .../devicetree/bindings/powerpc/fsl/lbc.txt|  43 --
>  2 files changed, 158 insertions(+), 43 deletions(-)
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/memory-controllers/fsl,elbc.example.dts:29.23-34.15:
 Warning (simple_bus_reg): /example-0/localbus@f0010100/flash@0,0: simple-bus 
unit address format error, expected "0"
Documentation/devicetree/bindings/memory-controllers/fsl,elbc.example.dts:36.31-39.15:
 Warning (simple_bus_reg): /example-0/localbus@f0010100/board-control@1,0: 
simple-bus unit address format error, expected "1"
Documentation/devicetree/bindings/memory-controllers/fsl,elbc.example.dts:41.31-46.15:
 Warning (simple_bus_reg): /example-0/localbus@f0010100/simple-periph@2,0: 
simple-bus unit address format error, expected "2"
Documentation/devicetree/bindings/memory-controllers/fsl,elbc.example.dts:82.23-89.15:
 Warning (simple_bus_reg): /example-1/localbus@e0005000/flash@0,0: simple-bus 
unit address format error, expected "0"
Documentation/devicetree/bindings/memory-controllers/fsl,elbc.example.dts:91.22-97.15:
 Warning (simple_bus_reg): /example-1/localbus@e0005000/nand@1,0: simple-bus 
unit address format error, expected "1"

doc reference errors (make refcheckdocs):
Warning: Documentation/devicetree/bindings/display/ssd1289fb.txt references a 
file that doesn't exist: Documentation/devicetree/bindings/powerpc/fsl/lbc.txt
Documentation/devicetree/bindings/display/ssd1289fb.txt: 
Documentation/devicetree/bindings/powerpc/fsl/lbc.txt

See 
https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250313-ppcyaml-elbc-v4-4-55903722d...@posteo.net

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.




[PATCH v4 4/4] dt-bindings: memory-controllers: Convert fsl,elbc to YAML

2025-03-13 Thread J . Neuschäfer via B4 Relay
From: "J. Neuschäfer" 

Convert the Freescale localbus controller bindings from text form to
YAML. Compared to the .txt version, the YAML binding contains a new
usage example with FCM NAND flash, and a full list of compatible strings
based on current usage in arch/powerpc/boot/dts/.

Note that the both the compatible strings and the unit address format
are kept as-is, for compatibility with existing kernels and device
trees, as well as unit address readability. This results in dts
validation warnings:

  Warning (simple_bus_reg): /example-0/localbus@f0010100/board-control@1,0:
  simple-bus unit address format error, expected "1"

Signed-off-by: J. Neuschäfer 
---

V4:
- no changes

V3:
- move this patch after the GPCM/FCM patches to dtschema/dtc warnings
  due to missing bindings for fsl,elbc-gpcm-uio and fsl,elbc-fcm-nand
- add "simple-bus" again, for compatibility with existing DTs/drivers
  based on discussion with Crystal Wood and Rob Herring
- fix fsl,pq2-localbus compatible properties based on mgcoge.dts / ep8248e.dts
  (was missing "simple-bus")
- add board-control (bcsr) example again, now using the compatible
  string listed in Documentation/devicetree/bindings/board/fsl,bcsr.yaml
- remove interrupt-parent property from example
- rework the commit message

V2:
- fix order of properties in examples, according to dts coding style
- move to Documentation/devicetree/bindings/memory-controllers
- clarify the commit message a tiny bit
- remove unnecessary multiline markers (|)
- define address format in patternProperties
- trim subject line (remove "binding")
- remove use of "simple-bus", because it's technically incorrect
---
 .../bindings/memory-controllers/fsl,elbc.yaml  | 158 +
 .../devicetree/bindings/powerpc/fsl/lbc.txt|  43 --
 2 files changed, 158 insertions(+), 43 deletions(-)

diff --git a/Documentation/devicetree/bindings/memory-controllers/fsl,elbc.yaml 
b/Documentation/devicetree/bindings/memory-controllers/fsl,elbc.yaml
new file mode 100644
index 
..620d7e7c62df35c754a01498391d35ede03cdf87
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/fsl,elbc.yaml
@@ -0,0 +1,158 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/fsl,elbc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Enhanced Local Bus Controller
+
+maintainers:
+  - J. Neuschäfer 
+
+properties:
+  $nodename:
+pattern: "^localbus@[0-9a-f]+$"
+
+  compatible:
+oneOf:
+  - items:
+  - enum:
+  - fsl,mpc8313-elbc
+  - fsl,mpc8315-elbc
+  - fsl,mpc8377-elbc
+  - fsl,mpc8378-elbc
+  - fsl,mpc8379-elbc
+  - fsl,mpc8536-elbc
+  - fsl,mpc8569-elbc
+  - fsl,mpc8572-elbc
+  - fsl,p1020-elbc
+  - fsl,p1021-elbc
+  - fsl,p1023-elbc
+  - fsl,p2020-elbc
+  - fsl,p2041-elbc
+  - fsl,p3041-elbc
+  - fsl,p4080-elbc
+  - fsl,p5020-elbc
+  - fsl,p5040-elbc
+  - const: fsl,elbc
+  - const: simple-bus
+
+  - items:
+  - enum:
+  - fsl,mpc8247-localbus
+  - fsl,mpc8248-localbus
+  - fsl,mpc8272-localbus
+  - const: fsl,pq2-localbus
+  - const: simple-bus
+
+  - items:
+  - enum:
+  - fsl,mpc8247-localbus
+  - fsl,mpc8248-localbus
+  - fsl,mpc8360-localbus
+  - const: fsl,pq2pro-localbus
+  - const: simple-bus
+
+  - items:
+  - enum:
+  - fsl,mpc8540-localbus
+  - fsl,mpc8544-lbc
+  - fsl,mpc8544-localbus
+  - fsl,mpc8548-lbc
+  - fsl,mpc8548-localbus
+  - fsl,mpc8560-localbus
+  - fsl,mpc8568-localbus
+  - const: fsl,pq3-localbus
+  - const: simple-bus
+
+  reg:
+maxItems: 1
+
+  interrupts:
+maxItems: 1
+
+  "#address-cells":
+enum: [2, 3]
+description:
+  The first cell is the chipselect number, and the remaining cells are the
+  offset into the chipselect.
+
+  "#size-cells":
+enum: [1, 2]
+description:
+  Either one or two, depending on how large each chipselect can be.
+
+  ranges:
+description:
+  Each range corresponds to a single chipselect, and covers the entire
+  access window as configured.
+
+patternProperties:
+  # format: name@chipselect,address
+  "^.*@[0-9a-f]+,[0-9a-f]+$":
+type: object
+
+additionalProperties: false
+
+examples:
+  - |
+localbus@f0010100 {
+compatible = "fsl,mpc8272-localbus",
+ "fsl,pq2-localbus",
+ "simple-bus";
+reg = <0xf0010100 0x40>;
+ranges = <0x0 0x0 0xfe00 0x0200
+  0x1 0x0 0xf4