linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings to json-schema
@ 2020-02-21  2:10 Masahiro Yamada
  2020-02-21  2:10 ` [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO " Masahiro Yamada
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Masahiro Yamada @ 2020-02-21  2:10 UTC (permalink / raw)
  To: devicetree, Rob Herring
  Cc: Frank Rowand, Masahiro Yamada, David S. Miller,
	Greg Kroah-Hartman, Jonathan Cameron, Mark Rutland,
	Mauro Carvalho Chehab, linux-arm-kernel, linux-kernel

Convert the Socionext UniPhier board/SoC binding to DT schema format.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 .../bindings/arm/socionext/uniphier.txt       | 47 -------------
 .../bindings/arm/socionext/uniphier.yaml      | 70 +++++++++++++++++++
 MAINTAINERS                                   |  2 +-
 3 files changed, 71 insertions(+), 48 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/socionext/uniphier.txt
 create mode 100644 Documentation/devicetree/bindings/arm/socionext/uniphier.yaml

diff --git a/Documentation/devicetree/bindings/arm/socionext/uniphier.txt b/Documentation/devicetree/bindings/arm/socionext/uniphier.txt
deleted file mode 100644
index b3ed1033740e..000000000000
--- a/Documentation/devicetree/bindings/arm/socionext/uniphier.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Socionext UniPhier SoC family
------------------------------
-
-Required properties in the root node:
-  - compatible: should contain board and SoC compatible strings
-
-SoC and board compatible strings:
-  (sorted chronologically)
-
-  - LD4 SoC:  "socionext,uniphier-ld4"
-      - Reference Board: "socionext,uniphier-ld4-ref"
-
-  - Pro4 SoC: "socionext,uniphier-pro4"
-      - Reference Board: "socionext,uniphier-pro4-ref"
-      - Ace Board:       "socionext,uniphier-pro4-ace"
-      - Sanji Board:     "socionext,uniphier-pro4-sanji"
-
-  - sLD8 SoC: "socionext,uniphier-sld8"
-      - Reference Board: "socionext,uniphier-sld8-ref"
-
-  - PXs2 SoC: "socionext,uniphier-pxs2"
-      - Gentil Board:    "socionext,uniphier-pxs2-gentil"
-      - Vodka Board:     "socionext,uniphier-pxs2-vodka"
-
-  - LD6b SoC: "socionext,uniphier-ld6b"
-      - Reference Board: "socionext,uniphier-ld6b-ref"
-
-  - LD11 SoC: "socionext,uniphier-ld11"
-      - Reference Board: "socionext,uniphier-ld11-ref"
-      - Global Board:    "socionext,uniphier-ld11-global"
-
-  - LD20 SoC: "socionext,uniphier-ld20"
-      - Reference Board: "socionext,uniphier-ld20-ref"
-      - Global Board:    "socionext,uniphier-ld20-global"
-
-  - PXs3 SoC: "socionext,uniphier-pxs3"
-      - Reference Board: "socionext,uniphier-pxs3-ref"
-
-Example:
-
-/dts-v1/;
-
-/ {
-	compatible = "socionext,uniphier-ld20-ref", "socionext,uniphier-ld20";
-
-	...
-};
diff --git a/Documentation/devicetree/bindings/arm/socionext/uniphier.yaml b/Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
new file mode 100644
index 000000000000..1cd0adcf9ddb
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/socionext/uniphier.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Socionext UniPhier platform device tree bindings
+
+maintainers:
+  - Masahiro Yamada <yamada.masahiro@socionext.com>
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: LD4 SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-ld4-ref
+          - const: socionext,uniphier-ld4
+      - description: Pro4 SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-pro4-ace
+            - socionext,uniphier-pro4-ref
+            - socionext,uniphier-pro4-sanji
+          - const: socionext,uniphier-pro4
+      - description: sLD8 SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-sld8-ref
+          - const: socionext,uniphier-sld8
+      - description: PXs2 SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-pxs2-gentil
+            - socionext,uniphier-pxs2-vodka
+          - const: socionext,uniphier-pxs2
+      - description: LD6b SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-ld6b-ref
+          - const: socionext,uniphier-ld6b
+      - description: LD11 SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-ld11-global
+            - socionext,uniphier-ld11-ref
+          - const: socionext,uniphier-ld11
+      - description: LD20 SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-ld20-global
+            - socionext,uniphier-ld20-ref
+          - const: socionext,uniphier-ld20
+      - description: PXs3 SoC boards
+        items:
+          - enum:
+            - socionext,uniphier-pxs3-ref
+          - const: socionext,uniphier-pxs3
+
+examples:
+  - |
+
+    / {
+        compatible = "socionext,uniphier-ld20-ref", "socionext,uniphier-ld20";
+
+        ...
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 4beb8dc4c7eb..93ccb6708ae9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2546,7 +2546,7 @@ M:	Masahiro Yamada <yamada.masahiro@socionext.com>
 L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier.git
 S:	Maintained
-F:	Documentation/devicetree/bindings/arm/socionext/uniphier.txt
+F:	Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
 F:	Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
 F:	Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt
 F:	arch/arm/boot/dts/uniphier*
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema
  2020-02-21  2:10 [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings to json-schema Masahiro Yamada
@ 2020-02-21  2:10 ` Masahiro Yamada
  2020-02-21 15:32   ` Rob Herring
  2020-02-21  2:10 ` [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller " Masahiro Yamada
  2020-02-21 15:25 ` [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings " Rob Herring
  2 siblings, 1 reply; 12+ messages in thread
From: Masahiro Yamada @ 2020-02-21  2:10 UTC (permalink / raw)
  To: devicetree, Rob Herring
  Cc: Frank Rowand, Masahiro Yamada, Bartosz Golaszewski,
	David S. Miller, Greg Kroah-Hartman, Jonathan Cameron,
	Linus Walleij, Mark Rutland, Mauro Carvalho Chehab,
	linux-arm-kernel, linux-gpio, linux-kernel

Convert the UniPhier GPIO controller binding to DT schema format.

I omitted the 'gpio-ranges' property because it is defined in the
dt-schema project (/schemas/gpio/gpio.yaml).

As of writing, the 'gpio-ranges-group-names' is not defined in that
file despite it is a common property described in
Documentation/devicetree/bindings/gpio/gpio.txt
So, I defined it in this schema.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

I have a question about the range about 'ngpio'.

  ngpios:
    minimum: 0
    maximum: 512

The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20

'uint32' is unsigned, so 'minimum: 0' looks too obvious.

I cannot omit the minimum because minimum and maximum depend on each other.
I just put a sensible number, 512, in maximum.

If this range is entirely unneeded, I will delete it.


 .../bindings/gpio/gpio-uniphier.txt           | 51 -----------
 .../gpio/socionext,uniphier-gpio.yaml         | 89 +++++++++++++++++++
 MAINTAINERS                                   |  2 +-
 3 files changed, 90 insertions(+), 52 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml

diff --git a/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt b/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
deleted file mode 100644
index f281f12dac18..000000000000
--- a/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-UniPhier GPIO controller
-
-Required properties:
-- compatible: Should be "socionext,uniphier-gpio".
-- reg: Specifies offset and length of the register set for the device.
-- gpio-controller: Marks the device node as a GPIO controller.
-- #gpio-cells: Should be 2.  The first cell is the pin number and the second
-  cell is used to specify optional parameters.
-- interrupt-controller: Marks the device node as an interrupt controller.
-- #interrupt-cells: Should be 2.  The first cell defines the interrupt number.
-  The second cell bits[3:0] is used to specify trigger type as follows:
-    1 = low-to-high edge triggered
-    2 = high-to-low edge triggered
-    4 = active high level-sensitive
-    8 = active low level-sensitive
-  Valid combinations are 1, 2, 3, 4, 8.
-- ngpios: Specifies the number of GPIO lines.
-- gpio-ranges: Mapping to pin controller pins (as described in gpio.txt)
-- socionext,interrupt-ranges: Specifies an interrupt number mapping between
-  this GPIO controller and its interrupt parent, in the form of arbitrary
-  number of <child-interrupt-base parent-interrupt-base length> triplets.
-
-Optional properties:
-- gpio-ranges-group-names: Used for named gpio ranges (as described in gpio.txt)
-
-Example:
-	gpio: gpio@55000000 {
-		compatible = "socionext,uniphier-gpio";
-		reg = <0x55000000 0x200>;
-		interrupt-parent = <&aidet>;
-		interrupt-controller;
-		#interrupt-cells = <2>;
-		gpio-controller;
-		#gpio-cells = <2>;
-		gpio-ranges = <&pinctrl 0 0 0>;
-		gpio-ranges-group-names = "gpio_range";
-		ngpios = <248>;
-		socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>;
-	};
-
-Consumer Example:
-
-	sdhci0_pwrseq {
-		compatible = "mmc-pwrseq-emmc";
-		reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>;
-	};
-
-Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC document.
-Unfortunately, only the one's place is octal in the port numbering.  (That is,
-PORT 8, 9, 18, 19, 28, 29, ... are missing.)  UNIPHIER_GPIO_PORT() is a helper
-macro to calculate 29 * 8 + 4.
diff --git a/Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml b/Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
new file mode 100644
index 000000000000..94beb4342249
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/socionext,uniphier-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: UniPhier GPIO controller
+
+maintainers:
+  - Masahiro Yamada <yamada.masahiro@socionext.com>
+
+properties:
+  $nodename:
+    pattern: "^gpio@[0-9a-f]+$"
+
+  compatible:
+    const: socionext,uniphier-gpio
+
+  reg:
+    maxItems: 1
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    description: |
+      The first cell defines the interrupt number.
+      The second cell bits[3:0] is used to specify trigger type as follows:
+        1 = low-to-high edge triggered
+        2 = high-to-low edge triggered
+        4 = active high level-sensitive
+        8 = active low level-sensitive
+      Valid combinations are 1, 2, 3, 4, 8.
+    const: 2
+
+  ngpios:
+    minimum: 0
+    maximum: 512
+
+  gpio-ranges-group-names:
+    $ref: /schemas/types.yaml#/definitions/string-array
+
+  socionext,interrupt-ranges:
+    description: |
+      Specifies an interrupt number mapping between this GPIO controller and
+      its interrupt parent, in the form of arbitrary number of
+      <child-interrupt-base parent-interrupt-base length> triplets.
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+
+required:
+  - compatible
+  - reg
+  - gpio-controller
+  - "#gpio-cells"
+  - interrupt-controller
+  - "#interrupt-cells"
+  - ngpios
+  - gpio-ranges
+  - socionext,interrupt-ranges
+
+examples:
+  - |
+    gpio: gpio@55000000 {
+        compatible = "socionext,uniphier-gpio";
+        reg = <0x55000000 0x200>;
+        interrupt-parent = <&aidet>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&pinctrl 0 0 0>;
+        gpio-ranges-group-names = "gpio_range";
+        ngpios = <248>;
+        socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>;
+    };
+
+    // Consumer:
+    // Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC
+    // document. Unfortunately, only the one's place is octal in the port
+    // numbering. (That is, PORT 8, 9, 18, 19, 28, 29, ... are missing.)
+    // UNIPHIER_GPIO_PORT() is a helper macro to calculate 29 * 8 + 4.
+    sdhci0_pwrseq {
+        compatible = "mmc-pwrseq-emmc";
+        reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 93ccb6708ae9..3cb4c8a9107d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2547,7 +2547,7 @@ L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier.git
 S:	Maintained
 F:	Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
-F:	Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
+F:	Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
 F:	Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt
 F:	arch/arm/boot/dts/uniphier*
 F:	arch/arm/include/asm/hardware/cache-uniphier.h
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller to json-schema
  2020-02-21  2:10 [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings to json-schema Masahiro Yamada
  2020-02-21  2:10 ` [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO " Masahiro Yamada
@ 2020-02-21  2:10 ` Masahiro Yamada
  2020-02-28 22:13   ` Linus Walleij
  2020-02-21 15:25 ` [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings " Rob Herring
  2 siblings, 1 reply; 12+ messages in thread
From: Masahiro Yamada @ 2020-02-21  2:10 UTC (permalink / raw)
  To: devicetree, Rob Herring
  Cc: Frank Rowand, Masahiro Yamada, David S. Miller,
	Greg Kroah-Hartman, Jonathan Cameron, Linus Walleij,
	Mark Rutland, Mauro Carvalho Chehab, linux-arm-kernel,
	linux-gpio, linux-kernel

Convert the UniPhier pin controller binding to DT schema format.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

In the original .txt file, there is a description:
The UniPhier pinctrl should be a subnode of a "syscon" compatible node

I did not figure out how to represent (or check) it in dt-schema.
I just moved it to a comment line in 'examples'.
If there is a better way, please let me know.


 .../pinctrl/socionext,uniphier-pinctrl.txt    | 27 ------------
 .../pinctrl/socionext,uniphier-pinctrl.yaml   | 42 +++++++++++++++++++
 MAINTAINERS                                   |  2 +-
 3 files changed, 43 insertions(+), 28 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt
 create mode 100644 Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml

diff --git a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt
deleted file mode 100644
index 8173b12138ad..000000000000
--- a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-UniPhier SoCs pin controller
-
-Required properties:
-- compatible: should be one of the following:
-    "socionext,uniphier-ld4-pinctrl"  - for LD4 SoC
-    "socionext,uniphier-pro4-pinctrl" - for Pro4 SoC
-    "socionext,uniphier-sld8-pinctrl" - for sLD8 SoC
-    "socionext,uniphier-pro5-pinctrl" - for Pro5 SoC
-    "socionext,uniphier-pxs2-pinctrl" - for PXs2 SoC
-    "socionext,uniphier-ld6b-pinctrl" - for LD6b SoC
-    "socionext,uniphier-ld11-pinctrl" - for LD11 SoC
-    "socionext,uniphier-ld20-pinctrl" - for LD20 SoC
-    "socionext,uniphier-pxs3-pinctrl" - for PXs3 SoC
-
-Note:
-The UniPhier pinctrl should be a subnode of a "syscon" compatible node.
-
-Example:
-	soc-glue@5f800000 {
-		compatible = "socionext,uniphier-pro4-soc-glue",
-			     "simple-mfd", "syscon";
-		reg = <0x5f800000 0x2000>;
-
-		pinctrl: pinctrl {
-			compatible = "socionext,uniphier-pro4-pinctrl";
-		};
-	};
diff --git a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
new file mode 100644
index 000000000000..f8a93d8680f9
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/socionext,uniphier-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: UniPhier SoCs pin controller
+
+maintainers:
+  - Masahiro Yamada <yamada.masahiro@socionext.com>
+
+properties:
+  $nodename:
+    pattern: "pinctrl"
+
+  compatible:
+    enum:
+      - socionext,uniphier-ld4-pinctrl
+      - socionext,uniphier-pro4-pinctrl
+      - socionext,uniphier-sld8-pinctrl
+      - socionext,uniphier-pro5-pinctrl
+      - socionext,uniphier-pxs2-pinctrl
+      - socionext,uniphier-ld6b-pinctrl
+      - socionext,uniphier-ld11-pinctrl
+      - socionext,uniphier-ld20-pinctrl
+      - socionext,uniphier-pxs3-pinctrl
+
+required:
+  - compatible
+
+examples:
+  - |
+    // The UniPhier pinctrl should be a subnode of a "syscon" compatible node.
+
+    soc-glue@5f800000 {
+        compatible = "socionext,uniphier-pro4-soc-glue", "simple-mfd", "syscon";
+        reg = <0x5f800000 0x2000>;
+
+        pinctrl: pinctrl {
+            compatible = "socionext,uniphier-pro4-pinctrl";
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 3cb4c8a9107d..920bef1f5308 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2548,7 +2548,7 @@ T:	git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier.gi
 S:	Maintained
 F:	Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
 F:	Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
-F:	Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt
+F:	Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
 F:	arch/arm/boot/dts/uniphier*
 F:	arch/arm/include/asm/hardware/cache-uniphier.h
 F:	arch/arm/mach-uniphier/
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings to json-schema
  2020-02-21  2:10 [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings to json-schema Masahiro Yamada
  2020-02-21  2:10 ` [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO " Masahiro Yamada
  2020-02-21  2:10 ` [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller " Masahiro Yamada
@ 2020-02-21 15:25 ` Rob Herring
  2020-02-22  5:20   ` Masahiro Yamada
  2 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2020-02-21 15:25 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: devicetree, Frank Rowand, Masahiro Yamada, David S. Miller,
	Greg Kroah-Hartman, Jonathan Cameron, Mark Rutland,
	Mauro Carvalho Chehab, linux-arm-kernel, linux-kernel

On Fri, 21 Feb 2020 11:10:00 +0900, Masahiro Yamada wrote:
> Convert the Socionext UniPhier board/SoC binding to DT schema format.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
>  .../bindings/arm/socionext/uniphier.txt       | 47 -------------
>  .../bindings/arm/socionext/uniphier.yaml      | 70 +++++++++++++++++++
>  MAINTAINERS                                   |  2 +-
>  3 files changed, 71 insertions(+), 48 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/socionext/uniphier.txt
>  create mode 100644 Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
> 

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

Documentation/devicetree/bindings/display/simple-framebuffer.example.dts:21.16-37.11: Warning (chosen_node_is_root): /example-0/chosen: chosen node must be at root node
Error: Documentation/devicetree/bindings/arm/socionext/uniphier.example.dts:18.9-10 syntax error
FATAL ERROR: Unable to parse input tree
scripts/Makefile.lib:300: recipe for target 'Documentation/devicetree/bindings/arm/socionext/uniphier.example.dt.yaml' failed
make[1]: *** [Documentation/devicetree/bindings/arm/socionext/uniphier.example.dt.yaml] Error 1
Makefile:1263: recipe for target 'dt_binding_check' failed
make: *** [dt_binding_check] Error 2

See https://patchwork.ozlabs.org/patch/1241745
Please check and re-submit.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema
  2020-02-21  2:10 ` [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO " Masahiro Yamada
@ 2020-02-21 15:32   ` Rob Herring
  2020-02-22  5:32     ` Masahiro Yamada
  0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2020-02-21 15:32 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: devicetree, Frank Rowand, Masahiro Yamada, Bartosz Golaszewski,
	David S. Miller, Greg Kroah-Hartman, Jonathan Cameron,
	Linus Walleij, Mark Rutland, Mauro Carvalho Chehab,
	linux-arm-kernel, linux-gpio, linux-kernel

On Fri, 21 Feb 2020 11:10:01 +0900, Masahiro Yamada wrote:
> Convert the UniPhier GPIO controller binding to DT schema format.
> 
> I omitted the 'gpio-ranges' property because it is defined in the
> dt-schema project (/schemas/gpio/gpio.yaml).
> 
> As of writing, the 'gpio-ranges-group-names' is not defined in that
> file despite it is a common property described in
> Documentation/devicetree/bindings/gpio/gpio.txt
> So, I defined it in this schema.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
> I have a question about the range about 'ngpio'.
> 
>   ngpios:
>     minimum: 0
>     maximum: 512
> 
> The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
> https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20
> 
> 'uint32' is unsigned, so 'minimum: 0' looks too obvious.
> 
> I cannot omit the minimum because minimum and maximum depend on each other.
> I just put a sensible number, 512, in maximum.
> 
> If this range is entirely unneeded, I will delete it.

This property is generally for when you can have some number less 
than a maximum number implied by the compatible string. 

If there is really no max (e.g. 2^32 - 1 is valid), then just do 
'ngpios: true'

> 
> 
>  .../bindings/gpio/gpio-uniphier.txt           | 51 -----------
>  .../gpio/socionext,uniphier-gpio.yaml         | 89 +++++++++++++++++++
>  MAINTAINERS                                   |  2 +-
>  3 files changed, 90 insertions(+), 52 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
>  create mode 100644 Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
> 

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

Documentation/devicetree/bindings/display/simple-framebuffer.example.dts:21.16-37.11: Warning (chosen_node_is_root): /example-0/chosen: chosen node must be at root node
Error: Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.example.dts:38.34-35 syntax error
FATAL ERROR: Unable to parse input tree
scripts/Makefile.lib:300: recipe for target 'Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.example.dt.yaml' failed
make[1]: *** [Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.example.dt.yaml] Error 1
Makefile:1263: recipe for target 'dt_binding_check' failed
make: *** [dt_binding_check] Error 2

See https://patchwork.ozlabs.org/patch/1241747
Please check and re-submit.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings to json-schema
  2020-02-21 15:25 ` [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings " Rob Herring
@ 2020-02-22  5:20   ` Masahiro Yamada
  0 siblings, 0 replies; 12+ messages in thread
From: Masahiro Yamada @ 2020-02-22  5:20 UTC (permalink / raw)
  To: Rob Herring
  Cc: DTML, Frank Rowand, David S. Miller, Greg Kroah-Hartman,
	Jonathan Cameron, Mark Rutland, Mauro Carvalho Chehab,
	linux-arm-kernel, Linux Kernel Mailing List

Hi Rob,

On Sat, Feb 22, 2020 at 12:25 AM Rob Herring <robh@kernel.org> wrote:
>
> On Fri, 21 Feb 2020 11:10:00 +0900, Masahiro Yamada wrote:
> > Convert the Socionext UniPhier board/SoC binding to DT schema format.
> >
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> > ---
> >
> >  .../bindings/arm/socionext/uniphier.txt       | 47 -------------
> >  .../bindings/arm/socionext/uniphier.yaml      | 70 +++++++++++++++++++
> >  MAINTAINERS                                   |  2 +-
> >  3 files changed, 71 insertions(+), 48 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/arm/socionext/uniphier.txt
> >  create mode 100644 Documentation/devicetree/bindings/arm/socionext/uniphier.yaml
> >
>
> My bot found errors running 'make dt_binding_check' on your patch:
>
> Documentation/devicetree/bindings/display/simple-framebuffer.example.dts:21.16-37.11: Warning (chosen_node_is_root): /example-0/chosen: chosen node must be at root node
> Error: Documentation/devicetree/bindings/arm/socionext/uniphier.example.dts:18.9-10 syntax error
> FATAL ERROR: Unable to parse input tree
> scripts/Makefile.lib:300: recipe for target 'Documentation/devicetree/bindings/arm/socionext/uniphier.example.dt.yaml' failed
> make[1]: *** [Documentation/devicetree/bindings/arm/socionext/uniphier.example.dt.yaml] Error 1
> Makefile:1263: recipe for target 'dt_binding_check' failed
> make: *** [dt_binding_check] Error 2
>
> See https://patchwork.ozlabs.org/patch/1241745
> Please check and re-submit.


I checked 'make dtbs_check',
but did not test 'make dt_binding_check'.

I remember that
'make dtbs_check' no longer check example.dts after
93512dad334deb444619505f1fbb761156f7471b



Anyway, the example is fold into the plugin node,
so I cannot avoid the schema error about $nodename.

/home/masahiro/workspace/linux-unph/Documentation/devicetree/bindings/arm/socionext/uniphier.example.dt.yaml:
example-0: $nodename:0: '/' was expected


I will remove this example.


--
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema
  2020-02-21 15:32   ` Rob Herring
@ 2020-02-22  5:32     ` Masahiro Yamada
  2020-02-24 14:51       ` Rob Herring
  0 siblings, 1 reply; 12+ messages in thread
From: Masahiro Yamada @ 2020-02-22  5:32 UTC (permalink / raw)
  To: Rob Herring
  Cc: DTML, Frank Rowand, Bartosz Golaszewski, David S. Miller,
	Greg Kroah-Hartman, Jonathan Cameron, Linus Walleij,
	Mark Rutland, Mauro Carvalho Chehab, linux-arm-kernel,
	open list:GPIO SUBSYSTEM, Linux Kernel Mailing List

Hi Rob,

On Sat, Feb 22, 2020 at 12:32 AM Rob Herring <robh@kernel.org> wrote:
>
> On Fri, 21 Feb 2020 11:10:01 +0900, Masahiro Yamada wrote:
> > Convert the UniPhier GPIO controller binding to DT schema format.
> >
> > I omitted the 'gpio-ranges' property because it is defined in the
> > dt-schema project (/schemas/gpio/gpio.yaml).
> >
> > As of writing, the 'gpio-ranges-group-names' is not defined in that
> > file despite it is a common property described in
> > Documentation/devicetree/bindings/gpio/gpio.txt
> > So, I defined it in this schema.
> >
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> > ---
> >
> > I have a question about the range about 'ngpio'.
> >
> >   ngpios:
> >     minimum: 0
> >     maximum: 512
> >
> > The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
> > https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20
> >
> > 'uint32' is unsigned, so 'minimum: 0' looks too obvious.
> >
> > I cannot omit the minimum because minimum and maximum depend on each other.
> > I just put a sensible number, 512, in maximum.
> >
> > If this range is entirely unneeded, I will delete it.
>
> This property is generally for when you can have some number less
> than a maximum number implied by the compatible string.
>
> If there is really no max (e.g. 2^32 - 1 is valid), then just do
> 'ngpios: true'


What does ': true' mean?


If it is documented somewhere,
could you point me to the reference?

Even if I remove the 'ngpio' entirely
from my dt-schema, the 'ngpio' is checked
correctly.




>
> >
> >
> >  .../bindings/gpio/gpio-uniphier.txt           | 51 -----------
> >  .../gpio/socionext,uniphier-gpio.yaml         | 89 +++++++++++++++++++
> >  MAINTAINERS                                   |  2 +-
> >  3 files changed, 90 insertions(+), 52 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-uniphier.txt
> >  create mode 100644 Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
> >
>
> My bot found errors running 'make dt_binding_check' on your patch:
>
> Documentation/devicetree/bindings/display/simple-framebuffer.example.dts:21.16-37.11: Warning (chosen_node_is_root): /example-0/chosen: chosen node must be at root node
> Error: Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.example.dts:38.34-35 syntax error
> FATAL ERROR: Unable to parse input tree
> scripts/Makefile.lib:300: recipe for target 'Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.example.dt.yaml' failed
> make[1]: *** [Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.example.dt.yaml] Error 1
> Makefile:1263: recipe for target 'dt_binding_check' failed
> make: *** [dt_binding_check] Error 2
>
> See https://patchwork.ozlabs.org/patch/1241747
> Please check and re-submit.

OK, I will.



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema
  2020-02-22  5:32     ` Masahiro Yamada
@ 2020-02-24 14:51       ` Rob Herring
  2020-02-24 15:59         ` Masahiro Yamada
  0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2020-02-24 14:51 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: DTML, Frank Rowand, Bartosz Golaszewski, David S. Miller,
	Greg Kroah-Hartman, Jonathan Cameron, Linus Walleij,
	Mark Rutland, Mauro Carvalho Chehab, linux-arm-kernel,
	open list:GPIO SUBSYSTEM, Linux Kernel Mailing List

On Fri, Feb 21, 2020 at 11:33 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> Hi Rob,
>
> On Sat, Feb 22, 2020 at 12:32 AM Rob Herring <robh@kernel.org> wrote:
> >
> > On Fri, 21 Feb 2020 11:10:01 +0900, Masahiro Yamada wrote:
> > > Convert the UniPhier GPIO controller binding to DT schema format.
> > >
> > > I omitted the 'gpio-ranges' property because it is defined in the
> > > dt-schema project (/schemas/gpio/gpio.yaml).
> > >
> > > As of writing, the 'gpio-ranges-group-names' is not defined in that
> > > file despite it is a common property described in
> > > Documentation/devicetree/bindings/gpio/gpio.txt
> > > So, I defined it in this schema.
> > >
> > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> > > ---
> > >
> > > I have a question about the range about 'ngpio'.
> > >
> > >   ngpios:
> > >     minimum: 0
> > >     maximum: 512
> > >
> > > The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
> > > https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20
> > >
> > > 'uint32' is unsigned, so 'minimum: 0' looks too obvious.
> > >
> > > I cannot omit the minimum because minimum and maximum depend on each other.
> > > I just put a sensible number, 512, in maximum.
> > >
> > > If this range is entirely unneeded, I will delete it.
> >
> > This property is generally for when you can have some number less
> > than a maximum number implied by the compatible string.
> >
> > If there is really no max (e.g. 2^32 - 1 is valid), then just do
> > 'ngpios: true'
>
>
> What does ': true' mean?

It's a schema that always passes validation. It's purpose here is just
to say you are using this common property for this binding.

>
> If it is documented somewhere,
> could you point me to the reference?

https://github.com/devicetree-org/dt-schema/blob/master/schemas/gpio/gpio.yaml

>
> Even if I remove the 'ngpio' entirely
> from my dt-schema, the 'ngpio' is checked
> correctly.

Yes, if you change it to a string value for example, it should fail.
(Only if DT_SCHEMA_FILES is not set without my kbuild changes)

You should also add 'additionalProperties: false' at the top level of
your schema and then it will also fail if you don't list ngpios in
properties.

Rob

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema
  2020-02-24 14:51       ` Rob Herring
@ 2020-02-24 15:59         ` Masahiro Yamada
  2020-02-24 21:18           ` Rob Herring
  0 siblings, 1 reply; 12+ messages in thread
From: Masahiro Yamada @ 2020-02-24 15:59 UTC (permalink / raw)
  To: Rob Herring
  Cc: DTML, Frank Rowand, Bartosz Golaszewski, David S. Miller,
	Greg Kroah-Hartman, Jonathan Cameron, Linus Walleij,
	Mark Rutland, Mauro Carvalho Chehab, linux-arm-kernel,
	open list:GPIO SUBSYSTEM, Linux Kernel Mailing List

Hi Rob,

On Mon, Feb 24, 2020 at 11:52 PM Rob Herring <robh@kernel.org> wrote:
>
> On Fri, Feb 21, 2020 at 11:33 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
> >
> > Hi Rob,
> >
> > On Sat, Feb 22, 2020 at 12:32 AM Rob Herring <robh@kernel.org> wrote:
> > >
> > > On Fri, 21 Feb 2020 11:10:01 +0900, Masahiro Yamada wrote:
> > > > Convert the UniPhier GPIO controller binding to DT schema format.
> > > >
> > > > I omitted the 'gpio-ranges' property because it is defined in the
> > > > dt-schema project (/schemas/gpio/gpio.yaml).
> > > >
> > > > As of writing, the 'gpio-ranges-group-names' is not defined in that
> > > > file despite it is a common property described in
> > > > Documentation/devicetree/bindings/gpio/gpio.txt
> > > > So, I defined it in this schema.
> > > >
> > > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> > > > ---
> > > >
> > > > I have a question about the range about 'ngpio'.
> > > >
> > > >   ngpios:
> > > >     minimum: 0
> > > >     maximum: 512
> > > >
> > > > The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
> > > > https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20
> > > >
> > > > 'uint32' is unsigned, so 'minimum: 0' looks too obvious.
> > > >
> > > > I cannot omit the minimum because minimum and maximum depend on each other.
> > > > I just put a sensible number, 512, in maximum.
> > > >
> > > > If this range is entirely unneeded, I will delete it.
> > >
> > > This property is generally for when you can have some number less
> > > than a maximum number implied by the compatible string.
> > >
> > > If there is really no max (e.g. 2^32 - 1 is valid), then just do
> > > 'ngpios: true'
> >
> >
> > What does ': true' mean?
>
> It's a schema that always passes validation. It's purpose here is just
> to say you are using this common property for this binding.



OK, I see two useful cases:

[1]
Documenting purpose in order to clarify
that you are using this property

[2]
You need to explicitly specify ': true'
if you have 'additionalProperties: false' .
Otherwise, the following warning is displayed:
... do not match any of the regexes: 'pinctrl-[0-9]+'



For [1], it is already clear that this binding
is using ngpios from 'require'


require:
  - ngpios



> >
> > If it is documented somewhere,
> > could you point me to the reference?
>
> https://github.com/devicetree-org/dt-schema/blob/master/schemas/gpio/gpio.yaml
>
> >
> > Even if I remove the 'ngpio' entirely
> > from my dt-schema, the 'ngpio' is checked
> > correctly.
>
> Yes, if you change it to a string value for example, it should fail.
> (Only if DT_SCHEMA_FILES is not set without my kbuild changes)
>
> You should also add 'additionalProperties: false' at the top level of
> your schema and then it will also fail if you don't list ngpios in
> properties.

Hmm, I am confused.

'require: - ngpios' will warn if you don't list ngpios.

'additionalProperties: false' will warn if you list
other properties than what is explicitly specified.



BTW, I will not add 'additionalProperties: false'
in this binding.


The real DT files have

 interrupt-parent = <&aidet>;
(arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi line 324)

but, commit 791d3ef2e11100449837dc0b6fe884e60ca3a484
removed interrupt-parent from bindings.





--
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema
  2020-02-24 15:59         ` Masahiro Yamada
@ 2020-02-24 21:18           ` Rob Herring
  0 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2020-02-24 21:18 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: DTML, Frank Rowand, Bartosz Golaszewski, David S. Miller,
	Greg Kroah-Hartman, Jonathan Cameron, Linus Walleij,
	Mark Rutland, Mauro Carvalho Chehab, linux-arm-kernel,
	open list:GPIO SUBSYSTEM, Linux Kernel Mailing List

On Mon, Feb 24, 2020 at 10:00 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> Hi Rob,
>
> On Mon, Feb 24, 2020 at 11:52 PM Rob Herring <robh@kernel.org> wrote:
> >
> > On Fri, Feb 21, 2020 at 11:33 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
> > >
> > > Hi Rob,
> > >
> > > On Sat, Feb 22, 2020 at 12:32 AM Rob Herring <robh@kernel.org> wrote:
> > > >
> > > > On Fri, 21 Feb 2020 11:10:01 +0900, Masahiro Yamada wrote:
> > > > > Convert the UniPhier GPIO controller binding to DT schema format.
> > > > >
> > > > > I omitted the 'gpio-ranges' property because it is defined in the
> > > > > dt-schema project (/schemas/gpio/gpio.yaml).
> > > > >
> > > > > As of writing, the 'gpio-ranges-group-names' is not defined in that
> > > > > file despite it is a common property described in
> > > > > Documentation/devicetree/bindings/gpio/gpio.txt
> > > > > So, I defined it in this schema.
> > > > >
> > > > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> > > > > ---
> > > > >
> > > > > I have a question about the range about 'ngpio'.
> > > > >
> > > > >   ngpios:
> > > > >     minimum: 0
> > > > >     maximum: 512
> > > > >
> > > > > The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
> > > > > https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20
> > > > >
> > > > > 'uint32' is unsigned, so 'minimum: 0' looks too obvious.
> > > > >
> > > > > I cannot omit the minimum because minimum and maximum depend on each other.
> > > > > I just put a sensible number, 512, in maximum.
> > > > >
> > > > > If this range is entirely unneeded, I will delete it.
> > > >
> > > > This property is generally for when you can have some number less
> > > > than a maximum number implied by the compatible string.
> > > >
> > > > If there is really no max (e.g. 2^32 - 1 is valid), then just do
> > > > 'ngpios: true'
> > >
> > >
> > > What does ': true' mean?
> >
> > It's a schema that always passes validation. It's purpose here is just
> > to say you are using this common property for this binding.
>
>
>
> OK, I see two useful cases:
>
> [1]
> Documenting purpose in order to clarify
> that you are using this property
>
> [2]
> You need to explicitly specify ': true'
> if you have 'additionalProperties: false' .
> Otherwise, the following warning is displayed:
> ... do not match any of the regexes: 'pinctrl-[0-9]+'
>
>
>
> For [1], it is already clear that this binding
> is using ngpios from 'require'
>
>
> require:
>   - ngpios
>
>
>
> > >
> > > If it is documented somewhere,
> > > could you point me to the reference?
> >
> > https://github.com/devicetree-org/dt-schema/blob/master/schemas/gpio/gpio.yaml
> >
> > >
> > > Even if I remove the 'ngpio' entirely
> > > from my dt-schema, the 'ngpio' is checked
> > > correctly.
> >
> > Yes, if you change it to a string value for example, it should fail.
> > (Only if DT_SCHEMA_FILES is not set without my kbuild changes)
> >
> > You should also add 'additionalProperties: false' at the top level of
> > your schema and then it will also fail if you don't list ngpios in
> > properties.
>
> Hmm, I am confused.
>
> 'require: - ngpios' will warn if you don't list ngpios.
>
> 'additionalProperties: false' will warn if you list
> other properties than what is explicitly specified.

Yeah, that's a quirk of json-schema. We could probably ensure that
anything listed in 'required' also has a property schema, but in this
case I think it's better to be explicit.

Without 'additionalProperties: false', then the validation will pass
with a 'foo-bar' property. Or worse, typos like 'ngpio', 'nrgpios',
'#gpios-cells', etc. will pass validation.

> BTW, I will not add 'additionalProperties: false'
> in this binding.
>
>
> The real DT files have
>
>  interrupt-parent = <&aidet>;
> (arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi line 324)
>
> but, commit 791d3ef2e11100449837dc0b6fe884e60ca3a484
> removed interrupt-parent from bindings.

interrupt-parent is automagically added by the tools for any node with
'interrupts'. Similarly, 'interrupts-extended' will also work.

Rob

>
>
>
>
>
> --
> Best Regards
> Masahiro Yamada

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller to json-schema
  2020-02-21  2:10 ` [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller " Masahiro Yamada
@ 2020-02-28 22:13   ` Linus Walleij
  2020-02-29  4:12     ` Masahiro Yamada
  0 siblings, 1 reply; 12+ messages in thread
From: Linus Walleij @ 2020-02-28 22:13 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Rob Herring, Frank Rowand, David S. Miller, Greg Kroah-Hartman,
	Jonathan Cameron, Mark Rutland, Mauro Carvalho Chehab, Linux ARM,
	open list:GPIO SUBSYSTEM, linux-kernel

On Fri, Feb 21, 2020 at 3:10 AM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:

> Convert the UniPhier pin controller binding to DT schema format.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Nice!

> In the original .txt file, there is a description:
> The UniPhier pinctrl should be a subnode of a "syscon" compatible node
>
> I did not figure out how to represent (or check) it in dt-schema.
> I just moved it to a comment line in 'examples'.
> If there is a better way, please let me know.

There is no way to do that AFAICT, we are checking nodes from
one node and downwards, never upwards. The syscon needs to
have its own binding file: if it has another specific compatible
such as compatible = "foo", "syscon"; then for the DT bindings
for foo, make sure to add this subnode as optional/compulsory
if you want to tie up the whole thing.

> -Required properties:
> -- compatible: should be one of the following:
> -    "socionext,uniphier-ld4-pinctrl"  - for LD4 SoC
> -    "socionext,uniphier-pro4-pinctrl" - for Pro4 SoC
> -    "socionext,uniphier-sld8-pinctrl" - for sLD8 SoC
> -    "socionext,uniphier-pro5-pinctrl" - for Pro5 SoC
> -    "socionext,uniphier-pxs2-pinctrl" - for PXs2 SoC
> -    "socionext,uniphier-ld6b-pinctrl" - for LD6b SoC
> -    "socionext,uniphier-ld11-pinctrl" - for LD11 SoC
> -    "socionext,uniphier-ld20-pinctrl" - for LD20 SoC
> -    "socionext,uniphier-pxs3-pinctrl" - for PXs3 SoC

But:

> +    soc-glue@5f800000 {
> +        compatible = "socionext,uniphier-pro4-soc-glue", "simple-mfd", "syscon";
> +        reg = <0x5f800000 0x2000>;
> +
> +        pinctrl: pinctrl {
> +            compatible = "socionext,uniphier-pro4-pinctrl";
> +        };
> +    };

It looks like you want to check also for "simple-mfd" and "syscon"
following after the enum (two consts)

It seems you want to check that reg is there.

It seems the subnode pinctrl is also compulsory.

All of this have examples in example-schema.yaml IIRC.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller to json-schema
  2020-02-28 22:13   ` Linus Walleij
@ 2020-02-29  4:12     ` Masahiro Yamada
  0 siblings, 0 replies; 12+ messages in thread
From: Masahiro Yamada @ 2020-02-29  4:12 UTC (permalink / raw)
  To: Linus Walleij
  Cc: open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Rob Herring, Frank Rowand, David S. Miller, Greg Kroah-Hartman,
	Jonathan Cameron, Mark Rutland, Mauro Carvalho Chehab, Linux ARM,
	open list:GPIO SUBSYSTEM, linux-kernel

Hi Linus,

On Sat, Feb 29, 2020 at 7:13 AM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Fri, Feb 21, 2020 at 3:10 AM Masahiro Yamada
> <yamada.masahiro@socionext.com> wrote:
>
> > Convert the UniPhier pin controller binding to DT schema format.
> >
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>
> Nice!
>
> > In the original .txt file, there is a description:
> > The UniPhier pinctrl should be a subnode of a "syscon" compatible node
> >
> > I did not figure out how to represent (or check) it in dt-schema.
> > I just moved it to a comment line in 'examples'.
> > If there is a better way, please let me know.
>
> There is no way to do that AFAICT, we are checking nodes from
> one node and downwards, never upwards. The syscon needs to
> have its own binding file: if it has another specific compatible
> such as compatible = "foo", "syscon"; then for the DT bindings
> for foo, make sure to add this subnode as optional/compulsory
> if you want to tie up the whole thing.


Thanks for your advice.


Documentation/devicetree/bindings/mfd/syscon.yaml

already contains sunxi-specific compatibles, but
I hesitate to add more and more platform-specific stuff
in this file.

Maybe, I can add

Documentation/devicetree/bindings/mfd/socionext,uniphier-soc-glue.yaml

and then, check 'reg' and compulsory sub-nodes.



> > -Required properties:
> > -- compatible: should be one of the following:
> > -    "socionext,uniphier-ld4-pinctrl"  - for LD4 SoC
> > -    "socionext,uniphier-pro4-pinctrl" - for Pro4 SoC
> > -    "socionext,uniphier-sld8-pinctrl" - for sLD8 SoC
> > -    "socionext,uniphier-pro5-pinctrl" - for Pro5 SoC
> > -    "socionext,uniphier-pxs2-pinctrl" - for PXs2 SoC
> > -    "socionext,uniphier-ld6b-pinctrl" - for LD6b SoC
> > -    "socionext,uniphier-ld11-pinctrl" - for LD11 SoC
> > -    "socionext,uniphier-ld20-pinctrl" - for LD20 SoC
> > -    "socionext,uniphier-pxs3-pinctrl" - for PXs3 SoC
>
> But:
>
> > +    soc-glue@5f800000 {
> > +        compatible = "socionext,uniphier-pro4-soc-glue", "simple-mfd", "syscon";
> > +        reg = <0x5f800000 0x2000>;
> > +
> > +        pinctrl: pinctrl {
> > +            compatible = "socionext,uniphier-pro4-pinctrl";
> > +        };
> > +    };
>
> It looks like you want to check also for "simple-mfd" and "syscon"
> following after the enum (two consts)
>
> It seems you want to check that reg is there.


Documentation/devicetree/bindings/mfd/syscon.yaml

already checks the 'reg' by the 'contains syscon' pattern,
but I can repeat it in my yaml file.

Thanks.


> It seems the subnode pinctrl is also compulsory.
>
> All of this have examples in example-schema.yaml IIRC.
>
> Yours,
> Linus Walleij



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-02-29  4:13 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-21  2:10 [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings to json-schema Masahiro Yamada
2020-02-21  2:10 ` [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO " Masahiro Yamada
2020-02-21 15:32   ` Rob Herring
2020-02-22  5:32     ` Masahiro Yamada
2020-02-24 14:51       ` Rob Herring
2020-02-24 15:59         ` Masahiro Yamada
2020-02-24 21:18           ` Rob Herring
2020-02-21  2:10 ` [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller " Masahiro Yamada
2020-02-28 22:13   ` Linus Walleij
2020-02-29  4:12     ` Masahiro Yamada
2020-02-21 15:25 ` [PATCH 1/3] dt-bindings: arm: Convert UniPhier board/SoC bindings " Rob Herring
2020-02-22  5:20   ` Masahiro Yamada

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).