diff mbox series

dt-bindings: arm: mediatek: convert ethsys controller to the json-schema

Message ID 20231117074926.10824-1-zajec5@gmail.com (mailing list archive)
State New, archived
Headers show
Series dt-bindings: arm: mediatek: convert ethsys controller to the json-schema | expand

Commit Message

Rafał Miłecki Nov. 17, 2023, 7:49 a.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This helps validating DTS files. The only introduced change was fixing
"reg" value in example (1 address cell + 1 size cell).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
For the record I was trying to simplify "compatible" syntax with
following but "oneOf" apparently can't be used as a single item.

items:
  - oneOf:
      - const: mediatek,mt2701-ethsys
      - const: mediatek,mt7622-ethsys
      - items:
          - const: mediatek,mt7623-ethsys
          - const: mediatek,mt2701-ethsys
      - const: mediatek,mt7629-ethsys
      - const: mediatek,mt7981-ethsys
      - const: mediatek,mt7986-ethsys
  - const: syscon

 .../bindings/arm/mediatek/mediatek,ethsys.txt | 29 ----------
 .../arm/mediatek/mediatek,ethsys.yaml         | 54 +++++++++++++++++++
 2 files changed, 54 insertions(+), 29 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
 create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.yaml

Comments

Rob Herring (Arm) Nov. 19, 2023, 3:52 p.m. UTC | #1
On Fri, Nov 17, 2023 at 08:49:26AM +0100, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> This helps validating DTS files. The only introduced change was fixing
> "reg" value in example (1 address cell + 1 size cell).
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> For the record I was trying to simplify "compatible" syntax with
> following but "oneOf" apparently can't be used as a single item.
> 
> items:
>   - oneOf:
>       - const: mediatek,mt2701-ethsys
>       - const: mediatek,mt7622-ethsys
>       - items:
>           - const: mediatek,mt7623-ethsys
>           - const: mediatek,mt2701-ethsys
>       - const: mediatek,mt7629-ethsys
>       - const: mediatek,mt7981-ethsys
>       - const: mediatek,mt7986-ethsys
>   - const: syscon

The problem is you have nested 'items' which forms a matrix.

You generally need a 'oneOf' for each possible length of an array unless 
the value of each index is always the same (i.e. only the size of the 
list varies).

> 
>  .../bindings/arm/mediatek/mediatek,ethsys.txt | 29 ----------
>  .../arm/mediatek/mediatek,ethsys.yaml         | 54 +++++++++++++++++++
>  2 files changed, 54 insertions(+), 29 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
>  create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.yaml

Can you move this to bindings/clock/

With that,

Reviewed-by: Rob Herring <robh@kernel.org>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
deleted file mode 100644
index eccd4b706a78..000000000000
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
+++ /dev/null
@@ -1,29 +0,0 @@ 
-Mediatek ethsys controller
-============================
-
-The Mediatek ethsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be:
-	- "mediatek,mt2701-ethsys", "syscon"
-	- "mediatek,mt7622-ethsys", "syscon"
-	- "mediatek,mt7623-ethsys", "mediatek,mt2701-ethsys", "syscon"
-	- "mediatek,mt7629-ethsys", "syscon"
-	- "mediatek,mt7981-ethsys", "syscon"
-	- "mediatek,mt7986-ethsys", "syscon"
-- #clock-cells: Must be 1
-- #reset-cells: Must be 1
-
-The ethsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-ethsys: clock-controller@1b000000 {
-	compatible = "mediatek,mt2701-ethsys", "syscon";
-	reg = <0 0x1b000000 0 0x1000>;
-	#clock-cells = <1>;
-	#reset-cells = <1>;
-};
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.yaml
new file mode 100644
index 000000000000..a85d7b632d12
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.yaml
@@ -0,0 +1,54 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/mediatek/mediatek,ethsys.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mediatek ethsys controller
+
+description:
+  The available clocks are defined in dt-bindings/clock/mt*-clk.h.
+
+maintainers:
+  - James Liao <jamesjj.liao@mediatek.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - mediatek,mt2701-ethsys
+              - mediatek,mt7622-ethsys
+              - mediatek,mt7629-ethsys
+              - mediatek,mt7981-ethsys
+              - mediatek,mt7986-ethsys
+          - const: syscon
+      - items:
+          - const: mediatek,mt7623-ethsys
+          - const: mediatek,mt2701-ethsys
+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+
+  "#reset-cells":
+    const: 1
+
+required:
+  - reg
+  - "#clock-cells"
+  - "#reset-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@1b000000 {
+        compatible = "mediatek,mt2701-ethsys", "syscon";
+        reg = <0x1b000000 0x1000>;
+        #clock-cells = <1>;
+        #reset-cells = <1>;
+    };