All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] convert grf.txt to YAML
@ 2021-05-08 12:37 ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Changed V3:
  remove select
  change unevaluatedProperties
  add separate schemas for each 'if' subset

Changed V2:
  add rockchip,rk3328-grf-gpio.yaml
  rename grf-gpio nodename

Johan Jonker (4):
  dt-bindings: gpio: convert rk3328-grf-gpio.txt to YAML
  dt-bindings: soc: rockchip: convert grf.txt to YAML
  ARM: dts: rockchip: add grf register compatible for rk3066/rk3188
  arm64: dts: rename grf-gpio nodename in rk3328.dtsi

 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     |  32 ---
 .../bindings/gpio/rockchip,rk3328-grf-gpio.yaml    |  51 ++++
 .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
 arch/arm/boot/dts/rk3xxx.dtsi                      |   2 +-
 arch/arm64/boot/dts/rockchip/rk3328.dtsi           |   2 +-
 6 files changed, 315 insertions(+), 95 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
 delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
 create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml

-- 
2.11.0


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

* [PATCH v3 0/4] convert grf.txt to YAML
@ 2021-05-08 12:37 ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Changed V3:
  remove select
  change unevaluatedProperties
  add separate schemas for each 'if' subset

Changed V2:
  add rockchip,rk3328-grf-gpio.yaml
  rename grf-gpio nodename

Johan Jonker (4):
  dt-bindings: gpio: convert rk3328-grf-gpio.txt to YAML
  dt-bindings: soc: rockchip: convert grf.txt to YAML
  ARM: dts: rockchip: add grf register compatible for rk3066/rk3188
  arm64: dts: rename grf-gpio nodename in rk3328.dtsi

 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     |  32 ---
 .../bindings/gpio/rockchip,rk3328-grf-gpio.yaml    |  51 ++++
 .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
 arch/arm/boot/dts/rk3xxx.dtsi                      |   2 +-
 arch/arm64/boot/dts/rockchip/rk3328.dtsi           |   2 +-
 6 files changed, 315 insertions(+), 95 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
 delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
 create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml

-- 
2.11.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH v3 0/4] convert grf.txt to YAML
@ 2021-05-08 12:37 ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Changed V3:
  remove select
  change unevaluatedProperties
  add separate schemas for each 'if' subset

Changed V2:
  add rockchip,rk3328-grf-gpio.yaml
  rename grf-gpio nodename

Johan Jonker (4):
  dt-bindings: gpio: convert rk3328-grf-gpio.txt to YAML
  dt-bindings: soc: rockchip: convert grf.txt to YAML
  ARM: dts: rockchip: add grf register compatible for rk3066/rk3188
  arm64: dts: rename grf-gpio nodename in rk3328.dtsi

 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     |  32 ---
 .../bindings/gpio/rockchip,rk3328-grf-gpio.yaml    |  51 ++++
 .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
 arch/arm/boot/dts/rk3xxx.dtsi                      |   2 +-
 arch/arm64/boot/dts/rockchip/rk3328.dtsi           |   2 +-
 6 files changed, 315 insertions(+), 95 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
 delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
 create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml

-- 
2.11.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 1/4] dt-bindings: gpio: convert rk3328-grf-gpio.txt to YAML
  2021-05-08 12:37 ` Johan Jonker
  (?)
@ 2021-05-08 12:37   ` Johan Jonker
  -1 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Current dts files with RK3328 GRF 'gpio' nodes are manually verified.
In order to automate this process rk3328-grf-gpio.txt has to be
converted to YAML.

Rename 'grf-gpio' nodename to 'gpio'.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     | 32 --------------
 .../bindings/gpio/rockchip,rk3328-grf-gpio.yaml    | 51 ++++++++++++++++++++++
 2 files changed, 51 insertions(+), 32 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml

diff --git a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
deleted file mode 100644
index f9231df17..000000000
--- a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Rockchip RK3328 GRF (General Register Files) GPIO controller.
-
-In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec mute
-control, can also be used for general purpose. It is manipulated by the
-GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI pins can
-also be set in the same way.
-
-Currently this GPIO controller only supports the mute pin. If needed in the
-future, the HDMI pins support can also be added.
-
-Required properties:
-- compatible: Should contain "rockchip,rk3328-grf-gpio".
-- 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 the gpio polarity:
-    0 = Active high,
-    1 = Active low.
-
-Example:
-
-	grf: syscon@ff100000 {
-		compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
-
-		grf_gpio: grf-gpio {
-			compatible = "rockchip,rk3328-grf-gpio";
-			gpio-controller;
-			#gpio-cells = <2>;
-		};
-	};
-
-Note: The grf_gpio node should be declared as the child of the GRF (General
-Register File) node. The GPIO_MUTE pin is referred to as <&grf_gpio 0>.
diff --git a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
new file mode 100644
index 000000000..ea169f6fb
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip RK3328 General Register Files GPIO controller
+
+description:
+  The Rockchip RK3328 General Register File (GRF) outputs only the
+  GPIO_MUTE pin, originally for codec mute control, but it can also be used
+  for general purpose. It is manipulated by the GRF_SOC_CON10 register.
+  If needed in the future support for the HDMI pins can also be added.
+  The GPIO node should be declared as the child of the GRF node.
+
+  The GPIO_MUTE pin is referred to in the format
+
+  <&grf_gpio 0 GPIO_ACTIVE_LOW>
+
+  The first cell is the pin number and
+  the second cell is used to specify the GPIO polarity
+    0 = Active high
+    1 = Active low
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    const: rockchip,rk3328-grf-gpio
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+required:
+  - compatible
+  - gpio-controller
+  - "#gpio-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    grf_gpio: gpio {
+      compatible = "rockchip,rk3328-grf-gpio";
+      gpio-controller;
+      #gpio-cells = <2>;
+    };
+
-- 
2.11.0


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

* [PATCH v3 1/4] dt-bindings: gpio: convert rk3328-grf-gpio.txt to YAML
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Current dts files with RK3328 GRF 'gpio' nodes are manually verified.
In order to automate this process rk3328-grf-gpio.txt has to be
converted to YAML.

Rename 'grf-gpio' nodename to 'gpio'.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     | 32 --------------
 .../bindings/gpio/rockchip,rk3328-grf-gpio.yaml    | 51 ++++++++++++++++++++++
 2 files changed, 51 insertions(+), 32 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml

diff --git a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
deleted file mode 100644
index f9231df17..000000000
--- a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Rockchip RK3328 GRF (General Register Files) GPIO controller.
-
-In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec mute
-control, can also be used for general purpose. It is manipulated by the
-GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI pins can
-also be set in the same way.
-
-Currently this GPIO controller only supports the mute pin. If needed in the
-future, the HDMI pins support can also be added.
-
-Required properties:
-- compatible: Should contain "rockchip,rk3328-grf-gpio".
-- 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 the gpio polarity:
-    0 = Active high,
-    1 = Active low.
-
-Example:
-
-	grf: syscon@ff100000 {
-		compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
-
-		grf_gpio: grf-gpio {
-			compatible = "rockchip,rk3328-grf-gpio";
-			gpio-controller;
-			#gpio-cells = <2>;
-		};
-	};
-
-Note: The grf_gpio node should be declared as the child of the GRF (General
-Register File) node. The GPIO_MUTE pin is referred to as <&grf_gpio 0>.
diff --git a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
new file mode 100644
index 000000000..ea169f6fb
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip RK3328 General Register Files GPIO controller
+
+description:
+  The Rockchip RK3328 General Register File (GRF) outputs only the
+  GPIO_MUTE pin, originally for codec mute control, but it can also be used
+  for general purpose. It is manipulated by the GRF_SOC_CON10 register.
+  If needed in the future support for the HDMI pins can also be added.
+  The GPIO node should be declared as the child of the GRF node.
+
+  The GPIO_MUTE pin is referred to in the format
+
+  <&grf_gpio 0 GPIO_ACTIVE_LOW>
+
+  The first cell is the pin number and
+  the second cell is used to specify the GPIO polarity
+    0 = Active high
+    1 = Active low
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    const: rockchip,rk3328-grf-gpio
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+required:
+  - compatible
+  - gpio-controller
+  - "#gpio-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    grf_gpio: gpio {
+      compatible = "rockchip,rk3328-grf-gpio";
+      gpio-controller;
+      #gpio-cells = <2>;
+    };
+
-- 
2.11.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH v3 1/4] dt-bindings: gpio: convert rk3328-grf-gpio.txt to YAML
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Current dts files with RK3328 GRF 'gpio' nodes are manually verified.
In order to automate this process rk3328-grf-gpio.txt has to be
converted to YAML.

Rename 'grf-gpio' nodename to 'gpio'.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     | 32 --------------
 .../bindings/gpio/rockchip,rk3328-grf-gpio.yaml    | 51 ++++++++++++++++++++++
 2 files changed, 51 insertions(+), 32 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml

diff --git a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
deleted file mode 100644
index f9231df17..000000000
--- a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Rockchip RK3328 GRF (General Register Files) GPIO controller.
-
-In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec mute
-control, can also be used for general purpose. It is manipulated by the
-GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI pins can
-also be set in the same way.
-
-Currently this GPIO controller only supports the mute pin. If needed in the
-future, the HDMI pins support can also be added.
-
-Required properties:
-- compatible: Should contain "rockchip,rk3328-grf-gpio".
-- 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 the gpio polarity:
-    0 = Active high,
-    1 = Active low.
-
-Example:
-
-	grf: syscon@ff100000 {
-		compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
-
-		grf_gpio: grf-gpio {
-			compatible = "rockchip,rk3328-grf-gpio";
-			gpio-controller;
-			#gpio-cells = <2>;
-		};
-	};
-
-Note: The grf_gpio node should be declared as the child of the GRF (General
-Register File) node. The GPIO_MUTE pin is referred to as <&grf_gpio 0>.
diff --git a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
new file mode 100644
index 000000000..ea169f6fb
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip RK3328 General Register Files GPIO controller
+
+description:
+  The Rockchip RK3328 General Register File (GRF) outputs only the
+  GPIO_MUTE pin, originally for codec mute control, but it can also be used
+  for general purpose. It is manipulated by the GRF_SOC_CON10 register.
+  If needed in the future support for the HDMI pins can also be added.
+  The GPIO node should be declared as the child of the GRF node.
+
+  The GPIO_MUTE pin is referred to in the format
+
+  <&grf_gpio 0 GPIO_ACTIVE_LOW>
+
+  The first cell is the pin number and
+  the second cell is used to specify the GPIO polarity
+    0 = Active high
+    1 = Active low
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    const: rockchip,rk3328-grf-gpio
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+required:
+  - compatible
+  - gpio-controller
+  - "#gpio-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    grf_gpio: gpio {
+      compatible = "rockchip,rk3328-grf-gpio";
+      gpio-controller;
+      #gpio-cells = <2>;
+    };
+
-- 
2.11.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
  2021-05-08 12:37 ` Johan Jonker
  (?)
@ 2021-05-08 12:37   ` Johan Jonker
  -1 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Current dts files with 'grf' nodes are manually verified.
In order to automate this process grf.txt has to be
converted to YAML.

Most compatibility strings are in use with "simple-mfd" added.

Add description already in use:
"rockchip,rv1108-pmugrf", "syscon"

Add new descriptions for:
"rockchip,rk3568-grf", "syscon", "simple-mfd"
"rockchip,rk3568-pmugrf", "syscon", "simple-mfd"

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---

Changed V3:
  remove select
  change unevaluatedProperties
  add separate schemas for each 'if' subset

Changed V2:
  add rockchip,rk3328-grf-gpio.yaml
  rename grf-gpio nodename
---
 .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
 2 files changed, 262 insertions(+), 61 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
 create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
deleted file mode 100644
index f96511aa3..000000000
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-* Rockchip General Register Files (GRF)
-
-The general register file will be used to do static set by software, which
-is composed of many registers for system control.
-
-From RK3368 SoCs, the GRF is divided into two sections,
-- GRF, used for general non-secure system,
-- SGRF, used for general secure system,
-- PMUGRF, used for always on system
-
-On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
-
-ON RK3308 SoC, the GRF is divided into four sections:
-- GRF, used for general non-secure system,
-- SGRF, used for general secure system,
-- DETECTGRF, used for audio codec system,
-- COREGRF, used for pvtm,
-
-Required Properties:
-
-- compatible: GRF should be one of the following:
-   - "rockchip,px30-grf", "syscon": for px30
-   - "rockchip,rk3036-grf", "syscon": for rk3036
-   - "rockchip,rk3066-grf", "syscon": for rk3066
-   - "rockchip,rk3188-grf", "syscon": for rk3188
-   - "rockchip,rk3228-grf", "syscon": for rk3228
-   - "rockchip,rk3288-grf", "syscon": for rk3288
-   - "rockchip,rk3308-grf", "syscon": for rk3308
-   - "rockchip,rk3328-grf", "syscon": for rk3328
-   - "rockchip,rk3368-grf", "syscon": for rk3368
-   - "rockchip,rk3399-grf", "syscon": for rk3399
-   - "rockchip,rv1108-grf", "syscon": for rv1108
-- compatible: DETECTGRF should be one of the following:
-   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
-- compatilbe: COREGRF should be one of the following:
-   - "rockchip,rk3308-core-grf", "syscon": for rk3308
-- compatible: PMUGRF should be one of the following:
-   - "rockchip,px30-pmugrf", "syscon": for px30
-   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
-   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
-- compatible: SGRF should be one of the following:
-   - "rockchip,rk3288-sgrf", "syscon": for rk3288
-- compatible: USB2PHYGRF should be one of the following:
-   - "rockchip,px30-usb2phy-grf", "syscon": for px30
-   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
-- compatible: USBGRF should be one of the following:
-   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
-- reg: physical base address of the controller and length of memory mapped
-  region.
-
-Example: GRF and PMUGRF of RK3399 SoCs
-
-	pmugrf: syscon@ff320000 {
-		compatible = "rockchip,rk3399-pmugrf", "syscon";
-		reg = <0x0 0xff320000 0x0 0x1000>;
-	};
-
-	grf: syscon@ff770000 {
-		compatible = "rockchip,rk3399-grf", "syscon";
-		reg = <0x0 0xff770000 0x0 0x10000>;
-	};
diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
new file mode 100644
index 000000000..264e2e5ff
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -0,0 +1,262 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip General Register Files (GRF)
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - rockchip,rk3066-grf
+              - rockchip,rk3188-grf
+              - rockchip,rk3288-sgrf
+              - rockchip,rv1108-pmugrf
+              - rockchip,rv1108-usbgrf
+          - const: syscon
+      - items:
+          - enum:
+              - rockchip,px30-grf
+              - rockchip,px30-pmugrf
+              - rockchip,px30-usb2phy-grf
+              - rockchip,rk3036-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3288-grf
+              - rockchip,rk3308-core-grf
+              - rockchip,rk3308-detect-grf
+              - rockchip,rk3308-grf
+              - rockchip,rk3328-grf
+              - rockchip,rk3328-usb2phy-grf
+              - rockchip,rk3368-grf
+              - rockchip,rk3368-pmugrf
+              - rockchip,rk3399-grf
+              - rockchip,rk3399-pmugrf
+              - rockchip,rk3568-grf
+              - rockchip,rk3568-pmugrf
+              - rockchip,rv1108-grf
+          - const: syscon
+          - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+allOf:
+  - $ref: "#/$defs/px30-grf"
+  - $ref: "#/$defs/rk3288-grf"
+  - $ref: "#/$defs/rk3328-grf"
+  - $ref: "#/$defs/rk3399-grf"
+  - $ref: "#/$defs/reboot"
+  - $ref: "#/$defs/usb2"
+  - $ref: "#/$defs/domains"
+
+$defs:
+  px30-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,px30-grf
+
+    then:
+      properties:
+        lvds:
+          description:
+            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
+
+  rk3288-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3288-grf
+
+    then:
+      properties:
+        edp-phy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
+
+        usbphy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
+
+  rk3328-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3328-grf
+
+    then:
+      properties:
+        gpio:
+          type: object
+
+          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
+
+          unevaluatedProperties: false
+
+        power-controller:
+          type: object
+
+          $ref: "/schemas/power/rockchip,power-controller.yaml#"
+
+          unevaluatedProperties: false
+
+  rk3399-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3399-grf
+
+    then:
+      properties:
+        mipi-dphy-rx0:
+          type: object
+
+          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
+
+          unevaluatedProperties: false
+
+        pcie-phy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
+
+      patternProperties:
+        "phy@[0-9a-f]+$":
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
+
+  reboot:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-pmugrf
+              - rockchip,rk3036-grf
+              - rockchip,rk3308-grf
+              - rockchip,rk3368-pmugrf
+
+    then:
+      properties:
+        reboot-mode:
+          type: object
+
+          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
+
+          unevaluatedProperties: false
+
+  usb2:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-usb2phy-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3328-usb2phy-grf
+              - rockchip,rk3399-grf
+              - rockchip,rv1108-grf
+
+    then:
+      properties:
+        "#address-cells":
+          const: 1
+
+        "#size-cells":
+          const: 1
+
+      required:
+        - "#address-cells"
+        - "#size-cells"
+
+      patternProperties:
+        "usb2-phy@[0-9a-f]+$":
+          type: object
+
+          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
+
+          unevaluatedProperties: false
+
+  domains:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-pmugrf
+              - rockchip,px30-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3288-grf
+              - rockchip,rk3328-grf
+              - rockchip,rk3368-pmugrf
+              - rockchip,rk3368-grf
+              - rockchip,rk3399-pmugrf
+              - rockchip,rk3399-grf
+
+    then:
+      properties:
+        io-domains:
+          description:
+            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3399-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/rk3399-power.h>
+    grf: syscon@ff770000 {
+      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
+      reg = <0xff770000 0x10000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      mipi_dphy_rx0: mipi-dphy-rx0 {
+        compatible = "rockchip,rk3399-mipi-dphy-rx0";
+        clocks = <&cru SCLK_MIPIDPHY_REF>,
+                 <&cru SCLK_DPHY_RX0_CFG>,
+                 <&cru PCLK_VIO_GRF>;
+        clock-names = "dphy-ref", "dphy-cfg", "grf";
+        power-domains = <&power RK3399_PD_VIO>;
+        #phy-cells = <0>;
+      };
+
+      u2phy0: usb2-phy@e450 {
+        compatible = "rockchip,rk3399-usb2phy";
+        reg = <0xe450 0x10>;
+        clocks = <&cru SCLK_USB2PHY0_REF>;
+        clock-names = "phyclk";
+        #clock-cells = <0>;
+        clock-output-names = "clk_usbphy0_480m";
+        #phy-cells = <0>;
+
+        u2phy0_host: host-port {
+          #phy-cells = <0>;
+          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
+          interrupt-names = "linestate";
+         };
+
+        u2phy0_otg: otg-port {
+          #phy-cells = <0>;
+          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
+                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
+                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
+          interrupt-names = "otg-bvalid", "otg-id",
+                            "linestate";
+        };
+      };
+    };
-- 
2.11.0


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

* [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Current dts files with 'grf' nodes are manually verified.
In order to automate this process grf.txt has to be
converted to YAML.

Most compatibility strings are in use with "simple-mfd" added.

Add description already in use:
"rockchip,rv1108-pmugrf", "syscon"

Add new descriptions for:
"rockchip,rk3568-grf", "syscon", "simple-mfd"
"rockchip,rk3568-pmugrf", "syscon", "simple-mfd"

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---

Changed V3:
  remove select
  change unevaluatedProperties
  add separate schemas for each 'if' subset

Changed V2:
  add rockchip,rk3328-grf-gpio.yaml
  rename grf-gpio nodename
---
 .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
 2 files changed, 262 insertions(+), 61 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
 create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
deleted file mode 100644
index f96511aa3..000000000
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-* Rockchip General Register Files (GRF)
-
-The general register file will be used to do static set by software, which
-is composed of many registers for system control.
-
-From RK3368 SoCs, the GRF is divided into two sections,
-- GRF, used for general non-secure system,
-- SGRF, used for general secure system,
-- PMUGRF, used for always on system
-
-On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
-
-ON RK3308 SoC, the GRF is divided into four sections:
-- GRF, used for general non-secure system,
-- SGRF, used for general secure system,
-- DETECTGRF, used for audio codec system,
-- COREGRF, used for pvtm,
-
-Required Properties:
-
-- compatible: GRF should be one of the following:
-   - "rockchip,px30-grf", "syscon": for px30
-   - "rockchip,rk3036-grf", "syscon": for rk3036
-   - "rockchip,rk3066-grf", "syscon": for rk3066
-   - "rockchip,rk3188-grf", "syscon": for rk3188
-   - "rockchip,rk3228-grf", "syscon": for rk3228
-   - "rockchip,rk3288-grf", "syscon": for rk3288
-   - "rockchip,rk3308-grf", "syscon": for rk3308
-   - "rockchip,rk3328-grf", "syscon": for rk3328
-   - "rockchip,rk3368-grf", "syscon": for rk3368
-   - "rockchip,rk3399-grf", "syscon": for rk3399
-   - "rockchip,rv1108-grf", "syscon": for rv1108
-- compatible: DETECTGRF should be one of the following:
-   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
-- compatilbe: COREGRF should be one of the following:
-   - "rockchip,rk3308-core-grf", "syscon": for rk3308
-- compatible: PMUGRF should be one of the following:
-   - "rockchip,px30-pmugrf", "syscon": for px30
-   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
-   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
-- compatible: SGRF should be one of the following:
-   - "rockchip,rk3288-sgrf", "syscon": for rk3288
-- compatible: USB2PHYGRF should be one of the following:
-   - "rockchip,px30-usb2phy-grf", "syscon": for px30
-   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
-- compatible: USBGRF should be one of the following:
-   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
-- reg: physical base address of the controller and length of memory mapped
-  region.
-
-Example: GRF and PMUGRF of RK3399 SoCs
-
-	pmugrf: syscon@ff320000 {
-		compatible = "rockchip,rk3399-pmugrf", "syscon";
-		reg = <0x0 0xff320000 0x0 0x1000>;
-	};
-
-	grf: syscon@ff770000 {
-		compatible = "rockchip,rk3399-grf", "syscon";
-		reg = <0x0 0xff770000 0x0 0x10000>;
-	};
diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
new file mode 100644
index 000000000..264e2e5ff
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -0,0 +1,262 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip General Register Files (GRF)
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - rockchip,rk3066-grf
+              - rockchip,rk3188-grf
+              - rockchip,rk3288-sgrf
+              - rockchip,rv1108-pmugrf
+              - rockchip,rv1108-usbgrf
+          - const: syscon
+      - items:
+          - enum:
+              - rockchip,px30-grf
+              - rockchip,px30-pmugrf
+              - rockchip,px30-usb2phy-grf
+              - rockchip,rk3036-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3288-grf
+              - rockchip,rk3308-core-grf
+              - rockchip,rk3308-detect-grf
+              - rockchip,rk3308-grf
+              - rockchip,rk3328-grf
+              - rockchip,rk3328-usb2phy-grf
+              - rockchip,rk3368-grf
+              - rockchip,rk3368-pmugrf
+              - rockchip,rk3399-grf
+              - rockchip,rk3399-pmugrf
+              - rockchip,rk3568-grf
+              - rockchip,rk3568-pmugrf
+              - rockchip,rv1108-grf
+          - const: syscon
+          - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+allOf:
+  - $ref: "#/$defs/px30-grf"
+  - $ref: "#/$defs/rk3288-grf"
+  - $ref: "#/$defs/rk3328-grf"
+  - $ref: "#/$defs/rk3399-grf"
+  - $ref: "#/$defs/reboot"
+  - $ref: "#/$defs/usb2"
+  - $ref: "#/$defs/domains"
+
+$defs:
+  px30-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,px30-grf
+
+    then:
+      properties:
+        lvds:
+          description:
+            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
+
+  rk3288-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3288-grf
+
+    then:
+      properties:
+        edp-phy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
+
+        usbphy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
+
+  rk3328-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3328-grf
+
+    then:
+      properties:
+        gpio:
+          type: object
+
+          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
+
+          unevaluatedProperties: false
+
+        power-controller:
+          type: object
+
+          $ref: "/schemas/power/rockchip,power-controller.yaml#"
+
+          unevaluatedProperties: false
+
+  rk3399-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3399-grf
+
+    then:
+      properties:
+        mipi-dphy-rx0:
+          type: object
+
+          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
+
+          unevaluatedProperties: false
+
+        pcie-phy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
+
+      patternProperties:
+        "phy@[0-9a-f]+$":
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
+
+  reboot:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-pmugrf
+              - rockchip,rk3036-grf
+              - rockchip,rk3308-grf
+              - rockchip,rk3368-pmugrf
+
+    then:
+      properties:
+        reboot-mode:
+          type: object
+
+          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
+
+          unevaluatedProperties: false
+
+  usb2:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-usb2phy-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3328-usb2phy-grf
+              - rockchip,rk3399-grf
+              - rockchip,rv1108-grf
+
+    then:
+      properties:
+        "#address-cells":
+          const: 1
+
+        "#size-cells":
+          const: 1
+
+      required:
+        - "#address-cells"
+        - "#size-cells"
+
+      patternProperties:
+        "usb2-phy@[0-9a-f]+$":
+          type: object
+
+          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
+
+          unevaluatedProperties: false
+
+  domains:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-pmugrf
+              - rockchip,px30-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3288-grf
+              - rockchip,rk3328-grf
+              - rockchip,rk3368-pmugrf
+              - rockchip,rk3368-grf
+              - rockchip,rk3399-pmugrf
+              - rockchip,rk3399-grf
+
+    then:
+      properties:
+        io-domains:
+          description:
+            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3399-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/rk3399-power.h>
+    grf: syscon@ff770000 {
+      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
+      reg = <0xff770000 0x10000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      mipi_dphy_rx0: mipi-dphy-rx0 {
+        compatible = "rockchip,rk3399-mipi-dphy-rx0";
+        clocks = <&cru SCLK_MIPIDPHY_REF>,
+                 <&cru SCLK_DPHY_RX0_CFG>,
+                 <&cru PCLK_VIO_GRF>;
+        clock-names = "dphy-ref", "dphy-cfg", "grf";
+        power-domains = <&power RK3399_PD_VIO>;
+        #phy-cells = <0>;
+      };
+
+      u2phy0: usb2-phy@e450 {
+        compatible = "rockchip,rk3399-usb2phy";
+        reg = <0xe450 0x10>;
+        clocks = <&cru SCLK_USB2PHY0_REF>;
+        clock-names = "phyclk";
+        #clock-cells = <0>;
+        clock-output-names = "clk_usbphy0_480m";
+        #phy-cells = <0>;
+
+        u2phy0_host: host-port {
+          #phy-cells = <0>;
+          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
+          interrupt-names = "linestate";
+         };
+
+        u2phy0_otg: otg-port {
+          #phy-cells = <0>;
+          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
+                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
+                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
+          interrupt-names = "otg-bvalid", "otg-id",
+                            "linestate";
+        };
+      };
+    };
-- 
2.11.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

Current dts files with 'grf' nodes are manually verified.
In order to automate this process grf.txt has to be
converted to YAML.

Most compatibility strings are in use with "simple-mfd" added.

Add description already in use:
"rockchip,rv1108-pmugrf", "syscon"

Add new descriptions for:
"rockchip,rk3568-grf", "syscon", "simple-mfd"
"rockchip,rk3568-pmugrf", "syscon", "simple-mfd"

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---

Changed V3:
  remove select
  change unevaluatedProperties
  add separate schemas for each 'if' subset

Changed V2:
  add rockchip,rk3328-grf-gpio.yaml
  rename grf-gpio nodename
---
 .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
 2 files changed, 262 insertions(+), 61 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
 create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
deleted file mode 100644
index f96511aa3..000000000
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-* Rockchip General Register Files (GRF)
-
-The general register file will be used to do static set by software, which
-is composed of many registers for system control.
-
-From RK3368 SoCs, the GRF is divided into two sections,
-- GRF, used for general non-secure system,
-- SGRF, used for general secure system,
-- PMUGRF, used for always on system
-
-On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
-
-ON RK3308 SoC, the GRF is divided into four sections:
-- GRF, used for general non-secure system,
-- SGRF, used for general secure system,
-- DETECTGRF, used for audio codec system,
-- COREGRF, used for pvtm,
-
-Required Properties:
-
-- compatible: GRF should be one of the following:
-   - "rockchip,px30-grf", "syscon": for px30
-   - "rockchip,rk3036-grf", "syscon": for rk3036
-   - "rockchip,rk3066-grf", "syscon": for rk3066
-   - "rockchip,rk3188-grf", "syscon": for rk3188
-   - "rockchip,rk3228-grf", "syscon": for rk3228
-   - "rockchip,rk3288-grf", "syscon": for rk3288
-   - "rockchip,rk3308-grf", "syscon": for rk3308
-   - "rockchip,rk3328-grf", "syscon": for rk3328
-   - "rockchip,rk3368-grf", "syscon": for rk3368
-   - "rockchip,rk3399-grf", "syscon": for rk3399
-   - "rockchip,rv1108-grf", "syscon": for rv1108
-- compatible: DETECTGRF should be one of the following:
-   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
-- compatilbe: COREGRF should be one of the following:
-   - "rockchip,rk3308-core-grf", "syscon": for rk3308
-- compatible: PMUGRF should be one of the following:
-   - "rockchip,px30-pmugrf", "syscon": for px30
-   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
-   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
-- compatible: SGRF should be one of the following:
-   - "rockchip,rk3288-sgrf", "syscon": for rk3288
-- compatible: USB2PHYGRF should be one of the following:
-   - "rockchip,px30-usb2phy-grf", "syscon": for px30
-   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
-- compatible: USBGRF should be one of the following:
-   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
-- reg: physical base address of the controller and length of memory mapped
-  region.
-
-Example: GRF and PMUGRF of RK3399 SoCs
-
-	pmugrf: syscon@ff320000 {
-		compatible = "rockchip,rk3399-pmugrf", "syscon";
-		reg = <0x0 0xff320000 0x0 0x1000>;
-	};
-
-	grf: syscon@ff770000 {
-		compatible = "rockchip,rk3399-grf", "syscon";
-		reg = <0x0 0xff770000 0x0 0x10000>;
-	};
diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
new file mode 100644
index 000000000..264e2e5ff
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -0,0 +1,262 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip General Register Files (GRF)
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - rockchip,rk3066-grf
+              - rockchip,rk3188-grf
+              - rockchip,rk3288-sgrf
+              - rockchip,rv1108-pmugrf
+              - rockchip,rv1108-usbgrf
+          - const: syscon
+      - items:
+          - enum:
+              - rockchip,px30-grf
+              - rockchip,px30-pmugrf
+              - rockchip,px30-usb2phy-grf
+              - rockchip,rk3036-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3288-grf
+              - rockchip,rk3308-core-grf
+              - rockchip,rk3308-detect-grf
+              - rockchip,rk3308-grf
+              - rockchip,rk3328-grf
+              - rockchip,rk3328-usb2phy-grf
+              - rockchip,rk3368-grf
+              - rockchip,rk3368-pmugrf
+              - rockchip,rk3399-grf
+              - rockchip,rk3399-pmugrf
+              - rockchip,rk3568-grf
+              - rockchip,rk3568-pmugrf
+              - rockchip,rv1108-grf
+          - const: syscon
+          - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+allOf:
+  - $ref: "#/$defs/px30-grf"
+  - $ref: "#/$defs/rk3288-grf"
+  - $ref: "#/$defs/rk3328-grf"
+  - $ref: "#/$defs/rk3399-grf"
+  - $ref: "#/$defs/reboot"
+  - $ref: "#/$defs/usb2"
+  - $ref: "#/$defs/domains"
+
+$defs:
+  px30-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,px30-grf
+
+    then:
+      properties:
+        lvds:
+          description:
+            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
+
+  rk3288-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3288-grf
+
+    then:
+      properties:
+        edp-phy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
+
+        usbphy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
+
+  rk3328-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3328-grf
+
+    then:
+      properties:
+        gpio:
+          type: object
+
+          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
+
+          unevaluatedProperties: false
+
+        power-controller:
+          type: object
+
+          $ref: "/schemas/power/rockchip,power-controller.yaml#"
+
+          unevaluatedProperties: false
+
+  rk3399-grf:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3399-grf
+
+    then:
+      properties:
+        mipi-dphy-rx0:
+          type: object
+
+          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
+
+          unevaluatedProperties: false
+
+        pcie-phy:
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
+
+      patternProperties:
+        "phy@[0-9a-f]+$":
+          description:
+            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
+
+  reboot:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-pmugrf
+              - rockchip,rk3036-grf
+              - rockchip,rk3308-grf
+              - rockchip,rk3368-pmugrf
+
+    then:
+      properties:
+        reboot-mode:
+          type: object
+
+          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
+
+          unevaluatedProperties: false
+
+  usb2:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-usb2phy-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3328-usb2phy-grf
+              - rockchip,rk3399-grf
+              - rockchip,rv1108-grf
+
+    then:
+      properties:
+        "#address-cells":
+          const: 1
+
+        "#size-cells":
+          const: 1
+
+      required:
+        - "#address-cells"
+        - "#size-cells"
+
+      patternProperties:
+        "usb2-phy@[0-9a-f]+$":
+          type: object
+
+          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
+
+          unevaluatedProperties: false
+
+  domains:
+    if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - rockchip,px30-pmugrf
+              - rockchip,px30-grf
+              - rockchip,rk3228-grf
+              - rockchip,rk3288-grf
+              - rockchip,rk3328-grf
+              - rockchip,rk3368-pmugrf
+              - rockchip,rk3368-grf
+              - rockchip,rk3399-pmugrf
+              - rockchip,rk3399-grf
+
+    then:
+      properties:
+        io-domains:
+          description:
+            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3399-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/rk3399-power.h>
+    grf: syscon@ff770000 {
+      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
+      reg = <0xff770000 0x10000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      mipi_dphy_rx0: mipi-dphy-rx0 {
+        compatible = "rockchip,rk3399-mipi-dphy-rx0";
+        clocks = <&cru SCLK_MIPIDPHY_REF>,
+                 <&cru SCLK_DPHY_RX0_CFG>,
+                 <&cru PCLK_VIO_GRF>;
+        clock-names = "dphy-ref", "dphy-cfg", "grf";
+        power-domains = <&power RK3399_PD_VIO>;
+        #phy-cells = <0>;
+      };
+
+      u2phy0: usb2-phy@e450 {
+        compatible = "rockchip,rk3399-usb2phy";
+        reg = <0xe450 0x10>;
+        clocks = <&cru SCLK_USB2PHY0_REF>;
+        clock-names = "phyclk";
+        #clock-cells = <0>;
+        clock-output-names = "clk_usbphy0_480m";
+        #phy-cells = <0>;
+
+        u2phy0_host: host-port {
+          #phy-cells = <0>;
+          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
+          interrupt-names = "linestate";
+         };
+
+        u2phy0_otg: otg-port {
+          #phy-cells = <0>;
+          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
+                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
+                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
+          interrupt-names = "otg-bvalid", "otg-id",
+                            "linestate";
+        };
+      };
+    };
-- 
2.11.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 3/4] ARM: dts: rockchip: add grf register compatible for rk3066/rk3188
  2021-05-08 12:37 ` Johan Jonker
  (?)
@ 2021-05-08 12:37   ` Johan Jonker
  -1 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

With the conversion of syscon.yaml minItems for compatibles
was set to 2. Current Rockchip rk3xxx.dtsi file only uses "syscon"
for the grf registers. Add "rockchip,rk3066-grf", "syscon"
compatible for rk3066/rk3188 to reduce notifications produced with:

make ARCH=arm dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/mfd/syscon.yaml

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 arch/arm/boot/dts/rk3xxx.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 755c946f1..c34bc59c9 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -256,7 +256,7 @@
 	};
 
 	grf: grf@20008000 {
-		compatible = "syscon";
+		compatible = "rockchip,rk3066-grf", "syscon";
 		reg = <0x20008000 0x200>;
 	};
 
-- 
2.11.0


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

* [PATCH v3 3/4] ARM: dts: rockchip: add grf register compatible for rk3066/rk3188
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

With the conversion of syscon.yaml minItems for compatibles
was set to 2. Current Rockchip rk3xxx.dtsi file only uses "syscon"
for the grf registers. Add "rockchip,rk3066-grf", "syscon"
compatible for rk3066/rk3188 to reduce notifications produced with:

make ARCH=arm dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/mfd/syscon.yaml

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 arch/arm/boot/dts/rk3xxx.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 755c946f1..c34bc59c9 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -256,7 +256,7 @@
 	};
 
 	grf: grf@20008000 {
-		compatible = "syscon";
+		compatible = "rockchip,rk3066-grf", "syscon";
 		reg = <0x20008000 0x200>;
 	};
 
-- 
2.11.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH v3 3/4] ARM: dts: rockchip: add grf register compatible for rk3066/rk3188
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

With the conversion of syscon.yaml minItems for compatibles
was set to 2. Current Rockchip rk3xxx.dtsi file only uses "syscon"
for the grf registers. Add "rockchip,rk3066-grf", "syscon"
compatible for rk3066/rk3188 to reduce notifications produced with:

make ARCH=arm dtbs_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/mfd/syscon.yaml

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 arch/arm/boot/dts/rk3xxx.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 755c946f1..c34bc59c9 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -256,7 +256,7 @@
 	};
 
 	grf: grf@20008000 {
-		compatible = "syscon";
+		compatible = "rockchip,rk3066-grf", "syscon";
 		reg = <0x20008000 0x200>;
 	};
 
-- 
2.11.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 4/4] arm64: dts: rename grf-gpio nodename in rk3328.dtsi
  2021-05-08 12:37 ` Johan Jonker
  (?)
@ 2021-05-08 12:37   ` Johan Jonker
  -1 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

A test with the command below gives this error:

/arch/arm64/boot/dts/rockchip/rk3328-a1.dt.yaml: syscon@ff100000:
grf-gpio: {'compatible': ['rockchip,rk3328-grf-gpio'],
'gpio-controller': True, '#gpio-cells': [[2]], 'phandle': [[68]]} is not
of type 'array'
From schema:
~/.local/lib/python3.5/site-packages/dtschema/schemas/gpio/gpio-consumer.yaml

Due to the regex "(?<!,nr)-gpios?$" anything that ends on
'-gpio', '-gpios' gives a match.

Rename 'grf-gpio' nodename to generic 'gpio'

make ARCH=arm64 dtbs_check
DT_SCHEMA_FILES=~/.local/lib/python3.5/site-packages/dtschema/
schemas/gpio/gpio-consumer.yaml

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index 4ce49aae7..2e458fb87 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -291,7 +291,7 @@
 			status = "disabled";
 		};
 
-		grf_gpio: grf-gpio {
+		grf_gpio: gpio {
 			compatible = "rockchip,rk3328-grf-gpio";
 			gpio-controller;
 			#gpio-cells = <2>;
-- 
2.11.0


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

* [PATCH v3 4/4] arm64: dts: rename grf-gpio nodename in rk3328.dtsi
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

A test with the command below gives this error:

/arch/arm64/boot/dts/rockchip/rk3328-a1.dt.yaml: syscon@ff100000:
grf-gpio: {'compatible': ['rockchip,rk3328-grf-gpio'],
'gpio-controller': True, '#gpio-cells': [[2]], 'phandle': [[68]]} is not
of type 'array'
From schema:
~/.local/lib/python3.5/site-packages/dtschema/schemas/gpio/gpio-consumer.yaml

Due to the regex "(?<!,nr)-gpios?$" anything that ends on
'-gpio', '-gpios' gives a match.

Rename 'grf-gpio' nodename to generic 'gpio'

make ARCH=arm64 dtbs_check
DT_SCHEMA_FILES=~/.local/lib/python3.5/site-packages/dtschema/
schemas/gpio/gpio-consumer.yaml

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index 4ce49aae7..2e458fb87 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -291,7 +291,7 @@
 			status = "disabled";
 		};
 
-		grf_gpio: grf-gpio {
+		grf_gpio: gpio {
 			compatible = "rockchip,rk3328-grf-gpio";
 			gpio-controller;
 			#gpio-cells = <2>;
-- 
2.11.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH v3 4/4] arm64: dts: rename grf-gpio nodename in rk3328.dtsi
@ 2021-05-08 12:37   ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-08 12:37 UTC (permalink / raw)
  To: heiko
  Cc: robh+dt, linus.walleij, bgolaszewski, jay.xu, shawn.lin,
	david.wu, zhangqing, huangtao, cl, linux-gpio, linux-rockchip,
	devicetree, linux-arm-kernel, linux-kernel

A test with the command below gives this error:

/arch/arm64/boot/dts/rockchip/rk3328-a1.dt.yaml: syscon@ff100000:
grf-gpio: {'compatible': ['rockchip,rk3328-grf-gpio'],
'gpio-controller': True, '#gpio-cells': [[2]], 'phandle': [[68]]} is not
of type 'array'
From schema:
~/.local/lib/python3.5/site-packages/dtschema/schemas/gpio/gpio-consumer.yaml

Due to the regex "(?<!,nr)-gpios?$" anything that ends on
'-gpio', '-gpios' gives a match.

Rename 'grf-gpio' nodename to generic 'gpio'

make ARCH=arm64 dtbs_check
DT_SCHEMA_FILES=~/.local/lib/python3.5/site-packages/dtschema/
schemas/gpio/gpio-consumer.yaml

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index 4ce49aae7..2e458fb87 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -291,7 +291,7 @@
 			status = "disabled";
 		};
 
-		grf_gpio: grf-gpio {
+		grf_gpio: gpio {
 			compatible = "rockchip,rk3328-grf-gpio";
 			gpio-controller;
 			#gpio-cells = <2>;
-- 
2.11.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
  2021-05-08 12:37   ` Johan Jonker
  (?)
@ 2021-05-10 16:12     ` Rob Herring
  -1 siblings, 0 replies; 24+ messages in thread
From: Rob Herring @ 2021-05-10 16:12 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, linus.walleij, bgolaszewski, jay.xu, shawn.lin, david.wu,
	zhangqing, huangtao, cl, linux-gpio, linux-rockchip, devicetree,
	linux-arm-kernel, linux-kernel

On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
> Current dts files with 'grf' nodes are manually verified.
> In order to automate this process grf.txt has to be
> converted to YAML.
> 
> Most compatibility strings are in use with "simple-mfd" added.
> 
> Add description already in use:
> "rockchip,rv1108-pmugrf", "syscon"
> 
> Add new descriptions for:
> "rockchip,rk3568-grf", "syscon", "simple-mfd"
> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
> 
> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
> ---
> 
> Changed V3:
>   remove select
>   change unevaluatedProperties
>   add separate schemas for each 'if' subset

Sorry, but by separate I meant different files. But you don't *have* to 
do that.

> 
> Changed V2:
>   add rockchip,rk3328-grf-gpio.yaml
>   rename grf-gpio nodename
> ---
>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
>  2 files changed, 262 insertions(+), 61 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> 
> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> deleted file mode 100644
> index f96511aa3..000000000
> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -* Rockchip General Register Files (GRF)
> -
> -The general register file will be used to do static set by software, which
> -is composed of many registers for system control.
> -
> -From RK3368 SoCs, the GRF is divided into two sections,
> -- GRF, used for general non-secure system,
> -- SGRF, used for general secure system,
> -- PMUGRF, used for always on system
> -
> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
> -
> -ON RK3308 SoC, the GRF is divided into four sections:
> -- GRF, used for general non-secure system,
> -- SGRF, used for general secure system,
> -- DETECTGRF, used for audio codec system,
> -- COREGRF, used for pvtm,
> -
> -Required Properties:
> -
> -- compatible: GRF should be one of the following:
> -   - "rockchip,px30-grf", "syscon": for px30
> -   - "rockchip,rk3036-grf", "syscon": for rk3036
> -   - "rockchip,rk3066-grf", "syscon": for rk3066
> -   - "rockchip,rk3188-grf", "syscon": for rk3188
> -   - "rockchip,rk3228-grf", "syscon": for rk3228
> -   - "rockchip,rk3288-grf", "syscon": for rk3288
> -   - "rockchip,rk3308-grf", "syscon": for rk3308
> -   - "rockchip,rk3328-grf", "syscon": for rk3328
> -   - "rockchip,rk3368-grf", "syscon": for rk3368
> -   - "rockchip,rk3399-grf", "syscon": for rk3399
> -   - "rockchip,rv1108-grf", "syscon": for rv1108
> -- compatible: DETECTGRF should be one of the following:
> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
> -- compatilbe: COREGRF should be one of the following:
> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
> -- compatible: PMUGRF should be one of the following:
> -   - "rockchip,px30-pmugrf", "syscon": for px30
> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
> -- compatible: SGRF should be one of the following:
> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
> -- compatible: USB2PHYGRF should be one of the following:
> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
> -- compatible: USBGRF should be one of the following:
> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
> -- reg: physical base address of the controller and length of memory mapped
> -  region.
> -
> -Example: GRF and PMUGRF of RK3399 SoCs
> -
> -	pmugrf: syscon@ff320000 {
> -		compatible = "rockchip,rk3399-pmugrf", "syscon";
> -		reg = <0x0 0xff320000 0x0 0x1000>;
> -	};
> -
> -	grf: syscon@ff770000 {
> -		compatible = "rockchip,rk3399-grf", "syscon";
> -		reg = <0x0 0xff770000 0x0 0x10000>;
> -	};
> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> new file mode 100644
> index 000000000..264e2e5ff
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> @@ -0,0 +1,262 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rockchip General Register Files (GRF)
> +
> +maintainers:
> +  - Heiko Stuebner <heiko@sntech.de>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - rockchip,rk3066-grf
> +              - rockchip,rk3188-grf
> +              - rockchip,rk3288-sgrf
> +              - rockchip,rv1108-pmugrf
> +              - rockchip,rv1108-usbgrf
> +          - const: syscon
> +      - items:
> +          - enum:
> +              - rockchip,px30-grf
> +              - rockchip,px30-pmugrf
> +              - rockchip,px30-usb2phy-grf
> +              - rockchip,rk3036-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3288-grf
> +              - rockchip,rk3308-core-grf
> +              - rockchip,rk3308-detect-grf
> +              - rockchip,rk3308-grf
> +              - rockchip,rk3328-grf
> +              - rockchip,rk3328-usb2phy-grf
> +              - rockchip,rk3368-grf
> +              - rockchip,rk3368-pmugrf
> +              - rockchip,rk3399-grf
> +              - rockchip,rk3399-pmugrf
> +              - rockchip,rk3568-grf
> +              - rockchip,rk3568-pmugrf
> +              - rockchip,rv1108-grf
> +          - const: syscon
> +          - const: simple-mfd
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +unevaluatedProperties: false
> +
> +allOf:
> +  - $ref: "#/$defs/px30-grf"
> +  - $ref: "#/$defs/rk3288-grf"
> +  - $ref: "#/$defs/rk3328-grf"
> +  - $ref: "#/$defs/rk3399-grf"
> +  - $ref: "#/$defs/reboot"
> +  - $ref: "#/$defs/usb2"
> +  - $ref: "#/$defs/domains"
> +
> +$defs:

There's not really any point to using '$defs' unless you have 2 or more 
references to them.

> +  px30-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,px30-grf
> +
> +    then:
> +      properties:
> +        lvds:
> +          description:
> +            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
> +
> +  rk3288-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3288-grf
> +
> +    then:
> +      properties:
> +        edp-phy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
> +
> +        usbphy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
> +
> +  rk3328-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3328-grf
> +
> +    then:
> +      properties:
> +        gpio:
> +          type: object
> +
> +          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +        power-controller:
> +          type: object
> +
> +          $ref: "/schemas/power/rockchip,power-controller.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  rk3399-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3399-grf
> +
> +    then:
> +      properties:
> +        mipi-dphy-rx0:
> +          type: object
> +
> +          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +        pcie-phy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
> +
> +      patternProperties:
> +        "phy@[0-9a-f]+$":
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> +
> +  reboot:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-pmugrf
> +              - rockchip,rk3036-grf
> +              - rockchip,rk3308-grf
> +              - rockchip,rk3368-pmugrf
> +
> +    then:
> +      properties:
> +        reboot-mode:
> +          type: object
> +
> +          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  usb2:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-usb2phy-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3328-usb2phy-grf
> +              - rockchip,rk3399-grf
> +              - rockchip,rv1108-grf
> +
> +    then:
> +      properties:
> +        "#address-cells":
> +          const: 1
> +
> +        "#size-cells":
> +          const: 1
> +
> +      required:
> +        - "#address-cells"
> +        - "#size-cells"
> +
> +      patternProperties:
> +        "usb2-phy@[0-9a-f]+$":
> +          type: object
> +
> +          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  domains:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-pmugrf
> +              - rockchip,px30-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3288-grf
> +              - rockchip,rk3328-grf
> +              - rockchip,rk3368-pmugrf
> +              - rockchip,rk3368-grf
> +              - rockchip,rk3399-pmugrf
> +              - rockchip,rk3399-grf
> +
> +    then:
> +      properties:
> +        io-domains:
> +          description:
> +            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/rk3399-cru.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/power/rk3399-power.h>
> +    grf: syscon@ff770000 {
> +      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
> +      reg = <0xff770000 0x10000>;
> +      #address-cells = <1>;
> +      #size-cells = <1>;
> +
> +      mipi_dphy_rx0: mipi-dphy-rx0 {
> +        compatible = "rockchip,rk3399-mipi-dphy-rx0";
> +        clocks = <&cru SCLK_MIPIDPHY_REF>,
> +                 <&cru SCLK_DPHY_RX0_CFG>,
> +                 <&cru PCLK_VIO_GRF>;
> +        clock-names = "dphy-ref", "dphy-cfg", "grf";
> +        power-domains = <&power RK3399_PD_VIO>;
> +        #phy-cells = <0>;
> +      };
> +
> +      u2phy0: usb2-phy@e450 {
> +        compatible = "rockchip,rk3399-usb2phy";
> +        reg = <0xe450 0x10>;
> +        clocks = <&cru SCLK_USB2PHY0_REF>;
> +        clock-names = "phyclk";
> +        #clock-cells = <0>;
> +        clock-output-names = "clk_usbphy0_480m";
> +        #phy-cells = <0>;
> +
> +        u2phy0_host: host-port {
> +          #phy-cells = <0>;
> +          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
> +          interrupt-names = "linestate";
> +         };
> +
> +        u2phy0_otg: otg-port {
> +          #phy-cells = <0>;
> +          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
> +                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
> +                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
> +          interrupt-names = "otg-bvalid", "otg-id",
> +                            "linestate";
> +        };
> +      };
> +    };
> -- 
> 2.11.0
> 

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-10 16:12     ` Rob Herring
  0 siblings, 0 replies; 24+ messages in thread
From: Rob Herring @ 2021-05-10 16:12 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, linus.walleij, bgolaszewski, jay.xu, shawn.lin, david.wu,
	zhangqing, huangtao, cl, linux-gpio, linux-rockchip, devicetree,
	linux-arm-kernel, linux-kernel

On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
> Current dts files with 'grf' nodes are manually verified.
> In order to automate this process grf.txt has to be
> converted to YAML.
> 
> Most compatibility strings are in use with "simple-mfd" added.
> 
> Add description already in use:
> "rockchip,rv1108-pmugrf", "syscon"
> 
> Add new descriptions for:
> "rockchip,rk3568-grf", "syscon", "simple-mfd"
> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
> 
> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
> ---
> 
> Changed V3:
>   remove select
>   change unevaluatedProperties
>   add separate schemas for each 'if' subset

Sorry, but by separate I meant different files. But you don't *have* to 
do that.

> 
> Changed V2:
>   add rockchip,rk3328-grf-gpio.yaml
>   rename grf-gpio nodename
> ---
>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
>  2 files changed, 262 insertions(+), 61 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> 
> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> deleted file mode 100644
> index f96511aa3..000000000
> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -* Rockchip General Register Files (GRF)
> -
> -The general register file will be used to do static set by software, which
> -is composed of many registers for system control.
> -
> -From RK3368 SoCs, the GRF is divided into two sections,
> -- GRF, used for general non-secure system,
> -- SGRF, used for general secure system,
> -- PMUGRF, used for always on system
> -
> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
> -
> -ON RK3308 SoC, the GRF is divided into four sections:
> -- GRF, used for general non-secure system,
> -- SGRF, used for general secure system,
> -- DETECTGRF, used for audio codec system,
> -- COREGRF, used for pvtm,
> -
> -Required Properties:
> -
> -- compatible: GRF should be one of the following:
> -   - "rockchip,px30-grf", "syscon": for px30
> -   - "rockchip,rk3036-grf", "syscon": for rk3036
> -   - "rockchip,rk3066-grf", "syscon": for rk3066
> -   - "rockchip,rk3188-grf", "syscon": for rk3188
> -   - "rockchip,rk3228-grf", "syscon": for rk3228
> -   - "rockchip,rk3288-grf", "syscon": for rk3288
> -   - "rockchip,rk3308-grf", "syscon": for rk3308
> -   - "rockchip,rk3328-grf", "syscon": for rk3328
> -   - "rockchip,rk3368-grf", "syscon": for rk3368
> -   - "rockchip,rk3399-grf", "syscon": for rk3399
> -   - "rockchip,rv1108-grf", "syscon": for rv1108
> -- compatible: DETECTGRF should be one of the following:
> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
> -- compatilbe: COREGRF should be one of the following:
> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
> -- compatible: PMUGRF should be one of the following:
> -   - "rockchip,px30-pmugrf", "syscon": for px30
> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
> -- compatible: SGRF should be one of the following:
> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
> -- compatible: USB2PHYGRF should be one of the following:
> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
> -- compatible: USBGRF should be one of the following:
> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
> -- reg: physical base address of the controller and length of memory mapped
> -  region.
> -
> -Example: GRF and PMUGRF of RK3399 SoCs
> -
> -	pmugrf: syscon@ff320000 {
> -		compatible = "rockchip,rk3399-pmugrf", "syscon";
> -		reg = <0x0 0xff320000 0x0 0x1000>;
> -	};
> -
> -	grf: syscon@ff770000 {
> -		compatible = "rockchip,rk3399-grf", "syscon";
> -		reg = <0x0 0xff770000 0x0 0x10000>;
> -	};
> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> new file mode 100644
> index 000000000..264e2e5ff
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> @@ -0,0 +1,262 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rockchip General Register Files (GRF)
> +
> +maintainers:
> +  - Heiko Stuebner <heiko@sntech.de>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - rockchip,rk3066-grf
> +              - rockchip,rk3188-grf
> +              - rockchip,rk3288-sgrf
> +              - rockchip,rv1108-pmugrf
> +              - rockchip,rv1108-usbgrf
> +          - const: syscon
> +      - items:
> +          - enum:
> +              - rockchip,px30-grf
> +              - rockchip,px30-pmugrf
> +              - rockchip,px30-usb2phy-grf
> +              - rockchip,rk3036-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3288-grf
> +              - rockchip,rk3308-core-grf
> +              - rockchip,rk3308-detect-grf
> +              - rockchip,rk3308-grf
> +              - rockchip,rk3328-grf
> +              - rockchip,rk3328-usb2phy-grf
> +              - rockchip,rk3368-grf
> +              - rockchip,rk3368-pmugrf
> +              - rockchip,rk3399-grf
> +              - rockchip,rk3399-pmugrf
> +              - rockchip,rk3568-grf
> +              - rockchip,rk3568-pmugrf
> +              - rockchip,rv1108-grf
> +          - const: syscon
> +          - const: simple-mfd
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +unevaluatedProperties: false
> +
> +allOf:
> +  - $ref: "#/$defs/px30-grf"
> +  - $ref: "#/$defs/rk3288-grf"
> +  - $ref: "#/$defs/rk3328-grf"
> +  - $ref: "#/$defs/rk3399-grf"
> +  - $ref: "#/$defs/reboot"
> +  - $ref: "#/$defs/usb2"
> +  - $ref: "#/$defs/domains"
> +
> +$defs:

There's not really any point to using '$defs' unless you have 2 or more 
references to them.

> +  px30-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,px30-grf
> +
> +    then:
> +      properties:
> +        lvds:
> +          description:
> +            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
> +
> +  rk3288-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3288-grf
> +
> +    then:
> +      properties:
> +        edp-phy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
> +
> +        usbphy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
> +
> +  rk3328-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3328-grf
> +
> +    then:
> +      properties:
> +        gpio:
> +          type: object
> +
> +          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +        power-controller:
> +          type: object
> +
> +          $ref: "/schemas/power/rockchip,power-controller.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  rk3399-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3399-grf
> +
> +    then:
> +      properties:
> +        mipi-dphy-rx0:
> +          type: object
> +
> +          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +        pcie-phy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
> +
> +      patternProperties:
> +        "phy@[0-9a-f]+$":
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> +
> +  reboot:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-pmugrf
> +              - rockchip,rk3036-grf
> +              - rockchip,rk3308-grf
> +              - rockchip,rk3368-pmugrf
> +
> +    then:
> +      properties:
> +        reboot-mode:
> +          type: object
> +
> +          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  usb2:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-usb2phy-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3328-usb2phy-grf
> +              - rockchip,rk3399-grf
> +              - rockchip,rv1108-grf
> +
> +    then:
> +      properties:
> +        "#address-cells":
> +          const: 1
> +
> +        "#size-cells":
> +          const: 1
> +
> +      required:
> +        - "#address-cells"
> +        - "#size-cells"
> +
> +      patternProperties:
> +        "usb2-phy@[0-9a-f]+$":
> +          type: object
> +
> +          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  domains:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-pmugrf
> +              - rockchip,px30-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3288-grf
> +              - rockchip,rk3328-grf
> +              - rockchip,rk3368-pmugrf
> +              - rockchip,rk3368-grf
> +              - rockchip,rk3399-pmugrf
> +              - rockchip,rk3399-grf
> +
> +    then:
> +      properties:
> +        io-domains:
> +          description:
> +            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/rk3399-cru.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/power/rk3399-power.h>
> +    grf: syscon@ff770000 {
> +      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
> +      reg = <0xff770000 0x10000>;
> +      #address-cells = <1>;
> +      #size-cells = <1>;
> +
> +      mipi_dphy_rx0: mipi-dphy-rx0 {
> +        compatible = "rockchip,rk3399-mipi-dphy-rx0";
> +        clocks = <&cru SCLK_MIPIDPHY_REF>,
> +                 <&cru SCLK_DPHY_RX0_CFG>,
> +                 <&cru PCLK_VIO_GRF>;
> +        clock-names = "dphy-ref", "dphy-cfg", "grf";
> +        power-domains = <&power RK3399_PD_VIO>;
> +        #phy-cells = <0>;
> +      };
> +
> +      u2phy0: usb2-phy@e450 {
> +        compatible = "rockchip,rk3399-usb2phy";
> +        reg = <0xe450 0x10>;
> +        clocks = <&cru SCLK_USB2PHY0_REF>;
> +        clock-names = "phyclk";
> +        #clock-cells = <0>;
> +        clock-output-names = "clk_usbphy0_480m";
> +        #phy-cells = <0>;
> +
> +        u2phy0_host: host-port {
> +          #phy-cells = <0>;
> +          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
> +          interrupt-names = "linestate";
> +         };
> +
> +        u2phy0_otg: otg-port {
> +          #phy-cells = <0>;
> +          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
> +                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
> +                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
> +          interrupt-names = "otg-bvalid", "otg-id",
> +                            "linestate";
> +        };
> +      };
> +    };
> -- 
> 2.11.0
> 

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-10 16:12     ` Rob Herring
  0 siblings, 0 replies; 24+ messages in thread
From: Rob Herring @ 2021-05-10 16:12 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, linus.walleij, bgolaszewski, jay.xu, shawn.lin, david.wu,
	zhangqing, huangtao, cl, linux-gpio, linux-rockchip, devicetree,
	linux-arm-kernel, linux-kernel

On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
> Current dts files with 'grf' nodes are manually verified.
> In order to automate this process grf.txt has to be
> converted to YAML.
> 
> Most compatibility strings are in use with "simple-mfd" added.
> 
> Add description already in use:
> "rockchip,rv1108-pmugrf", "syscon"
> 
> Add new descriptions for:
> "rockchip,rk3568-grf", "syscon", "simple-mfd"
> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
> 
> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
> ---
> 
> Changed V3:
>   remove select
>   change unevaluatedProperties
>   add separate schemas for each 'if' subset

Sorry, but by separate I meant different files. But you don't *have* to 
do that.

> 
> Changed V2:
>   add rockchip,rk3328-grf-gpio.yaml
>   rename grf-gpio nodename
> ---
>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
>  2 files changed, 262 insertions(+), 61 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> 
> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> deleted file mode 100644
> index f96511aa3..000000000
> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -* Rockchip General Register Files (GRF)
> -
> -The general register file will be used to do static set by software, which
> -is composed of many registers for system control.
> -
> -From RK3368 SoCs, the GRF is divided into two sections,
> -- GRF, used for general non-secure system,
> -- SGRF, used for general secure system,
> -- PMUGRF, used for always on system
> -
> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
> -
> -ON RK3308 SoC, the GRF is divided into four sections:
> -- GRF, used for general non-secure system,
> -- SGRF, used for general secure system,
> -- DETECTGRF, used for audio codec system,
> -- COREGRF, used for pvtm,
> -
> -Required Properties:
> -
> -- compatible: GRF should be one of the following:
> -   - "rockchip,px30-grf", "syscon": for px30
> -   - "rockchip,rk3036-grf", "syscon": for rk3036
> -   - "rockchip,rk3066-grf", "syscon": for rk3066
> -   - "rockchip,rk3188-grf", "syscon": for rk3188
> -   - "rockchip,rk3228-grf", "syscon": for rk3228
> -   - "rockchip,rk3288-grf", "syscon": for rk3288
> -   - "rockchip,rk3308-grf", "syscon": for rk3308
> -   - "rockchip,rk3328-grf", "syscon": for rk3328
> -   - "rockchip,rk3368-grf", "syscon": for rk3368
> -   - "rockchip,rk3399-grf", "syscon": for rk3399
> -   - "rockchip,rv1108-grf", "syscon": for rv1108
> -- compatible: DETECTGRF should be one of the following:
> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
> -- compatilbe: COREGRF should be one of the following:
> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
> -- compatible: PMUGRF should be one of the following:
> -   - "rockchip,px30-pmugrf", "syscon": for px30
> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
> -- compatible: SGRF should be one of the following:
> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
> -- compatible: USB2PHYGRF should be one of the following:
> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
> -- compatible: USBGRF should be one of the following:
> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
> -- reg: physical base address of the controller and length of memory mapped
> -  region.
> -
> -Example: GRF and PMUGRF of RK3399 SoCs
> -
> -	pmugrf: syscon@ff320000 {
> -		compatible = "rockchip,rk3399-pmugrf", "syscon";
> -		reg = <0x0 0xff320000 0x0 0x1000>;
> -	};
> -
> -	grf: syscon@ff770000 {
> -		compatible = "rockchip,rk3399-grf", "syscon";
> -		reg = <0x0 0xff770000 0x0 0x10000>;
> -	};
> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> new file mode 100644
> index 000000000..264e2e5ff
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> @@ -0,0 +1,262 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rockchip General Register Files (GRF)
> +
> +maintainers:
> +  - Heiko Stuebner <heiko@sntech.de>
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - rockchip,rk3066-grf
> +              - rockchip,rk3188-grf
> +              - rockchip,rk3288-sgrf
> +              - rockchip,rv1108-pmugrf
> +              - rockchip,rv1108-usbgrf
> +          - const: syscon
> +      - items:
> +          - enum:
> +              - rockchip,px30-grf
> +              - rockchip,px30-pmugrf
> +              - rockchip,px30-usb2phy-grf
> +              - rockchip,rk3036-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3288-grf
> +              - rockchip,rk3308-core-grf
> +              - rockchip,rk3308-detect-grf
> +              - rockchip,rk3308-grf
> +              - rockchip,rk3328-grf
> +              - rockchip,rk3328-usb2phy-grf
> +              - rockchip,rk3368-grf
> +              - rockchip,rk3368-pmugrf
> +              - rockchip,rk3399-grf
> +              - rockchip,rk3399-pmugrf
> +              - rockchip,rk3568-grf
> +              - rockchip,rk3568-pmugrf
> +              - rockchip,rv1108-grf
> +          - const: syscon
> +          - const: simple-mfd
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +unevaluatedProperties: false
> +
> +allOf:
> +  - $ref: "#/$defs/px30-grf"
> +  - $ref: "#/$defs/rk3288-grf"
> +  - $ref: "#/$defs/rk3328-grf"
> +  - $ref: "#/$defs/rk3399-grf"
> +  - $ref: "#/$defs/reboot"
> +  - $ref: "#/$defs/usb2"
> +  - $ref: "#/$defs/domains"
> +
> +$defs:

There's not really any point to using '$defs' unless you have 2 or more 
references to them.

> +  px30-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,px30-grf
> +
> +    then:
> +      properties:
> +        lvds:
> +          description:
> +            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
> +
> +  rk3288-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3288-grf
> +
> +    then:
> +      properties:
> +        edp-phy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
> +
> +        usbphy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
> +
> +  rk3328-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3328-grf
> +
> +    then:
> +      properties:
> +        gpio:
> +          type: object
> +
> +          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +        power-controller:
> +          type: object
> +
> +          $ref: "/schemas/power/rockchip,power-controller.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  rk3399-grf:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: rockchip,rk3399-grf
> +
> +    then:
> +      properties:
> +        mipi-dphy-rx0:
> +          type: object
> +
> +          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +        pcie-phy:
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
> +
> +      patternProperties:
> +        "phy@[0-9a-f]+$":
> +          description:
> +            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
> +
> +  reboot:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-pmugrf
> +              - rockchip,rk3036-grf
> +              - rockchip,rk3308-grf
> +              - rockchip,rk3368-pmugrf
> +
> +    then:
> +      properties:
> +        reboot-mode:
> +          type: object
> +
> +          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  usb2:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-usb2phy-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3328-usb2phy-grf
> +              - rockchip,rk3399-grf
> +              - rockchip,rv1108-grf
> +
> +    then:
> +      properties:
> +        "#address-cells":
> +          const: 1
> +
> +        "#size-cells":
> +          const: 1
> +
> +      required:
> +        - "#address-cells"
> +        - "#size-cells"
> +
> +      patternProperties:
> +        "usb2-phy@[0-9a-f]+$":
> +          type: object
> +
> +          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
> +
> +          unevaluatedProperties: false
> +
> +  domains:
> +    if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - rockchip,px30-pmugrf
> +              - rockchip,px30-grf
> +              - rockchip,rk3228-grf
> +              - rockchip,rk3288-grf
> +              - rockchip,rk3328-grf
> +              - rockchip,rk3368-pmugrf
> +              - rockchip,rk3368-grf
> +              - rockchip,rk3399-pmugrf
> +              - rockchip,rk3399-grf
> +
> +    then:
> +      properties:
> +        io-domains:
> +          description:
> +            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/rk3399-cru.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/power/rk3399-power.h>
> +    grf: syscon@ff770000 {
> +      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
> +      reg = <0xff770000 0x10000>;
> +      #address-cells = <1>;
> +      #size-cells = <1>;
> +
> +      mipi_dphy_rx0: mipi-dphy-rx0 {
> +        compatible = "rockchip,rk3399-mipi-dphy-rx0";
> +        clocks = <&cru SCLK_MIPIDPHY_REF>,
> +                 <&cru SCLK_DPHY_RX0_CFG>,
> +                 <&cru PCLK_VIO_GRF>;
> +        clock-names = "dphy-ref", "dphy-cfg", "grf";
> +        power-domains = <&power RK3399_PD_VIO>;
> +        #phy-cells = <0>;
> +      };
> +
> +      u2phy0: usb2-phy@e450 {
> +        compatible = "rockchip,rk3399-usb2phy";
> +        reg = <0xe450 0x10>;
> +        clocks = <&cru SCLK_USB2PHY0_REF>;
> +        clock-names = "phyclk";
> +        #clock-cells = <0>;
> +        clock-output-names = "clk_usbphy0_480m";
> +        #phy-cells = <0>;
> +
> +        u2phy0_host: host-port {
> +          #phy-cells = <0>;
> +          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
> +          interrupt-names = "linestate";
> +         };
> +
> +        u2phy0_otg: otg-port {
> +          #phy-cells = <0>;
> +          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
> +                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
> +                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
> +          interrupt-names = "otg-bvalid", "otg-id",
> +                            "linestate";
> +        };
> +      };
> +    };
> -- 
> 2.11.0
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
  2021-05-10 16:12     ` Rob Herring
  (?)
@ 2021-05-10 16:32       ` Johan Jonker
  -1 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-10 16:32 UTC (permalink / raw)
  To: Rob Herring
  Cc: heiko, linus.walleij, bgolaszewski, jay.xu, shawn.lin, david.wu,
	zhangqing, huangtao, cl, linux-gpio, linux-rockchip, devicetree,
	linux-arm-kernel, linux-kernel



On 5/10/21 6:12 PM, Rob Herring wrote:
> On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
>> Current dts files with 'grf' nodes are manually verified.
>> In order to automate this process grf.txt has to be
>> converted to YAML.
>>
>> Most compatibility strings are in use with "simple-mfd" added.
>>
>> Add description already in use:
>> "rockchip,rv1108-pmugrf", "syscon"
>>
>> Add new descriptions for:
>> "rockchip,rk3568-grf", "syscon", "simple-mfd"
>> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
>>
>> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
>> ---
>>
>> Changed V3:
>>   remove select
>>   change unevaluatedProperties
>>   add separate schemas for each 'if' subset
> 
> Sorry, but by separate I meant different files. But you don't *have* to 
> do that.
> 
>>
>> Changed V2:
>>   add rockchip,rk3328-grf-gpio.yaml
>>   rename grf-gpio nodename
>> ---
>>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
>>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
>>  2 files changed, 262 insertions(+), 61 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
>>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
>> deleted file mode 100644
>> index f96511aa3..000000000
>> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
>> +++ /dev/null
>> @@ -1,61 +0,0 @@
>> -* Rockchip General Register Files (GRF)
>> -
>> -The general register file will be used to do static set by software, which
>> -is composed of many registers for system control.
>> -
>> -From RK3368 SoCs, the GRF is divided into two sections,
>> -- GRF, used for general non-secure system,
>> -- SGRF, used for general secure system,
>> -- PMUGRF, used for always on system
>> -
>> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
>> -
>> -ON RK3308 SoC, the GRF is divided into four sections:
>> -- GRF, used for general non-secure system,
>> -- SGRF, used for general secure system,
>> -- DETECTGRF, used for audio codec system,
>> -- COREGRF, used for pvtm,
>> -
>> -Required Properties:
>> -
>> -- compatible: GRF should be one of the following:
>> -   - "rockchip,px30-grf", "syscon": for px30
>> -   - "rockchip,rk3036-grf", "syscon": for rk3036
>> -   - "rockchip,rk3066-grf", "syscon": for rk3066
>> -   - "rockchip,rk3188-grf", "syscon": for rk3188
>> -   - "rockchip,rk3228-grf", "syscon": for rk3228
>> -   - "rockchip,rk3288-grf", "syscon": for rk3288
>> -   - "rockchip,rk3308-grf", "syscon": for rk3308
>> -   - "rockchip,rk3328-grf", "syscon": for rk3328
>> -   - "rockchip,rk3368-grf", "syscon": for rk3368
>> -   - "rockchip,rk3399-grf", "syscon": for rk3399
>> -   - "rockchip,rv1108-grf", "syscon": for rv1108
>> -- compatible: DETECTGRF should be one of the following:
>> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
>> -- compatilbe: COREGRF should be one of the following:
>> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
>> -- compatible: PMUGRF should be one of the following:
>> -   - "rockchip,px30-pmugrf", "syscon": for px30
>> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
>> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
>> -- compatible: SGRF should be one of the following:
>> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
>> -- compatible: USB2PHYGRF should be one of the following:
>> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
>> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
>> -- compatible: USBGRF should be one of the following:
>> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
>> -- reg: physical base address of the controller and length of memory mapped
>> -  region.
>> -
>> -Example: GRF and PMUGRF of RK3399 SoCs
>> -
>> -	pmugrf: syscon@ff320000 {
>> -		compatible = "rockchip,rk3399-pmugrf", "syscon";
>> -		reg = <0x0 0xff320000 0x0 0x1000>;
>> -	};
>> -
>> -	grf: syscon@ff770000 {
>> -		compatible = "rockchip,rk3399-grf", "syscon";
>> -		reg = <0x0 0xff770000 0x0 0x10000>;
>> -	};
>> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>> new file mode 100644
>> index 000000000..264e2e5ff
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>> @@ -0,0 +1,262 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Rockchip General Register Files (GRF)
>> +
>> +maintainers:
>> +  - Heiko Stuebner <heiko@sntech.de>
>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
>> +      - items:
>> +          - enum:
>> +              - rockchip,rk3066-grf
>> +              - rockchip,rk3188-grf
>> +              - rockchip,rk3288-sgrf
>> +              - rockchip,rv1108-pmugrf
>> +              - rockchip,rv1108-usbgrf
>> +          - const: syscon
>> +      - items:
>> +          - enum:
>> +              - rockchip,px30-grf
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,px30-usb2phy-grf
>> +              - rockchip,rk3036-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3288-grf
>> +              - rockchip,rk3308-core-grf
>> +              - rockchip,rk3308-detect-grf
>> +              - rockchip,rk3308-grf
>> +              - rockchip,rk3328-grf
>> +              - rockchip,rk3328-usb2phy-grf
>> +              - rockchip,rk3368-grf
>> +              - rockchip,rk3368-pmugrf
>> +              - rockchip,rk3399-grf
>> +              - rockchip,rk3399-pmugrf
>> +              - rockchip,rk3568-grf
>> +              - rockchip,rk3568-pmugrf
>> +              - rockchip,rv1108-grf
>> +          - const: syscon
>> +          - const: simple-mfd
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +unevaluatedProperties: false

Hi Rob,

I've tried without '$defs' and I can't get dt_binding_check error free with:
allOf:
  - if:
      [etc..]
  - if:
      [etc..]
That's why this construction.
Could you test with patch below.
Please advise.

Johan

===

/Documentation/devicetree/bindings/soc/rockchip/grf.yaml: ignoring,
error in schema:
warning: no schema found in file:
./Documentation/devicetree/bindings/soc/rockchip/grf.yaml
  DTEX    Documentation/devicetree/bindings/soc/rockchip/grf.example.dts
  DTC     Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml
  CHECK   Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml
/Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml:
syscon@ff770000: compatible:0: 'anyOf' conditional failed, one must be
fixed:
	'rockchip,rk3399-grf' is not one of [....]
===
>> +
>> +allOf:
>> +  - $ref: "#/$defs/px30-grf"
>> +  - $ref: "#/$defs/rk3288-grf"
>> +  - $ref: "#/$defs/rk3328-grf"
>> +  - $ref: "#/$defs/rk3399-grf"
>> +  - $ref: "#/$defs/reboot"
>> +  - $ref: "#/$defs/usb2"
>> +  - $ref: "#/$defs/domains"
>> +
>> +$defs:
> 
> There's not really any point to using '$defs' unless you have 2 or more 
> references to them.
> 
>> +  px30-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,px30-grf
>> +
>> +    then:
>> +      properties:
>> +        lvds:
>> +          description:
>> +            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
>> +
>> +  rk3288-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3288-grf
>> +
>> +    then:
>> +      properties:
>> +        edp-phy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
>> +
>> +        usbphy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
>> +
>> +  rk3328-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3328-grf
>> +
>> +    then:
>> +      properties:
>> +        gpio:
>> +          type: object
>> +
>> +          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +        power-controller:
>> +          type: object
>> +
>> +          $ref: "/schemas/power/rockchip,power-controller.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  rk3399-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3399-grf
>> +
>> +    then:
>> +      properties:
>> +        mipi-dphy-rx0:
>> +          type: object
>> +
>> +          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +        pcie-phy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
>> +
>> +      patternProperties:
>> +        "phy@[0-9a-f]+$":
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
>> +
>> +  reboot:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,rk3036-grf
>> +              - rockchip,rk3308-grf
>> +              - rockchip,rk3368-pmugrf
>> +
>> +    then:
>> +      properties:
>> +        reboot-mode:
>> +          type: object
>> +
>> +          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  usb2:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-usb2phy-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3328-usb2phy-grf
>> +              - rockchip,rk3399-grf
>> +              - rockchip,rv1108-grf
>> +
>> +    then:
>> +      properties:
>> +        "#address-cells":
>> +          const: 1
>> +
>> +        "#size-cells":
>> +          const: 1
>> +
>> +      required:
>> +        - "#address-cells"
>> +        - "#size-cells"
>> +
>> +      patternProperties:
>> +        "usb2-phy@[0-9a-f]+$":
>> +          type: object
>> +
>> +          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  domains:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,px30-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3288-grf
>> +              - rockchip,rk3328-grf
>> +              - rockchip,rk3368-pmugrf
>> +              - rockchip,rk3368-grf
>> +              - rockchip,rk3399-pmugrf
>> +              - rockchip,rk3399-grf
>> +
>> +    then:
>> +      properties:
>> +        io-domains:
>> +          description:
>> +            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/clock/rk3399-cru.h>
>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +    #include <dt-bindings/power/rk3399-power.h>
>> +    grf: syscon@ff770000 {
>> +      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
>> +      reg = <0xff770000 0x10000>;
>> +      #address-cells = <1>;
>> +      #size-cells = <1>;
>> +
>> +      mipi_dphy_rx0: mipi-dphy-rx0 {
>> +        compatible = "rockchip,rk3399-mipi-dphy-rx0";
>> +        clocks = <&cru SCLK_MIPIDPHY_REF>,
>> +                 <&cru SCLK_DPHY_RX0_CFG>,
>> +                 <&cru PCLK_VIO_GRF>;
>> +        clock-names = "dphy-ref", "dphy-cfg", "grf";
>> +        power-domains = <&power RK3399_PD_VIO>;
>> +        #phy-cells = <0>;
>> +      };
>> +
>> +      u2phy0: usb2-phy@e450 {
>> +        compatible = "rockchip,rk3399-usb2phy";
>> +        reg = <0xe450 0x10>;
>> +        clocks = <&cru SCLK_USB2PHY0_REF>;
>> +        clock-names = "phyclk";
>> +        #clock-cells = <0>;
>> +        clock-output-names = "clk_usbphy0_480m";
>> +        #phy-cells = <0>;
>> +
>> +        u2phy0_host: host-port {
>> +          #phy-cells = <0>;
>> +          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
>> +          interrupt-names = "linestate";
>> +         };
>> +
>> +        u2phy0_otg: otg-port {
>> +          #phy-cells = <0>;
>> +          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
>> +                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
>> +                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
>> +          interrupt-names = "otg-bvalid", "otg-id",
>> +                            "linestate";
>> +        };
>> +      };
>> +    };
>> -- 
>> 2.11.0
>>====

From c7d3c5abc51f2aaed01081570c5954c3973537d0 Mon Sep 17 00:00:00 2001
From: Johan Jonker <jbx6244@gmail.com>
Date: Mon, 10 May 2021 18:24:49 +0200
Subject: [PATCH] revert $ref fix

---
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 30
+++++-----------------
 1 file changed, 7 insertions(+), 23 deletions(-)

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 264e2e5ff..8a8943317 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -53,17 +53,7 @@ required:
 unevaluatedProperties: false

 allOf:
-  - $ref: "#/$defs/px30-grf"
-  - $ref: "#/$defs/rk3288-grf"
-  - $ref: "#/$defs/rk3328-grf"
-  - $ref: "#/$defs/rk3399-grf"
-  - $ref: "#/$defs/reboot"
-  - $ref: "#/$defs/usb2"
-  - $ref: "#/$defs/domains"
-
-$defs:
-  px30-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -75,8 +65,7 @@ $defs:
           description:

Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt

-  rk3288-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -92,8 +81,7 @@ $defs:
           description:
             Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt

-  rk3328-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -115,8 +103,7 @@ $defs:

           unevaluatedProperties: false

-  rk3399-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -140,8 +127,7 @@ $defs:
           description:
             Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt

-  reboot:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -160,8 +146,7 @@ $defs:

           unevaluatedProperties: false

-  usb2:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -192,8 +177,7 @@ $defs:

           unevaluatedProperties: false

-  domains:
-    if:
+  - if:
       properties:
         compatible:
           contains:
-- 
2.11.0


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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-10 16:32       ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-10 16:32 UTC (permalink / raw)
  To: Rob Herring
  Cc: heiko, linus.walleij, bgolaszewski, jay.xu, shawn.lin, david.wu,
	zhangqing, huangtao, cl, linux-gpio, linux-rockchip, devicetree,
	linux-arm-kernel, linux-kernel



On 5/10/21 6:12 PM, Rob Herring wrote:
> On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
>> Current dts files with 'grf' nodes are manually verified.
>> In order to automate this process grf.txt has to be
>> converted to YAML.
>>
>> Most compatibility strings are in use with "simple-mfd" added.
>>
>> Add description already in use:
>> "rockchip,rv1108-pmugrf", "syscon"
>>
>> Add new descriptions for:
>> "rockchip,rk3568-grf", "syscon", "simple-mfd"
>> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
>>
>> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
>> ---
>>
>> Changed V3:
>>   remove select
>>   change unevaluatedProperties
>>   add separate schemas for each 'if' subset
> 
> Sorry, but by separate I meant different files. But you don't *have* to 
> do that.
> 
>>
>> Changed V2:
>>   add rockchip,rk3328-grf-gpio.yaml
>>   rename grf-gpio nodename
>> ---
>>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
>>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
>>  2 files changed, 262 insertions(+), 61 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
>>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
>> deleted file mode 100644
>> index f96511aa3..000000000
>> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
>> +++ /dev/null
>> @@ -1,61 +0,0 @@
>> -* Rockchip General Register Files (GRF)
>> -
>> -The general register file will be used to do static set by software, which
>> -is composed of many registers for system control.
>> -
>> -From RK3368 SoCs, the GRF is divided into two sections,
>> -- GRF, used for general non-secure system,
>> -- SGRF, used for general secure system,
>> -- PMUGRF, used for always on system
>> -
>> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
>> -
>> -ON RK3308 SoC, the GRF is divided into four sections:
>> -- GRF, used for general non-secure system,
>> -- SGRF, used for general secure system,
>> -- DETECTGRF, used for audio codec system,
>> -- COREGRF, used for pvtm,
>> -
>> -Required Properties:
>> -
>> -- compatible: GRF should be one of the following:
>> -   - "rockchip,px30-grf", "syscon": for px30
>> -   - "rockchip,rk3036-grf", "syscon": for rk3036
>> -   - "rockchip,rk3066-grf", "syscon": for rk3066
>> -   - "rockchip,rk3188-grf", "syscon": for rk3188
>> -   - "rockchip,rk3228-grf", "syscon": for rk3228
>> -   - "rockchip,rk3288-grf", "syscon": for rk3288
>> -   - "rockchip,rk3308-grf", "syscon": for rk3308
>> -   - "rockchip,rk3328-grf", "syscon": for rk3328
>> -   - "rockchip,rk3368-grf", "syscon": for rk3368
>> -   - "rockchip,rk3399-grf", "syscon": for rk3399
>> -   - "rockchip,rv1108-grf", "syscon": for rv1108
>> -- compatible: DETECTGRF should be one of the following:
>> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
>> -- compatilbe: COREGRF should be one of the following:
>> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
>> -- compatible: PMUGRF should be one of the following:
>> -   - "rockchip,px30-pmugrf", "syscon": for px30
>> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
>> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
>> -- compatible: SGRF should be one of the following:
>> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
>> -- compatible: USB2PHYGRF should be one of the following:
>> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
>> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
>> -- compatible: USBGRF should be one of the following:
>> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
>> -- reg: physical base address of the controller and length of memory mapped
>> -  region.
>> -
>> -Example: GRF and PMUGRF of RK3399 SoCs
>> -
>> -	pmugrf: syscon@ff320000 {
>> -		compatible = "rockchip,rk3399-pmugrf", "syscon";
>> -		reg = <0x0 0xff320000 0x0 0x1000>;
>> -	};
>> -
>> -	grf: syscon@ff770000 {
>> -		compatible = "rockchip,rk3399-grf", "syscon";
>> -		reg = <0x0 0xff770000 0x0 0x10000>;
>> -	};
>> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>> new file mode 100644
>> index 000000000..264e2e5ff
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>> @@ -0,0 +1,262 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Rockchip General Register Files (GRF)
>> +
>> +maintainers:
>> +  - Heiko Stuebner <heiko@sntech.de>
>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
>> +      - items:
>> +          - enum:
>> +              - rockchip,rk3066-grf
>> +              - rockchip,rk3188-grf
>> +              - rockchip,rk3288-sgrf
>> +              - rockchip,rv1108-pmugrf
>> +              - rockchip,rv1108-usbgrf
>> +          - const: syscon
>> +      - items:
>> +          - enum:
>> +              - rockchip,px30-grf
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,px30-usb2phy-grf
>> +              - rockchip,rk3036-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3288-grf
>> +              - rockchip,rk3308-core-grf
>> +              - rockchip,rk3308-detect-grf
>> +              - rockchip,rk3308-grf
>> +              - rockchip,rk3328-grf
>> +              - rockchip,rk3328-usb2phy-grf
>> +              - rockchip,rk3368-grf
>> +              - rockchip,rk3368-pmugrf
>> +              - rockchip,rk3399-grf
>> +              - rockchip,rk3399-pmugrf
>> +              - rockchip,rk3568-grf
>> +              - rockchip,rk3568-pmugrf
>> +              - rockchip,rv1108-grf
>> +          - const: syscon
>> +          - const: simple-mfd
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +unevaluatedProperties: false

Hi Rob,

I've tried without '$defs' and I can't get dt_binding_check error free with:
allOf:
  - if:
      [etc..]
  - if:
      [etc..]
That's why this construction.
Could you test with patch below.
Please advise.

Johan

===

/Documentation/devicetree/bindings/soc/rockchip/grf.yaml: ignoring,
error in schema:
warning: no schema found in file:
./Documentation/devicetree/bindings/soc/rockchip/grf.yaml
  DTEX    Documentation/devicetree/bindings/soc/rockchip/grf.example.dts
  DTC     Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml
  CHECK   Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml
/Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml:
syscon@ff770000: compatible:0: 'anyOf' conditional failed, one must be
fixed:
	'rockchip,rk3399-grf' is not one of [....]
===
>> +
>> +allOf:
>> +  - $ref: "#/$defs/px30-grf"
>> +  - $ref: "#/$defs/rk3288-grf"
>> +  - $ref: "#/$defs/rk3328-grf"
>> +  - $ref: "#/$defs/rk3399-grf"
>> +  - $ref: "#/$defs/reboot"
>> +  - $ref: "#/$defs/usb2"
>> +  - $ref: "#/$defs/domains"
>> +
>> +$defs:
> 
> There's not really any point to using '$defs' unless you have 2 or more 
> references to them.
> 
>> +  px30-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,px30-grf
>> +
>> +    then:
>> +      properties:
>> +        lvds:
>> +          description:
>> +            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
>> +
>> +  rk3288-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3288-grf
>> +
>> +    then:
>> +      properties:
>> +        edp-phy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
>> +
>> +        usbphy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
>> +
>> +  rk3328-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3328-grf
>> +
>> +    then:
>> +      properties:
>> +        gpio:
>> +          type: object
>> +
>> +          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +        power-controller:
>> +          type: object
>> +
>> +          $ref: "/schemas/power/rockchip,power-controller.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  rk3399-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3399-grf
>> +
>> +    then:
>> +      properties:
>> +        mipi-dphy-rx0:
>> +          type: object
>> +
>> +          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +        pcie-phy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
>> +
>> +      patternProperties:
>> +        "phy@[0-9a-f]+$":
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
>> +
>> +  reboot:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,rk3036-grf
>> +              - rockchip,rk3308-grf
>> +              - rockchip,rk3368-pmugrf
>> +
>> +    then:
>> +      properties:
>> +        reboot-mode:
>> +          type: object
>> +
>> +          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  usb2:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-usb2phy-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3328-usb2phy-grf
>> +              - rockchip,rk3399-grf
>> +              - rockchip,rv1108-grf
>> +
>> +    then:
>> +      properties:
>> +        "#address-cells":
>> +          const: 1
>> +
>> +        "#size-cells":
>> +          const: 1
>> +
>> +      required:
>> +        - "#address-cells"
>> +        - "#size-cells"
>> +
>> +      patternProperties:
>> +        "usb2-phy@[0-9a-f]+$":
>> +          type: object
>> +
>> +          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  domains:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,px30-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3288-grf
>> +              - rockchip,rk3328-grf
>> +              - rockchip,rk3368-pmugrf
>> +              - rockchip,rk3368-grf
>> +              - rockchip,rk3399-pmugrf
>> +              - rockchip,rk3399-grf
>> +
>> +    then:
>> +      properties:
>> +        io-domains:
>> +          description:
>> +            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/clock/rk3399-cru.h>
>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +    #include <dt-bindings/power/rk3399-power.h>
>> +    grf: syscon@ff770000 {
>> +      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
>> +      reg = <0xff770000 0x10000>;
>> +      #address-cells = <1>;
>> +      #size-cells = <1>;
>> +
>> +      mipi_dphy_rx0: mipi-dphy-rx0 {
>> +        compatible = "rockchip,rk3399-mipi-dphy-rx0";
>> +        clocks = <&cru SCLK_MIPIDPHY_REF>,
>> +                 <&cru SCLK_DPHY_RX0_CFG>,
>> +                 <&cru PCLK_VIO_GRF>;
>> +        clock-names = "dphy-ref", "dphy-cfg", "grf";
>> +        power-domains = <&power RK3399_PD_VIO>;
>> +        #phy-cells = <0>;
>> +      };
>> +
>> +      u2phy0: usb2-phy@e450 {
>> +        compatible = "rockchip,rk3399-usb2phy";
>> +        reg = <0xe450 0x10>;
>> +        clocks = <&cru SCLK_USB2PHY0_REF>;
>> +        clock-names = "phyclk";
>> +        #clock-cells = <0>;
>> +        clock-output-names = "clk_usbphy0_480m";
>> +        #phy-cells = <0>;
>> +
>> +        u2phy0_host: host-port {
>> +          #phy-cells = <0>;
>> +          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
>> +          interrupt-names = "linestate";
>> +         };
>> +
>> +        u2phy0_otg: otg-port {
>> +          #phy-cells = <0>;
>> +          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
>> +                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
>> +                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
>> +          interrupt-names = "otg-bvalid", "otg-id",
>> +                            "linestate";
>> +        };
>> +      };
>> +    };
>> -- 
>> 2.11.0
>>====

From c7d3c5abc51f2aaed01081570c5954c3973537d0 Mon Sep 17 00:00:00 2001
From: Johan Jonker <jbx6244@gmail.com>
Date: Mon, 10 May 2021 18:24:49 +0200
Subject: [PATCH] revert $ref fix

---
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 30
+++++-----------------
 1 file changed, 7 insertions(+), 23 deletions(-)

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 264e2e5ff..8a8943317 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -53,17 +53,7 @@ required:
 unevaluatedProperties: false

 allOf:
-  - $ref: "#/$defs/px30-grf"
-  - $ref: "#/$defs/rk3288-grf"
-  - $ref: "#/$defs/rk3328-grf"
-  - $ref: "#/$defs/rk3399-grf"
-  - $ref: "#/$defs/reboot"
-  - $ref: "#/$defs/usb2"
-  - $ref: "#/$defs/domains"
-
-$defs:
-  px30-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -75,8 +65,7 @@ $defs:
           description:

Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt

-  rk3288-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -92,8 +81,7 @@ $defs:
           description:
             Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt

-  rk3328-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -115,8 +103,7 @@ $defs:

           unevaluatedProperties: false

-  rk3399-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -140,8 +127,7 @@ $defs:
           description:
             Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt

-  reboot:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -160,8 +146,7 @@ $defs:

           unevaluatedProperties: false

-  usb2:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -192,8 +177,7 @@ $defs:

           unevaluatedProperties: false

-  domains:
-    if:
+  - if:
       properties:
         compatible:
           contains:
-- 
2.11.0


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-10 16:32       ` Johan Jonker
  0 siblings, 0 replies; 24+ messages in thread
From: Johan Jonker @ 2021-05-10 16:32 UTC (permalink / raw)
  To: Rob Herring
  Cc: heiko, linus.walleij, bgolaszewski, jay.xu, shawn.lin, david.wu,
	zhangqing, huangtao, cl, linux-gpio, linux-rockchip, devicetree,
	linux-arm-kernel, linux-kernel



On 5/10/21 6:12 PM, Rob Herring wrote:
> On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
>> Current dts files with 'grf' nodes are manually verified.
>> In order to automate this process grf.txt has to be
>> converted to YAML.
>>
>> Most compatibility strings are in use with "simple-mfd" added.
>>
>> Add description already in use:
>> "rockchip,rv1108-pmugrf", "syscon"
>>
>> Add new descriptions for:
>> "rockchip,rk3568-grf", "syscon", "simple-mfd"
>> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
>>
>> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
>> ---
>>
>> Changed V3:
>>   remove select
>>   change unevaluatedProperties
>>   add separate schemas for each 'if' subset
> 
> Sorry, but by separate I meant different files. But you don't *have* to 
> do that.
> 
>>
>> Changed V2:
>>   add rockchip,rk3328-grf-gpio.yaml
>>   rename grf-gpio nodename
>> ---
>>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
>>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
>>  2 files changed, 262 insertions(+), 61 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
>>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
>> deleted file mode 100644
>> index f96511aa3..000000000
>> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
>> +++ /dev/null
>> @@ -1,61 +0,0 @@
>> -* Rockchip General Register Files (GRF)
>> -
>> -The general register file will be used to do static set by software, which
>> -is composed of many registers for system control.
>> -
>> -From RK3368 SoCs, the GRF is divided into two sections,
>> -- GRF, used for general non-secure system,
>> -- SGRF, used for general secure system,
>> -- PMUGRF, used for always on system
>> -
>> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
>> -
>> -ON RK3308 SoC, the GRF is divided into four sections:
>> -- GRF, used for general non-secure system,
>> -- SGRF, used for general secure system,
>> -- DETECTGRF, used for audio codec system,
>> -- COREGRF, used for pvtm,
>> -
>> -Required Properties:
>> -
>> -- compatible: GRF should be one of the following:
>> -   - "rockchip,px30-grf", "syscon": for px30
>> -   - "rockchip,rk3036-grf", "syscon": for rk3036
>> -   - "rockchip,rk3066-grf", "syscon": for rk3066
>> -   - "rockchip,rk3188-grf", "syscon": for rk3188
>> -   - "rockchip,rk3228-grf", "syscon": for rk3228
>> -   - "rockchip,rk3288-grf", "syscon": for rk3288
>> -   - "rockchip,rk3308-grf", "syscon": for rk3308
>> -   - "rockchip,rk3328-grf", "syscon": for rk3328
>> -   - "rockchip,rk3368-grf", "syscon": for rk3368
>> -   - "rockchip,rk3399-grf", "syscon": for rk3399
>> -   - "rockchip,rv1108-grf", "syscon": for rv1108
>> -- compatible: DETECTGRF should be one of the following:
>> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
>> -- compatilbe: COREGRF should be one of the following:
>> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
>> -- compatible: PMUGRF should be one of the following:
>> -   - "rockchip,px30-pmugrf", "syscon": for px30
>> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
>> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
>> -- compatible: SGRF should be one of the following:
>> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
>> -- compatible: USB2PHYGRF should be one of the following:
>> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
>> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
>> -- compatible: USBGRF should be one of the following:
>> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
>> -- reg: physical base address of the controller and length of memory mapped
>> -  region.
>> -
>> -Example: GRF and PMUGRF of RK3399 SoCs
>> -
>> -	pmugrf: syscon@ff320000 {
>> -		compatible = "rockchip,rk3399-pmugrf", "syscon";
>> -		reg = <0x0 0xff320000 0x0 0x1000>;
>> -	};
>> -
>> -	grf: syscon@ff770000 {
>> -		compatible = "rockchip,rk3399-grf", "syscon";
>> -		reg = <0x0 0xff770000 0x0 0x10000>;
>> -	};
>> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>> new file mode 100644
>> index 000000000..264e2e5ff
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
>> @@ -0,0 +1,262 @@
>> +# SPDX-License-Identifier: GPL-2.0
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Rockchip General Register Files (GRF)
>> +
>> +maintainers:
>> +  - Heiko Stuebner <heiko@sntech.de>
>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
>> +      - items:
>> +          - enum:
>> +              - rockchip,rk3066-grf
>> +              - rockchip,rk3188-grf
>> +              - rockchip,rk3288-sgrf
>> +              - rockchip,rv1108-pmugrf
>> +              - rockchip,rv1108-usbgrf
>> +          - const: syscon
>> +      - items:
>> +          - enum:
>> +              - rockchip,px30-grf
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,px30-usb2phy-grf
>> +              - rockchip,rk3036-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3288-grf
>> +              - rockchip,rk3308-core-grf
>> +              - rockchip,rk3308-detect-grf
>> +              - rockchip,rk3308-grf
>> +              - rockchip,rk3328-grf
>> +              - rockchip,rk3328-usb2phy-grf
>> +              - rockchip,rk3368-grf
>> +              - rockchip,rk3368-pmugrf
>> +              - rockchip,rk3399-grf
>> +              - rockchip,rk3399-pmugrf
>> +              - rockchip,rk3568-grf
>> +              - rockchip,rk3568-pmugrf
>> +              - rockchip,rv1108-grf
>> +          - const: syscon
>> +          - const: simple-mfd
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +unevaluatedProperties: false

Hi Rob,

I've tried without '$defs' and I can't get dt_binding_check error free with:
allOf:
  - if:
      [etc..]
  - if:
      [etc..]
That's why this construction.
Could you test with patch below.
Please advise.

Johan

===

/Documentation/devicetree/bindings/soc/rockchip/grf.yaml: ignoring,
error in schema:
warning: no schema found in file:
./Documentation/devicetree/bindings/soc/rockchip/grf.yaml
  DTEX    Documentation/devicetree/bindings/soc/rockchip/grf.example.dts
  DTC     Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml
  CHECK   Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml
/Documentation/devicetree/bindings/soc/rockchip/grf.example.dt.yaml:
syscon@ff770000: compatible:0: 'anyOf' conditional failed, one must be
fixed:
	'rockchip,rk3399-grf' is not one of [....]
===
>> +
>> +allOf:
>> +  - $ref: "#/$defs/px30-grf"
>> +  - $ref: "#/$defs/rk3288-grf"
>> +  - $ref: "#/$defs/rk3328-grf"
>> +  - $ref: "#/$defs/rk3399-grf"
>> +  - $ref: "#/$defs/reboot"
>> +  - $ref: "#/$defs/usb2"
>> +  - $ref: "#/$defs/domains"
>> +
>> +$defs:
> 
> There's not really any point to using '$defs' unless you have 2 or more 
> references to them.
> 
>> +  px30-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,px30-grf
>> +
>> +    then:
>> +      properties:
>> +        lvds:
>> +          description:
>> +            Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt
>> +
>> +  rk3288-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3288-grf
>> +
>> +    then:
>> +      properties:
>> +        edp-phy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-dp-phy.txt
>> +
>> +        usbphy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt
>> +
>> +  rk3328-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3328-grf
>> +
>> +    then:
>> +      properties:
>> +        gpio:
>> +          type: object
>> +
>> +          $ref: "/schemas/gpio/rockchip,rk3328-grf-gpio.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +        power-controller:
>> +          type: object
>> +
>> +          $ref: "/schemas/power/rockchip,power-controller.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  rk3399-grf:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: rockchip,rk3399-grf
>> +
>> +    then:
>> +      properties:
>> +        mipi-dphy-rx0:
>> +          type: object
>> +
>> +          $ref: "/schemas/phy/rockchip-mipi-dphy-rx0.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +        pcie-phy:
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
>> +
>> +      patternProperties:
>> +        "phy@[0-9a-f]+$":
>> +          description:
>> +            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
>> +
>> +  reboot:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,rk3036-grf
>> +              - rockchip,rk3308-grf
>> +              - rockchip,rk3368-pmugrf
>> +
>> +    then:
>> +      properties:
>> +        reboot-mode:
>> +          type: object
>> +
>> +          $ref: "/schemas/power/reset/syscon-reboot-mode.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  usb2:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-usb2phy-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3328-usb2phy-grf
>> +              - rockchip,rk3399-grf
>> +              - rockchip,rv1108-grf
>> +
>> +    then:
>> +      properties:
>> +        "#address-cells":
>> +          const: 1
>> +
>> +        "#size-cells":
>> +          const: 1
>> +
>> +      required:
>> +        - "#address-cells"
>> +        - "#size-cells"
>> +
>> +      patternProperties:
>> +        "usb2-phy@[0-9a-f]+$":
>> +          type: object
>> +
>> +          $ref: "/schemas/phy/phy-rockchip-inno-usb2.yaml#"
>> +
>> +          unevaluatedProperties: false
>> +
>> +  domains:
>> +    if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - rockchip,px30-pmugrf
>> +              - rockchip,px30-grf
>> +              - rockchip,rk3228-grf
>> +              - rockchip,rk3288-grf
>> +              - rockchip,rk3328-grf
>> +              - rockchip,rk3368-pmugrf
>> +              - rockchip,rk3368-grf
>> +              - rockchip,rk3399-pmugrf
>> +              - rockchip,rk3399-grf
>> +
>> +    then:
>> +      properties:
>> +        io-domains:
>> +          description:
>> +            Documentation/devicetree/bindings/power/rockchip-io-domain.txt
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/clock/rk3399-cru.h>
>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +    #include <dt-bindings/power/rk3399-power.h>
>> +    grf: syscon@ff770000 {
>> +      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
>> +      reg = <0xff770000 0x10000>;
>> +      #address-cells = <1>;
>> +      #size-cells = <1>;
>> +
>> +      mipi_dphy_rx0: mipi-dphy-rx0 {
>> +        compatible = "rockchip,rk3399-mipi-dphy-rx0";
>> +        clocks = <&cru SCLK_MIPIDPHY_REF>,
>> +                 <&cru SCLK_DPHY_RX0_CFG>,
>> +                 <&cru PCLK_VIO_GRF>;
>> +        clock-names = "dphy-ref", "dphy-cfg", "grf";
>> +        power-domains = <&power RK3399_PD_VIO>;
>> +        #phy-cells = <0>;
>> +      };
>> +
>> +      u2phy0: usb2-phy@e450 {
>> +        compatible = "rockchip,rk3399-usb2phy";
>> +        reg = <0xe450 0x10>;
>> +        clocks = <&cru SCLK_USB2PHY0_REF>;
>> +        clock-names = "phyclk";
>> +        #clock-cells = <0>;
>> +        clock-output-names = "clk_usbphy0_480m";
>> +        #phy-cells = <0>;
>> +
>> +        u2phy0_host: host-port {
>> +          #phy-cells = <0>;
>> +          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
>> +          interrupt-names = "linestate";
>> +         };
>> +
>> +        u2phy0_otg: otg-port {
>> +          #phy-cells = <0>;
>> +          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
>> +                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
>> +                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
>> +          interrupt-names = "otg-bvalid", "otg-id",
>> +                            "linestate";
>> +        };
>> +      };
>> +    };
>> -- 
>> 2.11.0
>>====

From c7d3c5abc51f2aaed01081570c5954c3973537d0 Mon Sep 17 00:00:00 2001
From: Johan Jonker <jbx6244@gmail.com>
Date: Mon, 10 May 2021 18:24:49 +0200
Subject: [PATCH] revert $ref fix

---
 .../devicetree/bindings/soc/rockchip/grf.yaml      | 30
+++++-----------------
 1 file changed, 7 insertions(+), 23 deletions(-)

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 264e2e5ff..8a8943317 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -53,17 +53,7 @@ required:
 unevaluatedProperties: false

 allOf:
-  - $ref: "#/$defs/px30-grf"
-  - $ref: "#/$defs/rk3288-grf"
-  - $ref: "#/$defs/rk3328-grf"
-  - $ref: "#/$defs/rk3399-grf"
-  - $ref: "#/$defs/reboot"
-  - $ref: "#/$defs/usb2"
-  - $ref: "#/$defs/domains"
-
-$defs:
-  px30-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -75,8 +65,7 @@ $defs:
           description:

Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt

-  rk3288-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -92,8 +81,7 @@ $defs:
           description:
             Documentation/devicetree/bindings/phy/rockchip-usb-phy.txt

-  rk3328-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -115,8 +103,7 @@ $defs:

           unevaluatedProperties: false

-  rk3399-grf:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -140,8 +127,7 @@ $defs:
           description:
             Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt

-  reboot:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -160,8 +146,7 @@ $defs:

           unevaluatedProperties: false

-  usb2:
-    if:
+  - if:
       properties:
         compatible:
           contains:
@@ -192,8 +177,7 @@ $defs:

           unevaluatedProperties: false

-  domains:
-    if:
+  - if:
       properties:
         compatible:
           contains:
-- 
2.11.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
  2021-05-10 16:32       ` Johan Jonker
  (?)
@ 2021-05-10 21:49         ` Rob Herring
  -1 siblings, 0 replies; 24+ messages in thread
From: Rob Herring @ 2021-05-10 21:49 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, Linus Walleij, Bartosz Golaszewski, Jianqun Xu, Shawn Lin,
	David Wu, Elaine Zhang, Tao Huang, Liang Chen,
	open list:GPIO SUBSYSTEM, open list:ARM/Rockchip SoC...,
	devicetree, linux-arm-kernel, linux-kernel

On Mon, May 10, 2021 at 11:32 AM Johan Jonker <jbx6244@gmail.com> wrote:
>
>
>
> On 5/10/21 6:12 PM, Rob Herring wrote:
> > On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
> >> Current dts files with 'grf' nodes are manually verified.
> >> In order to automate this process grf.txt has to be
> >> converted to YAML.
> >>
> >> Most compatibility strings are in use with "simple-mfd" added.
> >>
> >> Add description already in use:
> >> "rockchip,rv1108-pmugrf", "syscon"
> >>
> >> Add new descriptions for:
> >> "rockchip,rk3568-grf", "syscon", "simple-mfd"
> >> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
> >>
> >> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
> >> ---
> >>
> >> Changed V3:
> >>   remove select
> >>   change unevaluatedProperties
> >>   add separate schemas for each 'if' subset
> >
> > Sorry, but by separate I meant different files. But you don't *have* to
> > do that.
> >
> >>
> >> Changed V2:
> >>   add rockchip,rk3328-grf-gpio.yaml
> >>   rename grf-gpio nodename
> >> ---
> >>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
> >>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
> >>  2 files changed, 262 insertions(+), 61 deletions(-)
> >>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >>
> >> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >> deleted file mode 100644
> >> index f96511aa3..000000000
> >> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >> +++ /dev/null
> >> @@ -1,61 +0,0 @@
> >> -* Rockchip General Register Files (GRF)
> >> -
> >> -The general register file will be used to do static set by software, which
> >> -is composed of many registers for system control.
> >> -
> >> -From RK3368 SoCs, the GRF is divided into two sections,
> >> -- GRF, used for general non-secure system,
> >> -- SGRF, used for general secure system,
> >> -- PMUGRF, used for always on system
> >> -
> >> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
> >> -
> >> -ON RK3308 SoC, the GRF is divided into four sections:
> >> -- GRF, used for general non-secure system,
> >> -- SGRF, used for general secure system,
> >> -- DETECTGRF, used for audio codec system,
> >> -- COREGRF, used for pvtm,
> >> -
> >> -Required Properties:
> >> -
> >> -- compatible: GRF should be one of the following:
> >> -   - "rockchip,px30-grf", "syscon": for px30
> >> -   - "rockchip,rk3036-grf", "syscon": for rk3036
> >> -   - "rockchip,rk3066-grf", "syscon": for rk3066
> >> -   - "rockchip,rk3188-grf", "syscon": for rk3188
> >> -   - "rockchip,rk3228-grf", "syscon": for rk3228
> >> -   - "rockchip,rk3288-grf", "syscon": for rk3288
> >> -   - "rockchip,rk3308-grf", "syscon": for rk3308
> >> -   - "rockchip,rk3328-grf", "syscon": for rk3328
> >> -   - "rockchip,rk3368-grf", "syscon": for rk3368
> >> -   - "rockchip,rk3399-grf", "syscon": for rk3399
> >> -   - "rockchip,rv1108-grf", "syscon": for rv1108
> >> -- compatible: DETECTGRF should be one of the following:
> >> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
> >> -- compatilbe: COREGRF should be one of the following:
> >> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
> >> -- compatible: PMUGRF should be one of the following:
> >> -   - "rockchip,px30-pmugrf", "syscon": for px30
> >> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
> >> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
> >> -- compatible: SGRF should be one of the following:
> >> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
> >> -- compatible: USB2PHYGRF should be one of the following:
> >> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
> >> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
> >> -- compatible: USBGRF should be one of the following:
> >> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
> >> -- reg: physical base address of the controller and length of memory mapped
> >> -  region.
> >> -
> >> -Example: GRF and PMUGRF of RK3399 SoCs
> >> -
> >> -    pmugrf: syscon@ff320000 {
> >> -            compatible = "rockchip,rk3399-pmugrf", "syscon";
> >> -            reg = <0x0 0xff320000 0x0 0x1000>;
> >> -    };
> >> -
> >> -    grf: syscon@ff770000 {
> >> -            compatible = "rockchip,rk3399-grf", "syscon";
> >> -            reg = <0x0 0xff770000 0x0 0x10000>;
> >> -    };
> >> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >> new file mode 100644
> >> index 000000000..264e2e5ff
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >> @@ -0,0 +1,262 @@
> >> +# SPDX-License-Identifier: GPL-2.0
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: Rockchip General Register Files (GRF)
> >> +
> >> +maintainers:
> >> +  - Heiko Stuebner <heiko@sntech.de>
> >> +
> >> +properties:
> >> +  compatible:
> >> +    oneOf:
> >> +      - items:
> >> +          - enum:
> >> +              - rockchip,rk3066-grf
> >> +              - rockchip,rk3188-grf
> >> +              - rockchip,rk3288-sgrf
> >> +              - rockchip,rv1108-pmugrf
> >> +              - rockchip,rv1108-usbgrf
> >> +          - const: syscon
> >> +      - items:
> >> +          - enum:
> >> +              - rockchip,px30-grf
> >> +              - rockchip,px30-pmugrf
> >> +              - rockchip,px30-usb2phy-grf
> >> +              - rockchip,rk3036-grf
> >> +              - rockchip,rk3228-grf
> >> +              - rockchip,rk3288-grf
> >> +              - rockchip,rk3308-core-grf
> >> +              - rockchip,rk3308-detect-grf
> >> +              - rockchip,rk3308-grf
> >> +              - rockchip,rk3328-grf
> >> +              - rockchip,rk3328-usb2phy-grf
> >> +              - rockchip,rk3368-grf
> >> +              - rockchip,rk3368-pmugrf
> >> +              - rockchip,rk3399-grf
> >> +              - rockchip,rk3399-pmugrf
> >> +              - rockchip,rk3568-grf
> >> +              - rockchip,rk3568-pmugrf
> >> +              - rockchip,rv1108-grf
> >> +          - const: syscon
> >> +          - const: simple-mfd
> >> +
> >> +  reg:
> >> +    maxItems: 1
> >> +
> >> +required:
> >> +  - compatible
> >> +  - reg
> >> +
> >> +unevaluatedProperties: false
>
> Hi Rob,
>
> I've tried without '$defs' and I can't get dt_binding_check error free with:
> allOf:
>   - if:
>       [etc..]
>   - if:
>       [etc..]
> That's why this construction.
> Could you test with patch below.
> Please advise.

There's a requirement that all the properties be defined at the top
level. If 'unevaluatedProperties' was actually implemented, we
wouldn't need that. So you need something like this:

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 8a8943317544..8034458fb969 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -46,11 +46,18 @@ properties:
   reg:
     maxItems: 1

+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
 required:
   - compatible
   - reg

-unevaluatedProperties: false
+additionalProperties:
+  type: object

 allOf:
   - if:
@@ -158,13 +165,6 @@ allOf:
               - rockchip,rv1108-grf

     then:
-      properties:
-        "#address-cells":
-          const: 1
-
-        "#size-cells":
-          const: 1
-
       required:
         - "#address-cells"
         - "#size-cells"

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-10 21:49         ` Rob Herring
  0 siblings, 0 replies; 24+ messages in thread
From: Rob Herring @ 2021-05-10 21:49 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, Linus Walleij, Bartosz Golaszewski, Jianqun Xu, Shawn Lin,
	David Wu, Elaine Zhang, Tao Huang, Liang Chen,
	open list:GPIO SUBSYSTEM, open list:ARM/Rockchip SoC...,
	devicetree, linux-arm-kernel, linux-kernel

On Mon, May 10, 2021 at 11:32 AM Johan Jonker <jbx6244@gmail.com> wrote:
>
>
>
> On 5/10/21 6:12 PM, Rob Herring wrote:
> > On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
> >> Current dts files with 'grf' nodes are manually verified.
> >> In order to automate this process grf.txt has to be
> >> converted to YAML.
> >>
> >> Most compatibility strings are in use with "simple-mfd" added.
> >>
> >> Add description already in use:
> >> "rockchip,rv1108-pmugrf", "syscon"
> >>
> >> Add new descriptions for:
> >> "rockchip,rk3568-grf", "syscon", "simple-mfd"
> >> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
> >>
> >> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
> >> ---
> >>
> >> Changed V3:
> >>   remove select
> >>   change unevaluatedProperties
> >>   add separate schemas for each 'if' subset
> >
> > Sorry, but by separate I meant different files. But you don't *have* to
> > do that.
> >
> >>
> >> Changed V2:
> >>   add rockchip,rk3328-grf-gpio.yaml
> >>   rename grf-gpio nodename
> >> ---
> >>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
> >>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
> >>  2 files changed, 262 insertions(+), 61 deletions(-)
> >>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >>
> >> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >> deleted file mode 100644
> >> index f96511aa3..000000000
> >> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >> +++ /dev/null
> >> @@ -1,61 +0,0 @@
> >> -* Rockchip General Register Files (GRF)
> >> -
> >> -The general register file will be used to do static set by software, which
> >> -is composed of many registers for system control.
> >> -
> >> -From RK3368 SoCs, the GRF is divided into two sections,
> >> -- GRF, used for general non-secure system,
> >> -- SGRF, used for general secure system,
> >> -- PMUGRF, used for always on system
> >> -
> >> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
> >> -
> >> -ON RK3308 SoC, the GRF is divided into four sections:
> >> -- GRF, used for general non-secure system,
> >> -- SGRF, used for general secure system,
> >> -- DETECTGRF, used for audio codec system,
> >> -- COREGRF, used for pvtm,
> >> -
> >> -Required Properties:
> >> -
> >> -- compatible: GRF should be one of the following:
> >> -   - "rockchip,px30-grf", "syscon": for px30
> >> -   - "rockchip,rk3036-grf", "syscon": for rk3036
> >> -   - "rockchip,rk3066-grf", "syscon": for rk3066
> >> -   - "rockchip,rk3188-grf", "syscon": for rk3188
> >> -   - "rockchip,rk3228-grf", "syscon": for rk3228
> >> -   - "rockchip,rk3288-grf", "syscon": for rk3288
> >> -   - "rockchip,rk3308-grf", "syscon": for rk3308
> >> -   - "rockchip,rk3328-grf", "syscon": for rk3328
> >> -   - "rockchip,rk3368-grf", "syscon": for rk3368
> >> -   - "rockchip,rk3399-grf", "syscon": for rk3399
> >> -   - "rockchip,rv1108-grf", "syscon": for rv1108
> >> -- compatible: DETECTGRF should be one of the following:
> >> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
> >> -- compatilbe: COREGRF should be one of the following:
> >> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
> >> -- compatible: PMUGRF should be one of the following:
> >> -   - "rockchip,px30-pmugrf", "syscon": for px30
> >> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
> >> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
> >> -- compatible: SGRF should be one of the following:
> >> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
> >> -- compatible: USB2PHYGRF should be one of the following:
> >> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
> >> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
> >> -- compatible: USBGRF should be one of the following:
> >> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
> >> -- reg: physical base address of the controller and length of memory mapped
> >> -  region.
> >> -
> >> -Example: GRF and PMUGRF of RK3399 SoCs
> >> -
> >> -    pmugrf: syscon@ff320000 {
> >> -            compatible = "rockchip,rk3399-pmugrf", "syscon";
> >> -            reg = <0x0 0xff320000 0x0 0x1000>;
> >> -    };
> >> -
> >> -    grf: syscon@ff770000 {
> >> -            compatible = "rockchip,rk3399-grf", "syscon";
> >> -            reg = <0x0 0xff770000 0x0 0x10000>;
> >> -    };
> >> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >> new file mode 100644
> >> index 000000000..264e2e5ff
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >> @@ -0,0 +1,262 @@
> >> +# SPDX-License-Identifier: GPL-2.0
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: Rockchip General Register Files (GRF)
> >> +
> >> +maintainers:
> >> +  - Heiko Stuebner <heiko@sntech.de>
> >> +
> >> +properties:
> >> +  compatible:
> >> +    oneOf:
> >> +      - items:
> >> +          - enum:
> >> +              - rockchip,rk3066-grf
> >> +              - rockchip,rk3188-grf
> >> +              - rockchip,rk3288-sgrf
> >> +              - rockchip,rv1108-pmugrf
> >> +              - rockchip,rv1108-usbgrf
> >> +          - const: syscon
> >> +      - items:
> >> +          - enum:
> >> +              - rockchip,px30-grf
> >> +              - rockchip,px30-pmugrf
> >> +              - rockchip,px30-usb2phy-grf
> >> +              - rockchip,rk3036-grf
> >> +              - rockchip,rk3228-grf
> >> +              - rockchip,rk3288-grf
> >> +              - rockchip,rk3308-core-grf
> >> +              - rockchip,rk3308-detect-grf
> >> +              - rockchip,rk3308-grf
> >> +              - rockchip,rk3328-grf
> >> +              - rockchip,rk3328-usb2phy-grf
> >> +              - rockchip,rk3368-grf
> >> +              - rockchip,rk3368-pmugrf
> >> +              - rockchip,rk3399-grf
> >> +              - rockchip,rk3399-pmugrf
> >> +              - rockchip,rk3568-grf
> >> +              - rockchip,rk3568-pmugrf
> >> +              - rockchip,rv1108-grf
> >> +          - const: syscon
> >> +          - const: simple-mfd
> >> +
> >> +  reg:
> >> +    maxItems: 1
> >> +
> >> +required:
> >> +  - compatible
> >> +  - reg
> >> +
> >> +unevaluatedProperties: false
>
> Hi Rob,
>
> I've tried without '$defs' and I can't get dt_binding_check error free with:
> allOf:
>   - if:
>       [etc..]
>   - if:
>       [etc..]
> That's why this construction.
> Could you test with patch below.
> Please advise.

There's a requirement that all the properties be defined at the top
level. If 'unevaluatedProperties' was actually implemented, we
wouldn't need that. So you need something like this:

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 8a8943317544..8034458fb969 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -46,11 +46,18 @@ properties:
   reg:
     maxItems: 1

+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
 required:
   - compatible
   - reg

-unevaluatedProperties: false
+additionalProperties:
+  type: object

 allOf:
   - if:
@@ -158,13 +165,6 @@ allOf:
               - rockchip,rv1108-grf

     then:
-      properties:
-        "#address-cells":
-          const: 1
-
-        "#size-cells":
-          const: 1
-
       required:
         - "#address-cells"
         - "#size-cells"

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* Re: [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt to YAML
@ 2021-05-10 21:49         ` Rob Herring
  0 siblings, 0 replies; 24+ messages in thread
From: Rob Herring @ 2021-05-10 21:49 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, Linus Walleij, Bartosz Golaszewski, Jianqun Xu, Shawn Lin,
	David Wu, Elaine Zhang, Tao Huang, Liang Chen,
	open list:GPIO SUBSYSTEM, open list:ARM/Rockchip SoC...,
	devicetree, linux-arm-kernel, linux-kernel

On Mon, May 10, 2021 at 11:32 AM Johan Jonker <jbx6244@gmail.com> wrote:
>
>
>
> On 5/10/21 6:12 PM, Rob Herring wrote:
> > On Sat, May 08, 2021 at 02:37:41PM +0200, Johan Jonker wrote:
> >> Current dts files with 'grf' nodes are manually verified.
> >> In order to automate this process grf.txt has to be
> >> converted to YAML.
> >>
> >> Most compatibility strings are in use with "simple-mfd" added.
> >>
> >> Add description already in use:
> >> "rockchip,rv1108-pmugrf", "syscon"
> >>
> >> Add new descriptions for:
> >> "rockchip,rk3568-grf", "syscon", "simple-mfd"
> >> "rockchip,rk3568-pmugrf", "syscon", "simple-mfd"
> >>
> >> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
> >> ---
> >>
> >> Changed V3:
> >>   remove select
> >>   change unevaluatedProperties
> >>   add separate schemas for each 'if' subset
> >
> > Sorry, but by separate I meant different files. But you don't *have* to
> > do that.
> >
> >>
> >> Changed V2:
> >>   add rockchip,rk3328-grf-gpio.yaml
> >>   rename grf-gpio nodename
> >> ---
> >>  .../devicetree/bindings/soc/rockchip/grf.txt       |  61 -----
> >>  .../devicetree/bindings/soc/rockchip/grf.yaml      | 262 +++++++++++++++++++++
> >>  2 files changed, 262 insertions(+), 61 deletions(-)
> >>  delete mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >>  create mode 100644 Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >>
> >> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >> deleted file mode 100644
> >> index f96511aa3..000000000
> >> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
> >> +++ /dev/null
> >> @@ -1,61 +0,0 @@
> >> -* Rockchip General Register Files (GRF)
> >> -
> >> -The general register file will be used to do static set by software, which
> >> -is composed of many registers for system control.
> >> -
> >> -From RK3368 SoCs, the GRF is divided into two sections,
> >> -- GRF, used for general non-secure system,
> >> -- SGRF, used for general secure system,
> >> -- PMUGRF, used for always on system
> >> -
> >> -On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
> >> -
> >> -ON RK3308 SoC, the GRF is divided into four sections:
> >> -- GRF, used for general non-secure system,
> >> -- SGRF, used for general secure system,
> >> -- DETECTGRF, used for audio codec system,
> >> -- COREGRF, used for pvtm,
> >> -
> >> -Required Properties:
> >> -
> >> -- compatible: GRF should be one of the following:
> >> -   - "rockchip,px30-grf", "syscon": for px30
> >> -   - "rockchip,rk3036-grf", "syscon": for rk3036
> >> -   - "rockchip,rk3066-grf", "syscon": for rk3066
> >> -   - "rockchip,rk3188-grf", "syscon": for rk3188
> >> -   - "rockchip,rk3228-grf", "syscon": for rk3228
> >> -   - "rockchip,rk3288-grf", "syscon": for rk3288
> >> -   - "rockchip,rk3308-grf", "syscon": for rk3308
> >> -   - "rockchip,rk3328-grf", "syscon": for rk3328
> >> -   - "rockchip,rk3368-grf", "syscon": for rk3368
> >> -   - "rockchip,rk3399-grf", "syscon": for rk3399
> >> -   - "rockchip,rv1108-grf", "syscon": for rv1108
> >> -- compatible: DETECTGRF should be one of the following:
> >> -   - "rockchip,rk3308-detect-grf", "syscon": for rk3308
> >> -- compatilbe: COREGRF should be one of the following:
> >> -   - "rockchip,rk3308-core-grf", "syscon": for rk3308
> >> -- compatible: PMUGRF should be one of the following:
> >> -   - "rockchip,px30-pmugrf", "syscon": for px30
> >> -   - "rockchip,rk3368-pmugrf", "syscon": for rk3368
> >> -   - "rockchip,rk3399-pmugrf", "syscon": for rk3399
> >> -- compatible: SGRF should be one of the following:
> >> -   - "rockchip,rk3288-sgrf", "syscon": for rk3288
> >> -- compatible: USB2PHYGRF should be one of the following:
> >> -   - "rockchip,px30-usb2phy-grf", "syscon": for px30
> >> -   - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
> >> -- compatible: USBGRF should be one of the following:
> >> -   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
> >> -- reg: physical base address of the controller and length of memory mapped
> >> -  region.
> >> -
> >> -Example: GRF and PMUGRF of RK3399 SoCs
> >> -
> >> -    pmugrf: syscon@ff320000 {
> >> -            compatible = "rockchip,rk3399-pmugrf", "syscon";
> >> -            reg = <0x0 0xff320000 0x0 0x1000>;
> >> -    };
> >> -
> >> -    grf: syscon@ff770000 {
> >> -            compatible = "rockchip,rk3399-grf", "syscon";
> >> -            reg = <0x0 0xff770000 0x0 0x10000>;
> >> -    };
> >> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >> new file mode 100644
> >> index 000000000..264e2e5ff
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> >> @@ -0,0 +1,262 @@
> >> +# SPDX-License-Identifier: GPL-2.0
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: Rockchip General Register Files (GRF)
> >> +
> >> +maintainers:
> >> +  - Heiko Stuebner <heiko@sntech.de>
> >> +
> >> +properties:
> >> +  compatible:
> >> +    oneOf:
> >> +      - items:
> >> +          - enum:
> >> +              - rockchip,rk3066-grf
> >> +              - rockchip,rk3188-grf
> >> +              - rockchip,rk3288-sgrf
> >> +              - rockchip,rv1108-pmugrf
> >> +              - rockchip,rv1108-usbgrf
> >> +          - const: syscon
> >> +      - items:
> >> +          - enum:
> >> +              - rockchip,px30-grf
> >> +              - rockchip,px30-pmugrf
> >> +              - rockchip,px30-usb2phy-grf
> >> +              - rockchip,rk3036-grf
> >> +              - rockchip,rk3228-grf
> >> +              - rockchip,rk3288-grf
> >> +              - rockchip,rk3308-core-grf
> >> +              - rockchip,rk3308-detect-grf
> >> +              - rockchip,rk3308-grf
> >> +              - rockchip,rk3328-grf
> >> +              - rockchip,rk3328-usb2phy-grf
> >> +              - rockchip,rk3368-grf
> >> +              - rockchip,rk3368-pmugrf
> >> +              - rockchip,rk3399-grf
> >> +              - rockchip,rk3399-pmugrf
> >> +              - rockchip,rk3568-grf
> >> +              - rockchip,rk3568-pmugrf
> >> +              - rockchip,rv1108-grf
> >> +          - const: syscon
> >> +          - const: simple-mfd
> >> +
> >> +  reg:
> >> +    maxItems: 1
> >> +
> >> +required:
> >> +  - compatible
> >> +  - reg
> >> +
> >> +unevaluatedProperties: false
>
> Hi Rob,
>
> I've tried without '$defs' and I can't get dt_binding_check error free with:
> allOf:
>   - if:
>       [etc..]
>   - if:
>       [etc..]
> That's why this construction.
> Could you test with patch below.
> Please advise.

There's a requirement that all the properties be defined at the top
level. If 'unevaluatedProperties' was actually implemented, we
wouldn't need that. So you need something like this:

diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
index 8a8943317544..8034458fb969 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
@@ -46,11 +46,18 @@ properties:
   reg:
     maxItems: 1

+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
 required:
   - compatible
   - reg

-unevaluatedProperties: false
+additionalProperties:
+  type: object

 allOf:
   - if:
@@ -158,13 +165,6 @@ allOf:
               - rockchip,rv1108-grf

     then:
-      properties:
-        "#address-cells":
-          const: 1
-
-        "#size-cells":
-          const: 1
-
       required:
         - "#address-cells"
         - "#size-cells"

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2021-05-11  9:37 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-08 12:37 [PATCH v3 0/4] convert grf.txt to YAML Johan Jonker
2021-05-08 12:37 ` Johan Jonker
2021-05-08 12:37 ` Johan Jonker
2021-05-08 12:37 ` [PATCH v3 1/4] dt-bindings: gpio: convert rk3328-grf-gpio.txt " Johan Jonker
2021-05-08 12:37   ` Johan Jonker
2021-05-08 12:37   ` Johan Jonker
2021-05-08 12:37 ` [PATCH v3 2/4] dt-bindings: soc: rockchip: convert grf.txt " Johan Jonker
2021-05-08 12:37   ` Johan Jonker
2021-05-08 12:37   ` Johan Jonker
2021-05-10 16:12   ` Rob Herring
2021-05-10 16:12     ` Rob Herring
2021-05-10 16:12     ` Rob Herring
2021-05-10 16:32     ` Johan Jonker
2021-05-10 16:32       ` Johan Jonker
2021-05-10 16:32       ` Johan Jonker
2021-05-10 21:49       ` Rob Herring
2021-05-10 21:49         ` Rob Herring
2021-05-10 21:49         ` Rob Herring
2021-05-08 12:37 ` [PATCH v3 3/4] ARM: dts: rockchip: add grf register compatible for rk3066/rk3188 Johan Jonker
2021-05-08 12:37   ` Johan Jonker
2021-05-08 12:37   ` Johan Jonker
2021-05-08 12:37 ` [PATCH v3 4/4] arm64: dts: rename grf-gpio nodename in rk3328.dtsi Johan Jonker
2021-05-08 12:37   ` Johan Jonker
2021-05-08 12:37   ` Johan Jonker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.