Commit 36af195f authored by Rob Herring's avatar Rob Herring Committed by Lee Jones
Browse files

dt-bindings: mfd: armltd: Move Arm board syscon's to separate schema



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.

Signed-off-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarConor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20231020142252.3113716-2-robh@kernel.org


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent b0227e70
Loading
Loading
Loading
Loading
+0 −39
Original line number Diff line number Diff line
@@ -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
+0 −37
Original line number Diff line number Diff line
@@ -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
+8 −32
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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>;
+67 −0
Original line number Diff line number Diff line
# 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

...