linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format
@ 2021-04-16  6:37 Nishanth Menon
  2021-04-16  6:37 ` [PATCH 1/4] dt-bindings: reset: Convert ti,sci-reset to json schema Nishanth Menon
                   ` (5 more replies)
  0 siblings, 6 replies; 17+ messages in thread
From: Nishanth Menon @ 2021-04-16  6:37 UTC (permalink / raw)
  To: Philipp Zabel, Stephen Boyd, Michael Turquette, Rob Herring,
	Santosh Shilimkar, Tero Kristo, Nishanth Menon
  Cc: linux-clk, linux-kernel, devicetree, linux-arm-kernel

Hi,

I understand that the following series belong to various maintainers,
but, it is a bit better reviewed as a single series for
cohesiveness.

There are also dts fixups that this series exposes, which is good, but
I chose to hold them back for now pending binding review at least. The
complete series is available in [1] if folks are curious.

Nishanth Menon (4):
  dt-bindings: reset: Convert ti,sci-reset to json schema
  dt-bindings: clock: Convert ti,sci-clk to json schema
  dt-bindings: soc: ti: Convert ti,sci-pm-domain to json schema
  dt-bindings: arm: keystone: Convert ti,sci to json schema

 .../bindings/arm/keystone/ti,sci.txt          |  86 ------------
 .../bindings/arm/keystone/ti,sci.yaml         | 129 ++++++++++++++++++
 .../devicetree/bindings/clock/ti,sci-clk.txt  |  36 -----
 .../devicetree/bindings/clock/ti,sci-clk.yaml |  52 +++++++
 .../bindings/reset/ti,sci-reset.txt           |  62 ---------
 .../bindings/reset/ti,sci-reset.yaml          |  51 +++++++
 .../bindings/soc/ti/sci-pm-domain.txt         |  65 ---------
 .../bindings/soc/ti/sci-pm-domain.yaml        |  59 ++++++++
 8 files changed, 291 insertions(+), 249 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
 create mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
 delete mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.txt
 create mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
 delete mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.txt
 create mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
 delete mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
 create mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml

[1] https://github.com/nmenon/linux-2.6-playground/commits/yaml/tisci

Regards,
Nishanth Menon
-- 
2.31.0


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

* [PATCH 1/4] dt-bindings: reset: Convert ti,sci-reset to json schema
  2021-04-16  6:37 [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Nishanth Menon
@ 2021-04-16  6:37 ` Nishanth Menon
  2021-04-21 22:32   ` Rob Herring
  2021-04-16  6:37 ` [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk " Nishanth Menon
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 17+ messages in thread
From: Nishanth Menon @ 2021-04-16  6:37 UTC (permalink / raw)
  To: Philipp Zabel, Stephen Boyd, Michael Turquette, Rob Herring,
	Santosh Shilimkar, Tero Kristo, Nishanth Menon
  Cc: linux-clk, linux-kernel, devicetree, linux-arm-kernel

Convert the ti,sci-reset to json schema for better checks and documentation.

Differences being:
 - Drop consumer example as they are documented in the corresponding
   bindings themselves.
 - Drop phandle description for reset consumer or cell definition as it is
   redundant.

NOTE: we do have false positive checkpatch warning with this patch:
"DT binding docs and includes should be a separate patch"

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 .../bindings/reset/ti,sci-reset.txt           | 62 -------------------
 .../bindings/reset/ti,sci-reset.yaml          | 51 +++++++++++++++
 2 files changed, 51 insertions(+), 62 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.txt
 create mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.yaml

diff --git a/Documentation/devicetree/bindings/reset/ti,sci-reset.txt b/Documentation/devicetree/bindings/reset/ti,sci-reset.txt
deleted file mode 100644
index 8b1cf022f18a..000000000000
--- a/Documentation/devicetree/bindings/reset/ti,sci-reset.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-Texas Instruments System Control Interface (TI-SCI) Reset Controller
-=====================================================================
-
-Some TI SoCs contain a system controller (like the Power Management Micro
-Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
-the state of the various hardware modules present on the SoC. Communication
-between the host processor running an OS and the system controller happens
-through a protocol called TI System Control Interface (TI-SCI protocol).
-For TI SCI details, please refer to the document,
-Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
-
-TI-SCI Reset Controller Node
-============================
-This reset controller node uses the TI SCI protocol to perform the reset
-management of various hardware modules present on the SoC. Must be a child
-node of the associated TI-SCI system controller node.
-
-Required properties:
---------------------
- - compatible	: Should be "ti,sci-reset"
- - #reset-cells	: Should be 2. Please see the reset consumer node below for
-		  usage details.
-
-TI-SCI Reset Consumer Nodes
-===========================
-Each of the reset consumer nodes should have the following properties,
-in addition to their own properties.
-
-Required properties:
---------------------
- - resets	: A phandle and reset specifier pair, one pair for each reset
-		  signal that affects the device, or that the device manages.
-		  The phandle should point to the TI-SCI reset controller node,
-		  and the reset specifier should have 2 cell-values. The first
-		  cell should contain the device ID. The second cell should
-		  contain the reset mask value used by system controller.
-		  Please refer to the protocol documentation for these values
-		  to be used for different devices,
-		  http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
-
-Please also refer to Documentation/devicetree/bindings/reset/reset.txt for
-common reset controller usage by consumers.
-
-Example:
---------
-The following example demonstrates both a TI-SCI reset controller node and a
-consumer (a DSP device) on the 66AK2G SoC.
-
-pmmc: pmmc {
-	compatible = "ti,k2g-sci";
-
-	k2g_reset: reset-controller {
-		compatible = "ti,sci-reset";
-		#reset-cells = <2>;
-	};
-};
-
-dsp0: dsp@10800000 {
-	...
-	resets = <&k2g_reset 0x0046 0x1>;
-	...
-};
diff --git a/Documentation/devicetree/bindings/reset/ti,sci-reset.yaml b/Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
new file mode 100644
index 000000000000..4639d2cec557
--- /dev/null
+++ b/Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/reset/ti,sci-reset.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI-SCI reset controller node bindings
+
+maintainers:
+  - Nishanth Menon <nm@ti.com>
+
+description: |
+  Some TI SoCs contain a system controller (like the Power Management Micro
+  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
+  the state of the various hardware modules present on the SoC. Communication
+  between the host processor running an OS and the system controller happens
+  through a protocol called TI System Control Interface (TI-SCI protocol).
+
+  This reset controller node uses the TI SCI protocol to perform the reset
+  management of various hardware modules present on the SoC. Must be a child
+  node of the associated TI-SCI system controller node.
+
+properties:
+  $nodename:
+    pattern: "^reset-controller$"
+
+  compatible:
+    const: ti,sci-reset
+
+  "#reset-cells":
+    const: 2
+    description:
+      The two cells represent values that the TI-SCI controller defines.
+
+      The first cell should contain the device ID.
+
+      The second cell should contain the reset mask corresponding to the device
+      used by system controller.
+
+      Please see  http://processors.wiki.ti.com/index.php/TISCI for
+      protocol documentation for the values to be used for different devices.
+
+
+additionalProperties: false
+
+examples:
+  - |
+    k3_reset: reset-controller {
+        compatible = "ti,sci-reset";
+        #reset-cells = <2>;
+    };
-- 
2.31.0


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

* [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk to json schema
  2021-04-16  6:37 [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Nishanth Menon
  2021-04-16  6:37 ` [PATCH 1/4] dt-bindings: reset: Convert ti,sci-reset to json schema Nishanth Menon
@ 2021-04-16  6:37 ` Nishanth Menon
  2021-04-16 23:55   ` Stephen Boyd
  2021-04-16  6:37 ` [PATCH 3/4] dt-bindings: soc: ti: Convert ti,sci-pm-domain " Nishanth Menon
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 17+ messages in thread
From: Nishanth Menon @ 2021-04-16  6:37 UTC (permalink / raw)
  To: Philipp Zabel, Stephen Boyd, Michael Turquette, Rob Herring,
	Santosh Shilimkar, Tero Kristo, Nishanth Menon
  Cc: linux-clk, linux-kernel, devicetree, linux-arm-kernel

Convert the ti,sci-clk to json schema for better checks and documentation.

Differences being:
 - Drop consumer example as they are documented in the corresponding
   bindings themselves.
 - Standardize the node name as clock-controller rather than clocks as
   it is more appropriate.
 - Drop phandle description for clock-cells as it is redundant.

NOTE: we do have false positive checkpatch warning with this patch:
"DT binding docs and includes should be a separate patch"

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 .../devicetree/bindings/clock/ti,sci-clk.txt  | 36 -------------
 .../devicetree/bindings/clock/ti,sci-clk.yaml | 52 +++++++++++++++++++
 2 files changed, 52 insertions(+), 36 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.txt
 create mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.yaml

diff --git a/Documentation/devicetree/bindings/clock/ti,sci-clk.txt b/Documentation/devicetree/bindings/clock/ti,sci-clk.txt
deleted file mode 100644
index 4e59dc6b1778..000000000000
--- a/Documentation/devicetree/bindings/clock/ti,sci-clk.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-Texas Instruments TI-SCI Clocks
-===============================
-
-All clocks on Texas Instruments' SoCs that contain a System Controller,
-are only controlled by this entity. Communication between a host processor
-running an OS and the System Controller happens through a protocol known
-as TI-SCI[1]. This clock implementation plugs into the common clock
-framework and makes use of the TI-SCI protocol on clock API requests.
-
-[1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
-
-Required properties:
--------------------
-- compatible: Must be "ti,k2g-sci-clk"
-- #clock-cells: Shall be 2.
-  In clock consumers, this cell represents the device ID and clock ID
-  exposed by the PM firmware. The list of valid values for the device IDs
-  and clocks IDs for 66AK2G SoC are documented at
-  http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data
-
-Examples:
---------
-
-pmmc: pmmc {
-	compatible = "ti,k2g-sci";
-
-	k2g_clks: clocks {
-		compatible = "ti,k2g-sci-clk";
-		#clock-cells = <2>;
-	};
-};
-
-uart0: serial@2530c00 {
-	compatible = "ns16550a";
-	clocks = <&k2g_clks 0x2c 0>;
-};
diff --git a/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
new file mode 100644
index 000000000000..72633651f0c7
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/ti,sci-clk.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI-SCI clock controller node bindings
+
+maintainers:
+  - Nishanth Menon <nm@ti.com>
+
+allOf:
+  - $ref: /schemas/clock/clock.yaml#
+
+description: |
+  Some TI SoCs contain a system controller (like the Power Management Micro
+  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
+  the state of the various hardware modules present on the SoC. Communication
+  between the host processor running an OS and the system controller happens
+  through a protocol called TI System Control Interface (TI-SCI protocol).
+
+  This clock controller node uses the TI SCI protocol to perform various clock
+  management of various hardware modules (devices) present on the SoC. This
+  node must be a child node of the associated TI-SCI system controller node.
+
+properties:
+  $nodename:
+    pattern: "^clock-controller$"
+
+  compatible:
+    const: ti,k2g-sci-clk
+
+  "#clock-cells":
+    const: 2
+    description:
+      The two cells represent values that the TI-SCI controller defines.
+
+      The first cell should contain the device ID.
+
+      The second cell should contain the clock ID.
+
+      Please see  http://processors.wiki.ti.com/index.php/TISCI for
+      protocol documentation for the values to be used for different devices.
+
+additionalProperties: false
+
+examples:
+  - |
+    k3_clks: clock-controller {
+        compatible = "ti,k2g-sci-clk";
+        #clock-cells = <2>;
+    };
-- 
2.31.0


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

* [PATCH 3/4] dt-bindings: soc: ti: Convert ti,sci-pm-domain to json schema
  2021-04-16  6:37 [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Nishanth Menon
  2021-04-16  6:37 ` [PATCH 1/4] dt-bindings: reset: Convert ti,sci-reset to json schema Nishanth Menon
  2021-04-16  6:37 ` [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk " Nishanth Menon
@ 2021-04-16  6:37 ` Nishanth Menon
  2021-04-21 22:36   ` [PATCH 3/4] dt-bindings: soc: ti: Convert ti, sci-pm-domain " Rob Herring
  2021-04-16  6:37 ` [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci " Nishanth Menon
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 17+ messages in thread
From: Nishanth Menon @ 2021-04-16  6:37 UTC (permalink / raw)
  To: Philipp Zabel, Stephen Boyd, Michael Turquette, Rob Herring,
	Santosh Shilimkar, Tero Kristo, Nishanth Menon
  Cc: linux-clk, linux-kernel, devicetree, linux-arm-kernel

Convert the ti,sci-pm-domain to json schema for better checks and
documentation.

Differences being:
 - Drop consumer example as they are documented in the corresponding
   bindings themselves.
 - Drop phandle description for reset consumer or cell definition as it
   is redundant.

NOTE: we do have false positive checkpatch warning with this patch:
"DT binding docs and includes should be a separate patch"

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 .../bindings/soc/ti/sci-pm-domain.txt         | 65 -------------------
 .../bindings/soc/ti/sci-pm-domain.yaml        | 59 +++++++++++++++++
 2 files changed, 59 insertions(+), 65 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
 create mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml

diff --git a/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt b/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
deleted file mode 100644
index 6217e64309de..000000000000
--- a/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-Texas Instruments TI-SCI Generic Power Domain
----------------------------------------------
-
-Some TI SoCs contain a system controller (like the PMMC, etc...) that is
-responsible for controlling the state of the IPs that are present.
-Communication between the host processor running an OS and the system
-controller happens through a protocol known as TI-SCI [1].
-
-[1] Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
-
-PM Domain Node
-==============
-The PM domain node represents the global PM domain managed by the PMMC, which
-in this case is the implementation as documented by the generic PM domain
-bindings in Documentation/devicetree/bindings/power/power-domain.yaml.  Because
-this relies on the TI SCI protocol to communicate with the PMMC it must be a
-child of the pmmc node.
-
-Required Properties:
---------------------
-- compatible: should be "ti,sci-pm-domain"
-- #power-domain-cells: Can be one of the following:
-			1: Containing the device id of each node
-			2: First entry should be device id
-			   Second entry should be one of the floowing:
-			   TI_SCI_PD_EXCLUSIVE: To allow device to be
-						exclusively controlled by
-						the requesting hosts.
-			   TI_SCI_PD_SHARED: To allow device to be shared
-					     by multiple hosts.
-
-Example (K2G):
--------------
-	pmmc: pmmc {
-		compatible = "ti,k2g-sci";
-		...
-
-		k2g_pds: power-controller {
-			compatible = "ti,sci-pm-domain";
-			#power-domain-cells = <1>;
-		};
-	};
-
-PM Domain Consumers
-===================
-Hardware blocks belonging to a PM domain should contain a "power-domains"
-property that is a phandle pointing to the corresponding PM domain node
-along with an index representing the device id to be passed to the PMMC
-for device control.
-
-Required Properties:
---------------------
-- power-domains: phandle pointing to the corresponding PM domain node
-		 and an ID representing the device.
-
-See http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list
-of valid identifiers for k2g.
-
-Example (K2G):
---------------------
-	uart0: serial@2530c00 {
-		compatible = "ns16550a";
-		...
-		power-domains = <&k2g_pds 0x002c>;
-	};
diff --git a/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml b/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
new file mode 100644
index 000000000000..9e6cb4ee9755
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/ti/sci-pm-domain.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI-SCI generic power domain node bindings
+
+maintainers:
+  - Nishanth Menon <nm@ti.com>
+
+allOf:
+  - $ref: /schemas/power/power-domain.yaml#
+
+description: |
+  Some TI SoCs contain a system controller (like the Power Management Micro
+  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
+  the state of the various hardware modules present on the SoC. Communication
+  between the host processor running an OS and the system controller happens
+  through a protocol called TI System Control Interface (TI-SCI protocol).
+
+  This PM domain node represents the global PM domain managed by the TI-SCI
+  controller. Since this relies on the TI SCI protocol to communicate with
+  the TI-SCI controller, it must be a child of the TI-SCI controller node.
+
+properties:
+  compatible:
+    const: ti,sci-pm-domain
+
+  "#power-domain-cells":
+    enum: [1, 2]
+    description:
+      The two cells represent values that the TI-SCI controller defines.
+
+      The first cell should contain the device ID.
+
+      The second cell, if cell-value is 2, should be one of the following
+      TI_SCI_PD_EXCLUSIVE - Allows the device to be exclusively controlled
+      or
+      TI_SCI_PD_SHARED - Allows the device to be shared by multiple hosts.
+      Please refer to dt-bindings/soc/ti,sci_pm_domain.h for the definitions.
+
+      Please see  http://processors.wiki.ti.com/index.php/TISCI for
+      protocol documentation for the values to be used for different devices.
+
+additionalProperties: false
+
+examples:
+  - |
+    k2g_pds: power-controller {
+        compatible = "ti,sci-pm-domain";
+        #power-domain-cells = <1>;
+    };
+
+  - |
+    k3_pds: power-controller {
+        compatible = "ti,sci-pm-domain";
+        #power-domain-cells = <2>;
+    };
-- 
2.31.0


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

* [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci to json schema
  2021-04-16  6:37 [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Nishanth Menon
                   ` (2 preceding siblings ...)
  2021-04-16  6:37 ` [PATCH 3/4] dt-bindings: soc: ti: Convert ti,sci-pm-domain " Nishanth Menon
@ 2021-04-16  6:37 ` Nishanth Menon
  2021-04-21 22:40   ` Rob Herring
  2021-04-16 10:37 ` [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Tero Kristo
  2021-04-21 22:12 ` Rob Herring
  5 siblings, 1 reply; 17+ messages in thread
From: Nishanth Menon @ 2021-04-16  6:37 UTC (permalink / raw)
  To: Philipp Zabel, Stephen Boyd, Michael Turquette, Rob Herring,
	Santosh Shilimkar, Tero Kristo, Nishanth Menon
  Cc: linux-clk, linux-kernel, devicetree, linux-arm-kernel

Convert the ti,sci to json schema for better checks and documentation.

NOTE: This change does introduce a stricter naming convention for
TI-SCI controller nodes.

NOTE: we do have false positive checkpatch warning with this patch:
"DT binding docs and includes should be a separate patch"

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 .../bindings/arm/keystone/ti,sci.txt          |  86 ------------
 .../bindings/arm/keystone/ti,sci.yaml         | 129 ++++++++++++++++++
 2 files changed, 129 insertions(+), 86 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
 create mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml

diff --git a/Documentation/devicetree/bindings/arm/keystone/ti,sci.txt b/Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
deleted file mode 100644
index 6f0cd31c1520..000000000000
--- a/Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
+++ /dev/null
@@ -1,86 +0,0 @@
-Texas Instruments System Control Interface (TI-SCI) Message Protocol
---------------------------------------------------------------------
-
-Texas Instrument's processors including those belonging to Keystone generation
-of processors have separate hardware entity which is now responsible for the
-management of the System on Chip (SoC) system. These include various system
-level functions as well.
-
-An example of such an SoC is K2G, which contains the system control hardware
-block called Power Management Micro Controller (PMMC). This hardware block is
-initialized early into boot process and provides services to Operating Systems
-on multiple processors including ones running Linux.
-
-See http://processors.wiki.ti.com/index.php/TISCI for protocol definition.
-
-TI-SCI controller Device Node:
-=============================
-
-The TI-SCI node describes the Texas Instrument's System Controller entity node.
-This parent node may optionally have additional children nodes which describe
-specific functionality such as clocks, power domain, reset or additional
-functionality as may be required for the SoC. This hierarchy also describes the
-relationship between the TI-SCI parent node to the child node.
-
-Required properties:
--------------------
-- compatible:	should be "ti,k2g-sci" for TI 66AK2G SoC
-		should be "ti,am654-sci" for for TI AM654 SoC
-- mbox-names:
-	"rx" - Mailbox corresponding to receive path
-	"tx" - Mailbox corresponding to transmit path
-
-- mboxes: Mailboxes corresponding to the mbox-names. Each value of the mboxes
-	  property should contain a phandle to the mailbox controller device
-	  node and an args specifier that will be the phandle to the intended
-	  sub-mailbox child node to be used for communication.
-
-See Documentation/devicetree/bindings/mailbox/mailbox.txt for more details
-about the generic mailbox controller and client driver bindings. Also see
-Documentation/devicetree/bindings/mailbox/ti,message-manager.txt for typical
-controller that is used to communicate with this System controllers.
-
-Optional Properties:
--------------------
-- reg-names:
-	debug_messages - Map the Debug message region
-- reg:  register space corresponding to the debug_messages
-- ti,system-reboot-controller: If system reboot can be triggered by SoC reboot
-- ti,host-id: Integer value corresponding to the host ID assigned by Firmware
-	for identification of host processing entities such as virtual
-	machines
-
-Example (K2G):
--------------
-	pmmc: pmmc {
-		compatible = "ti,k2g-sci";
-		ti,host-id = <2>;
-		mbox-names = "rx", "tx";
-		mboxes= <&msgmgr &msgmgr_proxy_pmmc_rx>,
-			<&msgmgr &msgmgr_proxy_pmmc_tx>;
-		reg-names = "debug_messages";
-		reg = <0x02921800 0x800>;
-	};
-
-
-TI-SCI Client Device Node:
-=========================
-
-Client nodes are maintained as children of the relevant TI-SCI device node.
-
-Example (K2G):
--------------
-	pmmc: pmmc {
-		compatible = "ti,k2g-sci";
-		...
-
-		my_clk_node: clk_node {
-			...
-			...
-		};
-
-		my_pd_node: pd_node {
-			...
-			...
-		};
-	};
diff --git a/Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml b/Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
new file mode 100644
index 000000000000..3e835ad84dc2
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
@@ -0,0 +1,129 @@
+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/keystone/ti,sci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI-SCI controller device node bindings
+
+maintainers:
+  - Nishanth Menon <nm@ti.com>
+
+allOf:
+  - $ref: /schemas/mbox/mbox-consumer.yaml#
+
+description: |
+  Texas Instrument's processors including those belonging to Keystone generation
+  of processors have separate hardware entity which is now responsible for the
+  management of the System on Chip (SoC) system. These include various system
+  level functions as well.
+
+  An example of such an SoC is K2G, which contains the system control hardware
+  block called Power Management Micro Controller (PMMC). This hardware block is
+  initialized early into boot process and provides services to Operating Systems
+  on multiple processors including ones running Linux.
+
+  See http://processors.wiki.ti.com/index.php/TISCI for protocol definition.
+
+  The TI-SCI node describes the Texas Instrument's System Controller entity node.
+  This parent node may optionally have additional children nodes which describe
+  specific functionality such as clocks, power domain, reset or additional
+  functionality as may be required for the SoC. This hierarchy also describes the
+  relationship between the TI-SCI parent node to the child node.
+
+properties:
+  $nodename:
+    pattern: "^system-controller@[0-9a-f]+$"
+
+  compatible:
+    oneOf:
+      - description: System controller on TI 66AK2G SoC and other K3 SoCs
+        items:
+          - const: ti,k2g-sci
+      - description: System controller on TI AM654 SoC
+        items:
+          - const: ti,am654-sci
+
+  reg-names:
+    description: |
+      Specifies the debug messages memory mapped region that is optionally
+      made available from TI-SCI controller.
+      - const: debug_messages
+
+  reg:
+    minItems: 1
+
+  mbox-names:
+    description: |
+      Specifies the mailboxes used to communicate with TI-SCI Controller
+      made available from TI-SCI controller.
+    items:
+      - const: rx
+      - const: tx
+
+  mboxes:
+    minItems: 2
+
+  ti,system-reboot-controller:
+    description: Determines If system reboot can be triggered by SoC reboot
+    type: boolean
+
+  ti,host-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Value corresponding to the host ID assigned by Firmware
+      for identification of host processing entities such as virtual machines.
+
+required:
+  - compatible
+  - mbox-names
+  - mboxes
+
+additionalProperties: false
+
+patternProperties:
+  # All other properties should be a power, clock or reset controller
+  "^(power-controller|clock-controller|reset-controller)$":
+    type: object
+    oneOf:
+      - $ref: /schemas/soc/ti/sci-pm-domain.yaml#
+      - $ref: /schemas/clock/ti,sci-clk.yaml#
+      - $ref: /schemas/reset/ti,sci-reset.yaml#
+
+examples:
+  - |
+    pmmc: system-controller@2921800 {
+      compatible = "ti,k2g-sci";
+      ti,system-reboot-controller;
+      mbox-names = "rx", "tx";
+      mboxes= <&msgmgr 5 2>,
+              <&msgmgr 0 0>;
+      reg-names = "debug_messages";
+      reg = <0x02921800 0x800>;
+    };
+
+  - |
+    dmsc: system-controller@44083000 {
+      compatible = "ti,k2g-sci";
+      ti,host-id = <12>;
+      mbox-names = "rx", "tx";
+      mboxes= <&secure_proxy_main 11>,
+              <&secure_proxy_main 13>;
+      reg-names = "debug_messages";
+      reg = <0x44083000 0x1000>;
+
+      k3_pds: power-controller {
+        compatible = "ti,sci-pm-domain";
+        #power-domain-cells = <2>;
+      };
+
+      k3_clks: clock-controller {
+        compatible = "ti,k2g-sci-clk";
+        #clock-cells = <2>;
+      };
+
+      k3_reset: reset-controller {
+        compatible = "ti,sci-reset";
+        #reset-cells = <2>;
+      };
+    };
-- 
2.31.0


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

* Re: [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format
  2021-04-16  6:37 [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Nishanth Menon
                   ` (3 preceding siblings ...)
  2021-04-16  6:37 ` [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci " Nishanth Menon
@ 2021-04-16 10:37 ` Tero Kristo
  2021-04-21 22:12 ` Rob Herring
  5 siblings, 0 replies; 17+ messages in thread
From: Tero Kristo @ 2021-04-16 10:37 UTC (permalink / raw)
  To: Nishanth Menon, Philipp Zabel, Stephen Boyd, Michael Turquette,
	Rob Herring, Santosh Shilimkar
  Cc: linux-clk, linux-kernel, devicetree, linux-arm-kernel

On 16/04/2021 09:37, Nishanth Menon wrote:
> Hi,
> 
> I understand that the following series belong to various maintainers,
> but, it is a bit better reviewed as a single series for
> cohesiveness.
> 
> There are also dts fixups that this series exposes, which is good, but
> I chose to hold them back for now pending binding review at least. The
> complete series is available in [1] if folks are curious.
> 
> Nishanth Menon (4):
>    dt-bindings: reset: Convert ti,sci-reset to json schema
>    dt-bindings: clock: Convert ti,sci-clk to json schema
>    dt-bindings: soc: ti: Convert ti,sci-pm-domain to json schema
>    dt-bindings: arm: keystone: Convert ti,sci to json schema

For the whole series:

Reviewed-by: Tero Kristo <kristo@kernel.org>

> 
>   .../bindings/arm/keystone/ti,sci.txt          |  86 ------------
>   .../bindings/arm/keystone/ti,sci.yaml         | 129 ++++++++++++++++++
>   .../devicetree/bindings/clock/ti,sci-clk.txt  |  36 -----
>   .../devicetree/bindings/clock/ti,sci-clk.yaml |  52 +++++++
>   .../bindings/reset/ti,sci-reset.txt           |  62 ---------
>   .../bindings/reset/ti,sci-reset.yaml          |  51 +++++++
>   .../bindings/soc/ti/sci-pm-domain.txt         |  65 ---------
>   .../bindings/soc/ti/sci-pm-domain.yaml        |  59 ++++++++
>   8 files changed, 291 insertions(+), 249 deletions(-)
>   delete mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
>   create mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
>   delete mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>   create mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
>   delete mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.txt
>   create mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
>   delete mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
>   create mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
> 
> [1] https://github.com/nmenon/linux-2.6-playground/commits/yaml/tisci
> 
> Regards,
> Nishanth Menon
> 


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

* Re: [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk to json schema
  2021-04-16  6:37 ` [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk " Nishanth Menon
@ 2021-04-16 23:55   ` Stephen Boyd
  2021-04-17 12:51     ` Nishanth Menon
  0 siblings, 1 reply; 17+ messages in thread
From: Stephen Boyd @ 2021-04-16 23:55 UTC (permalink / raw)
  To: Michael Turquette, Nishanth Menon, Philipp Zabel, Rob Herring,
	Santosh Shilimkar, Tero Kristo
  Cc: linux-clk, linux-kernel, devicetree, linux-arm-kernel

Quoting Nishanth Menon (2021-04-15 23:37:19)
> diff --git a/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> new file mode 100644
> index 000000000000..72633651f0c7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> @@ -0,0 +1,52 @@
> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/ti,sci-clk.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TI-SCI clock controller node bindings
> +
> +maintainers:
> +  - Nishanth Menon <nm@ti.com>
> +
> +allOf:
> +  - $ref: /schemas/clock/clock.yaml#

Is this needed?

> +
> +description: |
> +  Some TI SoCs contain a system controller (like the Power Management Micro
> +  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
> +  the state of the various hardware modules present on the SoC. Communication
> +  between the host processor running an OS and the system controller happens
> +  through a protocol called TI System Control Interface (TI-SCI protocol).
> +
> +  This clock controller node uses the TI SCI protocol to perform various clock
> +  management of various hardware modules (devices) present on the SoC. This
> +  node must be a child node of the associated TI-SCI system controller node.
> +
> +properties:
> +  $nodename:
> +    pattern: "^clock-controller$"

Is this nodename pattern check required?

> +
> +  compatible:
> +    const: ti,k2g-sci-clk

I thought most things keyed off the compatible string.

> +
> +  "#clock-cells":
> +    const: 2
> +    description:
> +      The two cells represent values that the TI-SCI controller defines.
> +
> +      The first cell should contain the device ID.
> +
> +      The second cell should contain the clock ID.
> +
> +      Please see  http://processors.wiki.ti.com/index.php/TISCI for
> +      protocol documentation for the values to be used for different devices.
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    k3_clks: clock-controller {
> +        compatible = "ti,k2g-sci-clk";
> +        #clock-cells = <2>;
> +    };

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

* Re: [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk to json schema
  2021-04-16 23:55   ` Stephen Boyd
@ 2021-04-17 12:51     ` Nishanth Menon
  2021-04-19 13:35       ` Nishanth Menon
  2021-04-21 22:31       ` Rob Herring
  0 siblings, 2 replies; 17+ messages in thread
From: Nishanth Menon @ 2021-04-17 12:51 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: Michael Turquette, Philipp Zabel, Rob Herring, Santosh Shilimkar,
	Tero Kristo, linux-clk, linux-kernel, devicetree,
	linux-arm-kernel

On 16:55-20210416, Stephen Boyd wrote:
> Quoting Nishanth Menon (2021-04-15 23:37:19)
> > diff --git a/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> > new file mode 100644
> > index 000000000000..72633651f0c7
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> > @@ -0,0 +1,52 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/clock/ti,sci-clk.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: TI-SCI clock controller node bindings
> > +
> > +maintainers:
> > +  - Nishanth Menon <nm@ti.com>
> > +
> > +allOf:
> > +  - $ref: /schemas/clock/clock.yaml#
> 
> Is this needed?

https://github.com/devicetree-org/dt-schema/blob/master/schemas/clock/clock.yaml
This standardizes provider properties like '#clock-cells' etc, allowing
you to add more stricter checks or controls in the future if necessary.

while:

https://github.com/devicetree-org/dt-schema/blob/master/meta-schemas/clocks.yaml
is more a consumer node description.

Should I have picked a different yaml as base for a standard clock-controller
base?

> 
> > +
> > +description: |
> > +  Some TI SoCs contain a system controller (like the Power Management Micro
> > +  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
> > +  the state of the various hardware modules present on the SoC. Communication
> > +  between the host processor running an OS and the system controller happens
> > +  through a protocol called TI System Control Interface (TI-SCI protocol).
> > +
> > +  This clock controller node uses the TI SCI protocol to perform various clock
> > +  management of various hardware modules (devices) present on the SoC. This
> > +  node must be a child node of the associated TI-SCI system controller node.
> > +
> > +properties:
> > +  $nodename:
> > +    pattern: "^clock-controller$"
> 
> Is this nodename pattern check required?

I'd like the definition on rails and not subject to interpretation, and
restrict the kind of subnodes under TISCI controller node.

> 
> > +
> > +  compatible:
> > +    const: ti,k2g-sci-clk
> 
> I thought most things keyed off the compatible string.

Yes, they are. I am not sure I understand your question here. Did you
mean to indicate that having $nodename and compatible both are
redundant?

Redundancy was'nt the intent of this schema definition, rather, I'd like
to make sure that it is not upto interpretation or debate as to what the
node name should be: I believe clock-controller is the correct nodename
(without @0x... since this does'nt use reg property) instead of using
clocks, tisci-clock as the node names.


Do you suggest something  different?

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D)/Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

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

* Re: [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk to json schema
  2021-04-17 12:51     ` Nishanth Menon
@ 2021-04-19 13:35       ` Nishanth Menon
  2021-04-21 22:31       ` Rob Herring
  1 sibling, 0 replies; 17+ messages in thread
From: Nishanth Menon @ 2021-04-19 13:35 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: Michael Turquette, Philipp Zabel, Rob Herring, Santosh Shilimkar,
	Tero Kristo, linux-clk, linux-kernel, devicetree,
	linux-arm-kernel

Stephen,

On 07:51-20210417, Nishanth Menon wrote:
> On 16:55-20210416, Stephen Boyd wrote:
> > Quoting Nishanth Menon (2021-04-15 23:37:19)
> > > diff --git a/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> > > new file mode 100644
> > > index 000000000000..72633651f0c7
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> > > @@ -0,0 +1,52 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/clock/ti,sci-clk.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: TI-SCI clock controller node bindings
> > > +
> > > +maintainers:
> > > +  - Nishanth Menon <nm@ti.com>
> > > +
> > > +allOf:
> > > +  - $ref: /schemas/clock/clock.yaml#
> > 
> > Is this needed?
> 
> https://github.com/devicetree-org/dt-schema/blob/master/schemas/clock/clock.yaml
> This standardizes provider properties like '#clock-cells' etc, allowing
> you to add more stricter checks or controls in the future if necessary.
> 
> while:
> 
> https://github.com/devicetree-org/dt-schema/blob/master/meta-schemas/clocks.yaml
> is more a consumer node description.
> 
> Should I have picked a different yaml as base for a standard clock-controller
> base?
> 

Thinking again, I think your comment was to drop the clock.yaml
inclusion, and, as a result this schema can become more stringent..

Could you clarify?


> > 
> > > +
> > > +description: |
> > > +  Some TI SoCs contain a system controller (like the Power Management Micro
> > > +  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
> > > +  the state of the various hardware modules present on the SoC. Communication
> > > +  between the host processor running an OS and the system controller happens
> > > +  through a protocol called TI System Control Interface (TI-SCI protocol).
> > > +
> > > +  This clock controller node uses the TI SCI protocol to perform various clock
> > > +  management of various hardware modules (devices) present on the SoC. This
> > > +  node must be a child node of the associated TI-SCI system controller node.
> > > +
> > > +properties:
> > > +  $nodename:
> > > +    pattern: "^clock-controller$"
> > 
> > Is this nodename pattern check required?
> 
> I'd like the definition on rails and not subject to interpretation, and
> restrict the kind of subnodes under TISCI controller node.
> 
> > 
> > > +
> > > +  compatible:
> > > +    const: ti,k2g-sci-clk
> > 
> > I thought most things keyed off the compatible string.
> 
> Yes, they are. I am not sure I understand your question here. Did you
> mean to indicate that having $nodename and compatible both are
> redundant?
> 
> Redundancy was'nt the intent of this schema definition, rather, I'd like
> to make sure that it is not upto interpretation or debate as to what the
> node name should be: I believe clock-controller is the correct nodename
> (without @0x... since this does'nt use reg property) instead of using
> clocks, tisci-clock as the node names.
> 
> 
> Do you suggest something  different?
> 
> -- 
> Regards,
> Nishanth Menon
> Key (0xDDB5849D1736249D)/Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

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

* Re: [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format
  2021-04-16  6:37 [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Nishanth Menon
                   ` (4 preceding siblings ...)
  2021-04-16 10:37 ` [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Tero Kristo
@ 2021-04-21 22:12 ` Rob Herring
  5 siblings, 0 replies; 17+ messages in thread
From: Rob Herring @ 2021-04-21 22:12 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Philipp Zabel, Stephen Boyd, Michael Turquette,
	Santosh Shilimkar, Tero Kristo, linux-clk, linux-kernel,
	devicetree, linux-arm-kernel

On Fri, Apr 16, 2021 at 01:37:17AM -0500, Nishanth Menon wrote:
> Hi,
> 
> I understand that the following series belong to various maintainers,
> but, it is a bit better reviewed as a single series for
> cohesiveness.

They need to go in together as patch 4 depends on the others.

> 
> There are also dts fixups that this series exposes, which is good, but
> I chose to hold them back for now pending binding review at least. The
> complete series is available in [1] if folks are curious.
> 
> Nishanth Menon (4):
>   dt-bindings: reset: Convert ti,sci-reset to json schema
>   dt-bindings: clock: Convert ti,sci-clk to json schema
>   dt-bindings: soc: ti: Convert ti,sci-pm-domain to json schema
>   dt-bindings: arm: keystone: Convert ti,sci to json schema
> 
>  .../bindings/arm/keystone/ti,sci.txt          |  86 ------------
>  .../bindings/arm/keystone/ti,sci.yaml         | 129 ++++++++++++++++++
>  .../devicetree/bindings/clock/ti,sci-clk.txt  |  36 -----
>  .../devicetree/bindings/clock/ti,sci-clk.yaml |  52 +++++++
>  .../bindings/reset/ti,sci-reset.txt           |  62 ---------
>  .../bindings/reset/ti,sci-reset.yaml          |  51 +++++++
>  .../bindings/soc/ti/sci-pm-domain.txt         |  65 ---------
>  .../bindings/soc/ti/sci-pm-domain.yaml        |  59 ++++++++
>  8 files changed, 291 insertions(+), 249 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
>  create mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
>  delete mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.txt
>  create mode 100644 Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
>  delete mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.txt
>  create mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.yaml
>  delete mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
> 
> [1] https://github.com/nmenon/linux-2.6-playground/commits/yaml/tisci
> 
> Regards,
> Nishanth Menon
> -- 
> 2.31.0
> 

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

* Re: [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk to json schema
  2021-04-17 12:51     ` Nishanth Menon
  2021-04-19 13:35       ` Nishanth Menon
@ 2021-04-21 22:31       ` Rob Herring
  2021-04-22 14:09         ` Nishanth Menon
  1 sibling, 1 reply; 17+ messages in thread
From: Rob Herring @ 2021-04-21 22:31 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Stephen Boyd, Michael Turquette, Philipp Zabel,
	Santosh Shilimkar, Tero Kristo, linux-clk, linux-kernel,
	devicetree, linux-arm-kernel

On Sat, Apr 17, 2021 at 07:51:27AM -0500, Nishanth Menon wrote:
> On 16:55-20210416, Stephen Boyd wrote:
> > Quoting Nishanth Menon (2021-04-15 23:37:19)
> > > diff --git a/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> > > new file mode 100644
> > > index 000000000000..72633651f0c7
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/clock/ti,sci-clk.yaml
> > > @@ -0,0 +1,52 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/clock/ti,sci-clk.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: TI-SCI clock controller node bindings
> > > +
> > > +maintainers:
> > > +  - Nishanth Menon <nm@ti.com>
> > > +
> > > +allOf:
> > > +  - $ref: /schemas/clock/clock.yaml#
> > 
> > Is this needed?

No. It is already applied to every node.

> https://github.com/devicetree-org/dt-schema/blob/master/schemas/clock/clock.yaml
> This standardizes provider properties like '#clock-cells' etc, allowing
> you to add more stricter checks or controls in the future if necessary.
> 
> while:
> 
> https://github.com/devicetree-org/dt-schema/blob/master/meta-schemas/clocks.yaml
> is more a consumer node description.

No, the meta-schema is what checks the schemas just as the schemas check 
dts files.

> Should I have picked a different yaml as base for a standard clock-controller
> base?
> 
> > 
> > > +
> > > +description: |
> > > +  Some TI SoCs contain a system controller (like the Power Management Micro
> > > +  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
> > > +  the state of the various hardware modules present on the SoC. Communication
> > > +  between the host processor running an OS and the system controller happens
> > > +  through a protocol called TI System Control Interface (TI-SCI protocol).
> > > +
> > > +  This clock controller node uses the TI SCI protocol to perform various clock
> > > +  management of various hardware modules (devices) present on the SoC. This
> > > +  node must be a child node of the associated TI-SCI system controller node.
> > > +
> > > +properties:
> > > +  $nodename:
> > > +    pattern: "^clock-controller$"
> > 
> > Is this nodename pattern check required?
> 
> I'd like the definition on rails and not subject to interpretation, and
> restrict the kind of subnodes under TISCI controller node.

If this schema was standalone and not defined as part of another, then 
yes it would be required. In your case, you can enforce the node name 
from the parent schema. For consistency though, it would be better to 
just always require $nodename. 

Actually, this schema will be applied twice. On it's own matching the 
compatible string and by the parent schema. You can prevent that with 
'select: false'. I don't mind the double validation as if the parent 
node had a compatible typo you'd get zero validation.

> 
> > 
> > > +
> > > +  compatible:
> > > +    const: ti,k2g-sci-clk
> > 
> > I thought most things keyed off the compatible string.
> 
> Yes, they are. I am not sure I understand your question here. Did you
> mean to indicate that having $nodename and compatible both are
> redundant?
> 
> Redundancy was'nt the intent of this schema definition, rather, I'd like
> to make sure that it is not upto interpretation or debate as to what the
> node name should be: I believe clock-controller is the correct nodename
> (without @0x... since this does'nt use reg property) instead of using
> clocks, tisci-clock as the node names.
> 
> 
> Do you suggest something  different?
> 
> -- 
> Regards,
> Nishanth Menon
> Key (0xDDB5849D1736249D)/Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

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

* Re: [PATCH 1/4] dt-bindings: reset: Convert ti,sci-reset to json schema
  2021-04-16  6:37 ` [PATCH 1/4] dt-bindings: reset: Convert ti,sci-reset to json schema Nishanth Menon
@ 2021-04-21 22:32   ` Rob Herring
  0 siblings, 0 replies; 17+ messages in thread
From: Rob Herring @ 2021-04-21 22:32 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Philipp Zabel, Stephen Boyd, Michael Turquette,
	Santosh Shilimkar, Tero Kristo, linux-clk, linux-kernel,
	devicetree, linux-arm-kernel

On Fri, Apr 16, 2021 at 01:37:18AM -0500, Nishanth Menon wrote:
> Convert the ti,sci-reset to json schema for better checks and documentation.
> 
> Differences being:
>  - Drop consumer example as they are documented in the corresponding
>    bindings themselves.
>  - Drop phandle description for reset consumer or cell definition as it is
>    redundant.
> 
> NOTE: we do have false positive checkpatch warning with this patch:
> "DT binding docs and includes should be a separate patch"
> 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>  .../bindings/reset/ti,sci-reset.txt           | 62 -------------------
>  .../bindings/reset/ti,sci-reset.yaml          | 51 +++++++++++++++
>  2 files changed, 51 insertions(+), 62 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.txt
>  create mode 100644 Documentation/devicetree/bindings/reset/ti,sci-reset.yaml

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


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

* Re: [PATCH 3/4] dt-bindings: soc: ti: Convert ti, sci-pm-domain to json schema
  2021-04-16  6:37 ` [PATCH 3/4] dt-bindings: soc: ti: Convert ti,sci-pm-domain " Nishanth Menon
@ 2021-04-21 22:36   ` Rob Herring
  0 siblings, 0 replies; 17+ messages in thread
From: Rob Herring @ 2021-04-21 22:36 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Santosh Shilimkar, Stephen Boyd, Tero Kristo, Philipp Zabel,
	Rob Herring, linux-kernel, linux-arm-kernel, devicetree,
	linux-clk, Michael Turquette

On Fri, 16 Apr 2021 01:37:20 -0500, Nishanth Menon wrote:
> Convert the ti,sci-pm-domain to json schema for better checks and
> documentation.
> 
> Differences being:
>  - Drop consumer example as they are documented in the corresponding
>    bindings themselves.
>  - Drop phandle description for reset consumer or cell definition as it
>    is redundant.
> 
> NOTE: we do have false positive checkpatch warning with this patch:
> "DT binding docs and includes should be a separate patch"
> 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>  .../bindings/soc/ti/sci-pm-domain.txt         | 65 -------------------
>  .../bindings/soc/ti/sci-pm-domain.yaml        | 59 +++++++++++++++++
>  2 files changed, 59 insertions(+), 65 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
> 

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

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

* Re: [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci to json schema
  2021-04-16  6:37 ` [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci " Nishanth Menon
@ 2021-04-21 22:40   ` Rob Herring
  2021-04-22 14:17     ` Nishanth Menon
  0 siblings, 1 reply; 17+ messages in thread
From: Rob Herring @ 2021-04-21 22:40 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Philipp Zabel, Stephen Boyd, Michael Turquette,
	Santosh Shilimkar, Tero Kristo, linux-clk, linux-kernel,
	devicetree, linux-arm-kernel

On Fri, Apr 16, 2021 at 01:37:21AM -0500, Nishanth Menon wrote:
> Convert the ti,sci to json schema for better checks and documentation.
> 
> NOTE: This change does introduce a stricter naming convention for
> TI-SCI controller nodes.
> 
> NOTE: we do have false positive checkpatch warning with this patch:
> "DT binding docs and includes should be a separate patch"
> 
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>  .../bindings/arm/keystone/ti,sci.txt          |  86 ------------
>  .../bindings/arm/keystone/ti,sci.yaml         | 129 ++++++++++++++++++
>  2 files changed, 129 insertions(+), 86 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
>  create mode 100644 Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
> 
> diff --git a/Documentation/devicetree/bindings/arm/keystone/ti,sci.txt b/Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
> deleted file mode 100644
> index 6f0cd31c1520..000000000000
> --- a/Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
> +++ /dev/null
> @@ -1,86 +0,0 @@
> -Texas Instruments System Control Interface (TI-SCI) Message Protocol
> ---------------------------------------------------------------------
> -
> -Texas Instrument's processors including those belonging to Keystone generation
> -of processors have separate hardware entity which is now responsible for the
> -management of the System on Chip (SoC) system. These include various system
> -level functions as well.
> -
> -An example of such an SoC is K2G, which contains the system control hardware
> -block called Power Management Micro Controller (PMMC). This hardware block is
> -initialized early into boot process and provides services to Operating Systems
> -on multiple processors including ones running Linux.
> -
> -See http://processors.wiki.ti.com/index.php/TISCI for protocol definition.
> -
> -TI-SCI controller Device Node:
> -=============================
> -
> -The TI-SCI node describes the Texas Instrument's System Controller entity node.
> -This parent node may optionally have additional children nodes which describe
> -specific functionality such as clocks, power domain, reset or additional
> -functionality as may be required for the SoC. This hierarchy also describes the
> -relationship between the TI-SCI parent node to the child node.
> -
> -Required properties:
> --------------------
> -- compatible:	should be "ti,k2g-sci" for TI 66AK2G SoC
> -		should be "ti,am654-sci" for for TI AM654 SoC
> -- mbox-names:
> -	"rx" - Mailbox corresponding to receive path
> -	"tx" - Mailbox corresponding to transmit path
> -
> -- mboxes: Mailboxes corresponding to the mbox-names. Each value of the mboxes
> -	  property should contain a phandle to the mailbox controller device
> -	  node and an args specifier that will be the phandle to the intended
> -	  sub-mailbox child node to be used for communication.
> -
> -See Documentation/devicetree/bindings/mailbox/mailbox.txt for more details
> -about the generic mailbox controller and client driver bindings. Also see
> -Documentation/devicetree/bindings/mailbox/ti,message-manager.txt for typical
> -controller that is used to communicate with this System controllers.
> -
> -Optional Properties:
> --------------------
> -- reg-names:
> -	debug_messages - Map the Debug message region
> -- reg:  register space corresponding to the debug_messages
> -- ti,system-reboot-controller: If system reboot can be triggered by SoC reboot
> -- ti,host-id: Integer value corresponding to the host ID assigned by Firmware
> -	for identification of host processing entities such as virtual
> -	machines
> -
> -Example (K2G):
> --------------
> -	pmmc: pmmc {
> -		compatible = "ti,k2g-sci";
> -		ti,host-id = <2>;
> -		mbox-names = "rx", "tx";
> -		mboxes= <&msgmgr &msgmgr_proxy_pmmc_rx>,
> -			<&msgmgr &msgmgr_proxy_pmmc_tx>;
> -		reg-names = "debug_messages";
> -		reg = <0x02921800 0x800>;
> -	};
> -
> -
> -TI-SCI Client Device Node:
> -=========================
> -
> -Client nodes are maintained as children of the relevant TI-SCI device node.
> -
> -Example (K2G):
> --------------
> -	pmmc: pmmc {
> -		compatible = "ti,k2g-sci";
> -		...
> -
> -		my_clk_node: clk_node {
> -			...
> -			...
> -		};
> -
> -		my_pd_node: pd_node {
> -			...
> -			...
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml b/Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
> new file mode 100644
> index 000000000000..3e835ad84dc2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
> @@ -0,0 +1,129 @@
> +# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/arm/keystone/ti,sci.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TI-SCI controller device node bindings
> +
> +maintainers:
> +  - Nishanth Menon <nm@ti.com>
> +
> +allOf:
> +  - $ref: /schemas/mbox/mbox-consumer.yaml#

Drop.

> +
> +description: |
> +  Texas Instrument's processors including those belonging to Keystone generation
> +  of processors have separate hardware entity which is now responsible for the
> +  management of the System on Chip (SoC) system. These include various system
> +  level functions as well.
> +
> +  An example of such an SoC is K2G, which contains the system control hardware
> +  block called Power Management Micro Controller (PMMC). This hardware block is
> +  initialized early into boot process and provides services to Operating Systems
> +  on multiple processors including ones running Linux.
> +
> +  See http://processors.wiki.ti.com/index.php/TISCI for protocol definition.
> +
> +  The TI-SCI node describes the Texas Instrument's System Controller entity node.
> +  This parent node may optionally have additional children nodes which describe
> +  specific functionality such as clocks, power domain, reset or additional
> +  functionality as may be required for the SoC. This hierarchy also describes the
> +  relationship between the TI-SCI parent node to the child node.
> +
> +properties:
> +  $nodename:
> +    pattern: "^system-controller@[0-9a-f]+$"
> +
> +  compatible:
> +    oneOf:
> +      - description: System controller on TI 66AK2G SoC and other K3 SoCs
> +        items:
> +          - const: ti,k2g-sci
> +      - description: System controller on TI AM654 SoC
> +        items:
> +          - const: ti,am654-sci
> +
> +  reg-names:
> +    description: |
> +      Specifies the debug messages memory mapped region that is optionally
> +      made available from TI-SCI controller.
> +      - const: debug_messages

Drop the '-' and fix the indent so it's an actual schema.

> +
> +  reg:
> +    minItems: 1
> +
> +  mbox-names:
> +    description: |
> +      Specifies the mailboxes used to communicate with TI-SCI Controller
> +      made available from TI-SCI controller.
> +    items:
> +      - const: rx
> +      - const: tx
> +
> +  mboxes:
> +    minItems: 2
> +
> +  ti,system-reboot-controller:
> +    description: Determines If system reboot can be triggered by SoC reboot
> +    type: boolean
> +
> +  ti,host-id:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      Value corresponding to the host ID assigned by Firmware
> +      for identification of host processing entities such as virtual machines.
> +
> +required:
> +  - compatible
> +  - mbox-names
> +  - mboxes
> +
> +additionalProperties: false
> +
> +patternProperties:
> +  # All other properties should be a power, clock or reset controller
> +  "^(power-controller|clock-controller|reset-controller)$":
> +    type: object
> +    oneOf:
> +      - $ref: /schemas/soc/ti/sci-pm-domain.yaml#
> +      - $ref: /schemas/clock/ti,sci-clk.yaml#
> +      - $ref: /schemas/reset/ti,sci-reset.yaml#

I'd prefer you separate these with a property for each node.

> +
> +examples:
> +  - |
> +    pmmc: system-controller@2921800 {
> +      compatible = "ti,k2g-sci";
> +      ti,system-reboot-controller;
> +      mbox-names = "rx", "tx";
> +      mboxes= <&msgmgr 5 2>,
> +              <&msgmgr 0 0>;
> +      reg-names = "debug_messages";
> +      reg = <0x02921800 0x800>;
> +    };
> +
> +  - |
> +    dmsc: system-controller@44083000 {
> +      compatible = "ti,k2g-sci";
> +      ti,host-id = <12>;
> +      mbox-names = "rx", "tx";
> +      mboxes= <&secure_proxy_main 11>,
> +              <&secure_proxy_main 13>;
> +      reg-names = "debug_messages";
> +      reg = <0x44083000 0x1000>;
> +
> +      k3_pds: power-controller {
> +        compatible = "ti,sci-pm-domain";
> +        #power-domain-cells = <2>;
> +      };
> +
> +      k3_clks: clock-controller {
> +        compatible = "ti,k2g-sci-clk";
> +        #clock-cells = <2>;
> +      };
> +
> +      k3_reset: reset-controller {
> +        compatible = "ti,sci-reset";
> +        #reset-cells = <2>;
> +      };
> +    };
> -- 
> 2.31.0
> 

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

* Re: [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk to json schema
  2021-04-21 22:31       ` Rob Herring
@ 2021-04-22 14:09         ` Nishanth Menon
  0 siblings, 0 replies; 17+ messages in thread
From: Nishanth Menon @ 2021-04-22 14:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: Stephen Boyd, Michael Turquette, Philipp Zabel,
	Santosh Shilimkar, Tero Kristo, linux-clk, linux-kernel,
	devicetree, linux-arm-kernel

On 17:31-20210421, Rob Herring wrote:
[...]

> > > > +allOf:
> > > > +  - $ref: /schemas/clock/clock.yaml#
> > > 
> > > Is this needed?
> 
> No. It is already applied to every node.
> 
> > https://github.com/devicetree-org/dt-schema/blob/master/schemas/clock/clock.yaml
> > This standardizes provider properties like '#clock-cells' etc, allowing
> > you to add more stricter checks or controls in the future if necessary.
> > 
> > while:
> > 
> > https://github.com/devicetree-org/dt-schema/blob/master/meta-schemas/clocks.yaml
> > is more a consumer node description.
> 
> No, the meta-schema is what checks the schemas just as the schemas check 
> dts files.


I will drop and respin. thanks for explaining.

> 
> > Should I have picked a different yaml as base for a standard clock-controller
> > base?
> > 
> > > 
> > > > +
> > > > +description: |
> > > > +  Some TI SoCs contain a system controller (like the Power Management Micro
> > > > +  Controller (PMMC) on Keystone 66AK2G SoC) that are responsible for controlling
> > > > +  the state of the various hardware modules present on the SoC. Communication
> > > > +  between the host processor running an OS and the system controller happens
> > > > +  through a protocol called TI System Control Interface (TI-SCI protocol).
> > > > +
> > > > +  This clock controller node uses the TI SCI protocol to perform various clock
> > > > +  management of various hardware modules (devices) present on the SoC. This
> > > > +  node must be a child node of the associated TI-SCI system controller node.
> > > > +
> > > > +properties:
> > > > +  $nodename:
> > > > +    pattern: "^clock-controller$"
> > > 
> > > Is this nodename pattern check required?
> > 
> > I'd like the definition on rails and not subject to interpretation, and
> > restrict the kind of subnodes under TISCI controller node.
> 
> If this schema was standalone and not defined as part of another, then 
> yes it would be required. In your case, you can enforce the node name 
> from the parent schema. For consistency though, it would be better to 
> just always require $nodename. 
> 
> Actually, this schema will be applied twice. On it's own matching the 
> compatible string and by the parent schema. You can prevent that with 
> 'select: false'. I don't mind the double validation as if the parent 
> node had a compatible typo you'd get zero validation.

Sure. I will keep nodename.

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D)/Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

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

* Re: [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci to json schema
  2021-04-21 22:40   ` Rob Herring
@ 2021-04-22 14:17     ` Nishanth Menon
  2021-04-22 16:12       ` Rob Herring
  0 siblings, 1 reply; 17+ messages in thread
From: Nishanth Menon @ 2021-04-22 14:17 UTC (permalink / raw)
  To: Rob Herring
  Cc: Philipp Zabel, Stephen Boyd, Michael Turquette,
	Santosh Shilimkar, Tero Kristo, linux-clk, linux-kernel,
	devicetree, linux-arm-kernel

On 17:40-20210421, Rob Herring wrote:

[..]

> > +allOf:
> > +  - $ref: /schemas/mbox/mbox-consumer.yaml#
> 
> Drop.
> 

OK.

> > +  reg-names:
> > +    description: |
> > +      Specifies the debug messages memory mapped region that is optionally
> > +      made available from TI-SCI controller.
> > +      - const: debug_messages
> 
> Drop the '-' and fix the indent so it's an actual schema.

OK.

[..]
> > +patternProperties:
> > +  # All other properties should be a power, clock or reset controller
> > +  "^(power-controller|clock-controller|reset-controller)$":
> > +    type: object
> > +    oneOf:
> > +      - $ref: /schemas/soc/ti/sci-pm-domain.yaml#
> > +      - $ref: /schemas/clock/ti,sci-clk.yaml#
> > +      - $ref: /schemas/reset/ti,sci-reset.yaml#
> 
> I'd prefer you separate these with a property for each node.

Hmm... I am not sure I completely understand your comment here.
I assume we dont want to duplicate each of those node yamls, so,
did you mean something like:

ti,sci-clk as a bool property in the tisci node and if present, then
expect the node ti,sci-clk node?

Can you give me a hint of similar yaml usage elsewhere that I can refer
to?

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D)/Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

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

* Re: [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci to json schema
  2021-04-22 14:17     ` Nishanth Menon
@ 2021-04-22 16:12       ` Rob Herring
  0 siblings, 0 replies; 17+ messages in thread
From: Rob Herring @ 2021-04-22 16:12 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Philipp Zabel, Stephen Boyd, Michael Turquette,
	Santosh Shilimkar, Tero Kristo, linux-clk, linux-kernel,
	devicetree, linux-arm-kernel

On Thu, Apr 22, 2021 at 9:17 AM Nishanth Menon <nm@ti.com> wrote:
>
> On 17:40-20210421, Rob Herring wrote:
>
> [..]
>
> > > +allOf:
> > > +  - $ref: /schemas/mbox/mbox-consumer.yaml#
> >
> > Drop.
> >
>
> OK.
>
> > > +  reg-names:
> > > +    description: |
> > > +      Specifies the debug messages memory mapped region that is optionally
> > > +      made available from TI-SCI controller.
> > > +      - const: debug_messages
> >
> > Drop the '-' and fix the indent so it's an actual schema.
>
> OK.
>
> [..]
> > > +patternProperties:
> > > +  # All other properties should be a power, clock or reset controller
> > > +  "^(power-controller|clock-controller|reset-controller)$":
> > > +    type: object
> > > +    oneOf:
> > > +      - $ref: /schemas/soc/ti/sci-pm-domain.yaml#
> > > +      - $ref: /schemas/clock/ti,sci-clk.yaml#
> > > +      - $ref: /schemas/reset/ti,sci-reset.yaml#
> >
> > I'd prefer you separate these with a property for each node.
>
> Hmm... I am not sure I completely understand your comment here.
> I assume we dont want to duplicate each of those node yamls, so,
> did you mean something like:
>
> ti,sci-clk as a bool property in the tisci node and if present, then
> expect the node ti,sci-clk node?
>
> Can you give me a hint of similar yaml usage elsewhere that I can refer
> to?

Just do:

properties:
  power-controller:
    type: object
    $ref: /schemas/soc/ti/sci-pm-domain.yaml#

And so on for clock-controller and reset-controller.

Rob

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

end of thread, other threads:[~2021-04-22 16:13 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-16  6:37 [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Nishanth Menon
2021-04-16  6:37 ` [PATCH 1/4] dt-bindings: reset: Convert ti,sci-reset to json schema Nishanth Menon
2021-04-21 22:32   ` Rob Herring
2021-04-16  6:37 ` [PATCH 2/4] dt-bindings: clock: Convert ti,sci-clk " Nishanth Menon
2021-04-16 23:55   ` Stephen Boyd
2021-04-17 12:51     ` Nishanth Menon
2021-04-19 13:35       ` Nishanth Menon
2021-04-21 22:31       ` Rob Herring
2021-04-22 14:09         ` Nishanth Menon
2021-04-16  6:37 ` [PATCH 3/4] dt-bindings: soc: ti: Convert ti,sci-pm-domain " Nishanth Menon
2021-04-21 22:36   ` [PATCH 3/4] dt-bindings: soc: ti: Convert ti, sci-pm-domain " Rob Herring
2021-04-16  6:37 ` [PATCH 4/4] dt-bindings: arm: keystone: Convert ti,sci " Nishanth Menon
2021-04-21 22:40   ` Rob Herring
2021-04-22 14:17     ` Nishanth Menon
2021-04-22 16:12       ` Rob Herring
2021-04-16 10:37 ` [PATCH 0/4] dt-bindings: soc/arm: Convert pending ti,sci* bindings to json format Tero Kristo
2021-04-21 22:12 ` Rob Herring

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