diff mbox series

[RESEND,v2] dt-bindings: mfd: armltd: Move Arm board syscon's to separate schema

Message ID 20231020142252.3113716-2-robh@kernel.org
State Not Applicable
Headers show
Series [RESEND,v2] dt-bindings: mfd: armltd: Move Arm board syscon's to separate schema | expand

Checks

Context Check Description
robh/dt-meta-schema success
robh/checkpatch success
robh/patch-applied success
robh/dtbs-check warning build log

Commit Message

Rob Herring (Arm) Oct. 20, 2023, 2:22 p.m. UTC
The Arm Ltd board bindings are a bit unusual in that they define child
nodes for various syscon's. The schemas are also incomplete as they lack
constraints on having additional properties and some properties are
missing. As the bindings for the different platforms only vary by
compatibles, combine them into a single schema doc.

Add the "arm,im-pd1-syscon" compatible which was not documented. Add
"ranges", "#address-cells", and "#size-cells properties which were
missing.

With this, fix the error exposed in the register-bit-led binding.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Rob Herring <robh@kernel.org>
---
 .../bindings/arm/arm,integrator.yaml          | 39 -----------
 .../devicetree/bindings/arm/arm,realview.yaml | 37 ----------
 .../bindings/arm/arm,versatile.yaml           | 40 +++--------
 .../bindings/leds/register-bit-led.yaml       |  2 +-
 .../mfd/arm,dev-platforms-syscon.yaml         | 67 +++++++++++++++++++
 5 files changed, 76 insertions(+), 109 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml

Comments

Conor Dooley Oct. 20, 2023, 3:55 p.m. UTC | #1
On Fri, Oct 20, 2023 at 09:22:51AM -0500, Rob Herring wrote:
> The Arm Ltd board bindings are a bit unusual in that they define child
> nodes for various syscon's. The schemas are also incomplete as they lack
> constraints on having additional properties and some properties are
> missing. As the bindings for the different platforms only vary by
> compatibles, combine them into a single schema doc.
> 
> Add the "arm,im-pd1-syscon" compatible which was not documented. Add
> "ranges", "#address-cells", and "#size-cells properties which were
> missing.
> 
> With this, fix the error exposed in the register-bit-led binding.
> 
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
> Signed-off-by: Rob Herring <robh@kernel.org>

In case the lack of tag from Krzysztof were impeding things, rather than
your email being borked:

Reviewed-by: Conor Dooley <conor.dooley@microchip.com>

Thanks,
Conor.

> ---
>  .../bindings/arm/arm,integrator.yaml          | 39 -----------
>  .../devicetree/bindings/arm/arm,realview.yaml | 37 ----------
>  .../bindings/arm/arm,versatile.yaml           | 40 +++--------
>  .../bindings/leds/register-bit-led.yaml       |  2 +-
>  .../mfd/arm,dev-platforms-syscon.yaml         | 67 +++++++++++++++++++
>  5 files changed, 76 insertions(+), 109 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml
> 
> diff --git a/Documentation/devicetree/bindings/arm/arm,integrator.yaml b/Documentation/devicetree/bindings/arm/arm,integrator.yaml
> index 98ff5698ae1f..1bdbd1b7ee38 100644
> --- a/Documentation/devicetree/bindings/arm/arm,integrator.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,integrator.yaml
> @@ -40,45 +40,6 @@ properties:
>          items:
>            - const: arm,integrator-sp
>  
> -  core-module@10000000:
> -    type: object
> -    description: the root node in the Integrator platforms must contain
> -      a core module child node. They are always at physical address
> -      0x10000000 in all the Integrator variants.
> -    properties:
> -      compatible:
> -        items:
> -          - const: arm,core-module-integrator
> -          - const: syscon
> -          - const: simple-mfd
> -      reg:
> -        maxItems: 1
> -
> -    required:
> -      - compatible
> -      - reg
> -
> -patternProperties:
> -  "^syscon@[0-9a-f]+$":
> -    description: All Integrator boards must provide a system controller as a
> -      node in the root of the device tree.
> -    type: object
> -    properties:
> -      compatible:
> -        items:
> -          - enum:
> -              - arm,integrator-ap-syscon
> -              - arm,integrator-cp-syscon
> -              - arm,integrator-sp-syscon
> -          - const: syscon
> -      reg:
> -        maxItems: 1
> -
> -    required:
> -      - compatible
> -      - reg
> -
> -
>  required:
>    - compatible
>    - core-module@10000000
> diff --git a/Documentation/devicetree/bindings/arm/arm,realview.yaml b/Documentation/devicetree/bindings/arm/arm,realview.yaml
> index 8d3ed2e4ed31..d1bdee98f9af 100644
> --- a/Documentation/devicetree/bindings/arm/arm,realview.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,realview.yaml
> @@ -75,43 +75,6 @@ properties:
>          type: object
>          description: All RealView boards must provide a syscon system controller
>            node inside the soc node.
> -        properties:
> -          compatible:
> -            oneOf:
> -              - items:
> -                  - const: arm,realview-eb11mp-revb-syscon
> -                  - const: arm,realview-eb-syscon
> -                  - const: syscon
> -                  - const: simple-mfd
> -              - items:
> -                  - const: arm,realview-eb11mp-revc-syscon
> -                  - const: arm,realview-eb-syscon
> -                  - const: syscon
> -                  - const: simple-mfd
> -              - items:
> -                  - const: arm,realview-eb-syscon
> -                  - const: syscon
> -                  - const: simple-mfd
> -              - items:
> -                  - const: arm,realview-pb1176-syscon
> -                  - const: syscon
> -                  - const: simple-mfd
> -              - items:
> -                  - const: arm,realview-pb11mp-syscon
> -                  - const: syscon
> -                  - const: simple-mfd
> -              - items:
> -                  - const: arm,realview-pba8-syscon
> -                  - const: syscon
> -                  - const: simple-mfd
> -              - items:
> -                  - const: arm,realview-pbx-syscon
> -                  - const: syscon
> -                  - const: simple-mfd
> -
> -        required:
> -          - compatible
> -          - reg
>  
>      required:
>        - compatible
> diff --git a/Documentation/devicetree/bindings/arm/arm,versatile.yaml b/Documentation/devicetree/bindings/arm/arm,versatile.yaml
> index 13e52ba92060..7a3caf6af200 100644
> --- a/Documentation/devicetree/bindings/arm/arm,versatile.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,versatile.yaml
> @@ -14,6 +14,14 @@ description: |+
>    with various pluggable interface boards, in essence the Versatile PB version
>    is a superset of the Versatile AB version.
>  
> +  The root node in the Versatile platforms must contain a core module child
> +  node. They are always at physical address 0x10000000 in all the Versatile
> +  variants.
> +
> +  When fitted with the IB2 Interface Board, the Versatile AB will present an
> +  optional system controller node which controls the extra peripherals on the
> +  interface board.
> +
>  properties:
>    $nodename:
>      const: '/'
> @@ -32,38 +40,6 @@ properties:
>          items:
>            - const: arm,versatile-pb
>  
> -  core-module@10000000:
> -    type: object
> -    description: the root node in the Versatile platforms must contain
> -      a core module child node. They are always at physical address
> -      0x10000000 in all the Versatile variants.
> -    properties:
> -      compatible:
> -        items:
> -          - const: arm,core-module-versatile
> -          - const: syscon
> -          - const: simple-mfd
> -      reg:
> -        maxItems: 1
> -
> -    required:
> -      - compatible
> -      - reg
> -
> -patternProperties:
> -  "^syscon@[0-9a-f]+$":
> -    type: object
> -    description: When fitted with the IB2 Interface Board, the Versatile
> -      AB will present an optional system controller node which controls the
> -      extra peripherals on the interface board.
> -    properties:
> -      compatible:
> -        contains:
> -          const: arm,versatile-ib2-syscon
> -    required:
> -      - compatible
> -      - reg
> -
>  required:
>    - compatible
>    - core-module@10000000
> diff --git a/Documentation/devicetree/bindings/leds/register-bit-led.yaml b/Documentation/devicetree/bindings/leds/register-bit-led.yaml
> index ed26ec19ecbd..20930d327ae9 100644
> --- a/Documentation/devicetree/bindings/leds/register-bit-led.yaml
> +++ b/Documentation/devicetree/bindings/leds/register-bit-led.yaml
> @@ -60,7 +60,7 @@ examples:
>    - |
>  
>      syscon@10000000 {
> -        compatible = "arm,realview-pb1176-syscon", "syscon";
> +        compatible = "arm,realview-pb1176-syscon", "syscon", "simple-mfd";
>          reg = <0x10000000 0x1000>;
>          #address-cells = <1>;
>          #size-cells = <1>;
> diff --git a/Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml b/Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml
> new file mode 100644
> index 000000000000..46b164ae0831
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml
> @@ -0,0 +1,67 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/arm,dev-platforms-syscon.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Arm Ltd Developer Platforms System Controllers
> +
> +maintainers:
> +  - Linus Walleij <linus.walleij@linaro.org>
> +
> +description:
> +  The Arm Ltd Integrator, Realview, and Versatile families of developer
> +  platforms are contain various system controller blocks. Often these blocks
> +  are part of a daughterboard or motherboard module.
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - arm,integrator-ap-syscon
> +              - arm,integrator-cp-syscon
> +              - arm,integrator-sp-syscon
> +              - arm,im-pd1-syscon
> +          - const: syscon
> +      - items:
> +          - enum:
> +              - arm,core-module-integrator
> +              - arm,integrator-ap-syscon
> +              - arm,integrator-cp-syscon
> +              - arm,integrator-sp-syscon
> +              - arm,realview-eb-syscon
> +              - arm,realview-pb1176-syscon
> +              - arm,realview-pb11mp-syscon
> +              - arm,realview-pba8-syscon
> +              - arm,realview-pbx-syscon
> +              - arm,versatile-ib2-syscon
> +          - const: syscon
> +          - const: simple-mfd
> +      - items:
> +          - enum:
> +              - arm,realview-eb11mp-revb-syscon
> +              - arm,realview-eb11mp-revc-syscon
> +          - const: arm,realview-eb-syscon
> +          - const: syscon
> +          - const: simple-mfd
> +
> +  reg:
> +    maxItems: 1
> +
> +  ranges: true
> +
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties:
> +  type: object
> +
> +...
> -- 
> 2.42.0
>
Lee Jones Oct. 25, 2023, 11:51 a.m. UTC | #2
On Fri, 20 Oct 2023 09:22:51 -0500, Rob Herring wrote:
> The Arm Ltd board bindings are a bit unusual in that they define child
> nodes for various syscon's. The schemas are also incomplete as they lack
> constraints on having additional properties and some properties are
> missing. As the bindings for the different platforms only vary by
> compatibles, combine them into a single schema doc.
> 
> Add the "arm,im-pd1-syscon" compatible which was not documented. Add
> "ranges", "#address-cells", and "#size-cells properties which were
> missing.
> 
> [...]

Applied, thanks!

[1/1] dt-bindings: mfd: armltd: Move Arm board syscon's to separate schema
      commit: 2bad5bd2552a34b27dce2bbc3ab1bb50d85f5869

--
Lee Jones [李琼斯]
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/arm/arm,integrator.yaml b/Documentation/devicetree/bindings/arm/arm,integrator.yaml
index 98ff5698ae1f..1bdbd1b7ee38 100644
--- a/Documentation/devicetree/bindings/arm/arm,integrator.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,integrator.yaml
@@ -40,45 +40,6 @@  properties:
         items:
           - const: arm,integrator-sp
 
-  core-module@10000000:
-    type: object
-    description: the root node in the Integrator platforms must contain
-      a core module child node. They are always at physical address
-      0x10000000 in all the Integrator variants.
-    properties:
-      compatible:
-        items:
-          - const: arm,core-module-integrator
-          - const: syscon
-          - const: simple-mfd
-      reg:
-        maxItems: 1
-
-    required:
-      - compatible
-      - reg
-
-patternProperties:
-  "^syscon@[0-9a-f]+$":
-    description: All Integrator boards must provide a system controller as a
-      node in the root of the device tree.
-    type: object
-    properties:
-      compatible:
-        items:
-          - enum:
-              - arm,integrator-ap-syscon
-              - arm,integrator-cp-syscon
-              - arm,integrator-sp-syscon
-          - const: syscon
-      reg:
-        maxItems: 1
-
-    required:
-      - compatible
-      - reg
-
-
 required:
   - compatible
   - core-module@10000000
diff --git a/Documentation/devicetree/bindings/arm/arm,realview.yaml b/Documentation/devicetree/bindings/arm/arm,realview.yaml
index 8d3ed2e4ed31..d1bdee98f9af 100644
--- a/Documentation/devicetree/bindings/arm/arm,realview.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,realview.yaml
@@ -75,43 +75,6 @@  properties:
         type: object
         description: All RealView boards must provide a syscon system controller
           node inside the soc node.
-        properties:
-          compatible:
-            oneOf:
-              - items:
-                  - const: arm,realview-eb11mp-revb-syscon
-                  - const: arm,realview-eb-syscon
-                  - const: syscon
-                  - const: simple-mfd
-              - items:
-                  - const: arm,realview-eb11mp-revc-syscon
-                  - const: arm,realview-eb-syscon
-                  - const: syscon
-                  - const: simple-mfd
-              - items:
-                  - const: arm,realview-eb-syscon
-                  - const: syscon
-                  - const: simple-mfd
-              - items:
-                  - const: arm,realview-pb1176-syscon
-                  - const: syscon
-                  - const: simple-mfd
-              - items:
-                  - const: arm,realview-pb11mp-syscon
-                  - const: syscon
-                  - const: simple-mfd
-              - items:
-                  - const: arm,realview-pba8-syscon
-                  - const: syscon
-                  - const: simple-mfd
-              - items:
-                  - const: arm,realview-pbx-syscon
-                  - const: syscon
-                  - const: simple-mfd
-
-        required:
-          - compatible
-          - reg
 
     required:
       - compatible
diff --git a/Documentation/devicetree/bindings/arm/arm,versatile.yaml b/Documentation/devicetree/bindings/arm/arm,versatile.yaml
index 13e52ba92060..7a3caf6af200 100644
--- a/Documentation/devicetree/bindings/arm/arm,versatile.yaml
+++ b/Documentation/devicetree/bindings/arm/arm,versatile.yaml
@@ -14,6 +14,14 @@  description: |+
   with various pluggable interface boards, in essence the Versatile PB version
   is a superset of the Versatile AB version.
 
+  The root node in the Versatile platforms must contain a core module child
+  node. They are always at physical address 0x10000000 in all the Versatile
+  variants.
+
+  When fitted with the IB2 Interface Board, the Versatile AB will present an
+  optional system controller node which controls the extra peripherals on the
+  interface board.
+
 properties:
   $nodename:
     const: '/'
@@ -32,38 +40,6 @@  properties:
         items:
           - const: arm,versatile-pb
 
-  core-module@10000000:
-    type: object
-    description: the root node in the Versatile platforms must contain
-      a core module child node. They are always at physical address
-      0x10000000 in all the Versatile variants.
-    properties:
-      compatible:
-        items:
-          - const: arm,core-module-versatile
-          - const: syscon
-          - const: simple-mfd
-      reg:
-        maxItems: 1
-
-    required:
-      - compatible
-      - reg
-
-patternProperties:
-  "^syscon@[0-9a-f]+$":
-    type: object
-    description: When fitted with the IB2 Interface Board, the Versatile
-      AB will present an optional system controller node which controls the
-      extra peripherals on the interface board.
-    properties:
-      compatible:
-        contains:
-          const: arm,versatile-ib2-syscon
-    required:
-      - compatible
-      - reg
-
 required:
   - compatible
   - core-module@10000000
diff --git a/Documentation/devicetree/bindings/leds/register-bit-led.yaml b/Documentation/devicetree/bindings/leds/register-bit-led.yaml
index ed26ec19ecbd..20930d327ae9 100644
--- a/Documentation/devicetree/bindings/leds/register-bit-led.yaml
+++ b/Documentation/devicetree/bindings/leds/register-bit-led.yaml
@@ -60,7 +60,7 @@  examples:
   - |
 
     syscon@10000000 {
-        compatible = "arm,realview-pb1176-syscon", "syscon";
+        compatible = "arm,realview-pb1176-syscon", "syscon", "simple-mfd";
         reg = <0x10000000 0x1000>;
         #address-cells = <1>;
         #size-cells = <1>;
diff --git a/Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml b/Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml
new file mode 100644
index 000000000000..46b164ae0831
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/arm,dev-platforms-syscon.yaml
@@ -0,0 +1,67 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/arm,dev-platforms-syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm Ltd Developer Platforms System Controllers
+
+maintainers:
+  - Linus Walleij <linus.walleij@linaro.org>
+
+description:
+  The Arm Ltd Integrator, Realview, and Versatile families of developer
+  platforms are contain various system controller blocks. Often these blocks
+  are part of a daughterboard or motherboard module.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - arm,integrator-ap-syscon
+              - arm,integrator-cp-syscon
+              - arm,integrator-sp-syscon
+              - arm,im-pd1-syscon
+          - const: syscon
+      - items:
+          - enum:
+              - arm,core-module-integrator
+              - arm,integrator-ap-syscon
+              - arm,integrator-cp-syscon
+              - arm,integrator-sp-syscon
+              - arm,realview-eb-syscon
+              - arm,realview-pb1176-syscon
+              - arm,realview-pb11mp-syscon
+              - arm,realview-pba8-syscon
+              - arm,realview-pbx-syscon
+              - arm,versatile-ib2-syscon
+          - const: syscon
+          - const: simple-mfd
+      - items:
+          - enum:
+              - arm,realview-eb11mp-revb-syscon
+              - arm,realview-eb11mp-revc-syscon
+          - const: arm,realview-eb-syscon
+          - const: syscon
+          - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties:
+  type: object
+
+...