linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema
@ 2021-05-26 18:27 Sudeep Holla
  2021-05-26 18:28 ` [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem " Sudeep Holla
                   ` (7 more replies)
  0 siblings, 8 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:27 UTC (permalink / raw)
  To: devicetree; +Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi

Hi Rob,

Sorry for the delay, this was promised long ago. I finally managed to get
something done here this week. I still have one thing pending in the last
patch, details in the patch.

Regards,
Sudeep

Sudeep Holla (8):
  dt-bindings: firmware: arm,scpi: Move arm,scpi-shmem to json schema
  dt-bindings: firmware: arm,scmi: Move arm,scmi-shmem to json schema
  dt-bindings: firmware: juno,scpi: Move to sram.yaml json schema
  dt-bindings: firmware: amlogic,scpi: Move arm,scpi-shmem to json schema
  dt-bindings: firmware: arm,scpi: Convert to json schema
  dt-bindings: mailbox : arm,mhu: Fix arm,scpi example used here
  dt-bindings: firmware: amlogic,scpi: Convert to json schema
  dt-bindings: firmware: arm,scmi: Convert to json schema

 .../devicetree/bindings/arm/amlogic,scpi.txt  |  27 --
 .../devicetree/bindings/arm/arm,scmi.txt      | 239 ---------------
 .../devicetree/bindings/arm/arm,scpi.txt      | 219 -------------
 .../devicetree/bindings/arm/juno,scpi.txt     |  26 --
 .../bindings/firmware/arm,scmi.yaml           | 270 ++++++++++++++++
 .../bindings/firmware/arm,scpi.yaml           | 288 ++++++++++++++++++
 .../devicetree/bindings/mailbox/arm,mhu.yaml  |  10 +-
 .../devicetree/bindings/sram/sram.yaml        |   5 +
 MAINTAINERS                                   |   2 +-
 9 files changed, 572 insertions(+), 514 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/amlogic,scpi.txt
 delete mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
 delete mode 100644 Documentation/devicetree/bindings/arm/arm,scpi.txt
 delete mode 100644 Documentation/devicetree/bindings/arm/juno,scpi.txt
 create mode 100644 Documentation/devicetree/bindings/firmware/arm,scmi.yaml
 create mode 100644 Documentation/devicetree/bindings/firmware/arm,scpi.yaml

--
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem to json schema
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-27 20:25   ` Rob Herring
  2021-05-26 18:28 ` [PATCH 2/8] dt-bindings: firmware: arm, scmi: Move arm, scmi-shmem " Sudeep Holla
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree
  Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi,
	Kevin Hilman, Neil Armstrong, Jerome Brunet

Move the SRAM and shared memory binding for SCPI into the existing
Generic on-chip SRAM. We just need to update the compatible list and
there-by remove the whole old text format binding for the same.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 .../devicetree/bindings/arm/arm,scpi.txt          | 15 ---------------
 Documentation/devicetree/bindings/sram/sram.yaml  |  1 +
 2 files changed, 1 insertion(+), 15 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/arm,scpi.txt b/Documentation/devicetree/bindings/arm/arm,scpi.txt
index bcd6c3ec471e..bcb8b3d61e68 100644
--- a/Documentation/devicetree/bindings/arm/arm,scpi.txt
+++ b/Documentation/devicetree/bindings/arm/arm,scpi.txt
@@ -56,21 +56,6 @@ Sub-nodes
 	node. It can be non linear and hence provide the mapping of identifiers
 	into the clock-output-names array.
 
-SRAM and Shared Memory for SCPI
--------------------------------
-
-A small area of SRAM is reserved for SCPI communication between application
-processors and SCP.
-
-The properties should follow the generic mmio-sram description found in [3]
-
-Each sub-node represents the reserved area for SCPI.
-
-Required sub-node properties:
-- reg : The base offset and size of the reserved area with the SRAM
-- compatible : should be "arm,scp-shmem" for Non-secure SRAM based
-	       shared memory
-
 Sensor bindings for the sensors based on SCPI Message Protocol
 --------------------------------------------------------------
 SCPI provides an API to access the various sensors on the SoC.
diff --git a/Documentation/devicetree/bindings/sram/sram.yaml b/Documentation/devicetree/bindings/sram/sram.yaml
index c1a5afa73cfe..e9946ed15964 100644
--- a/Documentation/devicetree/bindings/sram/sram.yaml
+++ b/Documentation/devicetree/bindings/sram/sram.yaml
@@ -80,6 +80,7 @@ description: |+
             - amlogic,meson8b-smp-sram
             - amlogic,meson-gxbb-scp-shmem
             - amlogic,meson-axg-scp-shmem
+            - arm,scpi-shmem
             - renesas,smp-sram
             - rockchip,rk3066-smp-sram
             - samsung,exynos4210-sysram
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 2/8] dt-bindings: firmware: arm, scmi: Move arm, scmi-shmem to json schema
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
  2021-05-26 18:28 ` [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem " Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-26 18:28 ` [PATCH 3/8] dt-bindings: firmware: juno, scpi: Move to sram.yaml " Sudeep Holla
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree
  Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi,
	Florian Fainelli

Move the SRAM and shared memory binding for SCMI into the existing
Generic on-chip SRAM. We just need to update the compatible list and
there-by remove the whole old text format binding for the same.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Cristian Marussi <cristian.marussi@arm.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 .../devicetree/bindings/arm/arm,scmi.txt          | 15 ---------------
 Documentation/devicetree/bindings/sram/sram.yaml  |  1 +
 2 files changed, 1 insertion(+), 15 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/arm,scmi.txt b/Documentation/devicetree/bindings/arm/arm,scmi.txt
index 667d58e0a659..b7be2000afcb 100644
--- a/Documentation/devicetree/bindings/arm/arm,scmi.txt
+++ b/Documentation/devicetree/bindings/arm/arm,scmi.txt
@@ -106,21 +106,6 @@ signal binding[5].
  - #reset-cells : Should be 1. Contains the reset domain ID value used
 		  by SCMI commands.
 
-SRAM and Shared Memory for SCMI
--------------------------------
-
-A small area of SRAM is reserved for SCMI communication between application
-processors and SCP.
-
-The properties should follow the generic mmio-sram description found in [4]
-
-Each sub-node represents the reserved area for SCMI.
-
-Required sub-node properties:
-- reg : The base offset and size of the reserved area with the SRAM
-- compatible : should be "arm,scmi-shmem" for Non-secure SRAM based
-	       shared memory
-
 [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
 [2] Documentation/devicetree/bindings/power/power-domain.yaml
diff --git a/Documentation/devicetree/bindings/sram/sram.yaml b/Documentation/devicetree/bindings/sram/sram.yaml
index e9946ed15964..364d66db1b03 100644
--- a/Documentation/devicetree/bindings/sram/sram.yaml
+++ b/Documentation/devicetree/bindings/sram/sram.yaml
@@ -80,6 +80,7 @@ description: |+
             - amlogic,meson8b-smp-sram
             - amlogic,meson-gxbb-scp-shmem
             - amlogic,meson-axg-scp-shmem
+            - arm,scmi-shmem
             - arm,scpi-shmem
             - renesas,smp-sram
             - rockchip,rk3066-smp-sram
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 3/8] dt-bindings: firmware: juno, scpi: Move to sram.yaml json schema
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
  2021-05-26 18:28 ` [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem " Sudeep Holla
  2021-05-26 18:28 ` [PATCH 2/8] dt-bindings: firmware: arm, scmi: Move arm, scmi-shmem " Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-26 18:28 ` [PATCH 4/8] dt-bindings: firmware: amlogic, scpi: Move arm, scpi-shmem to " Sudeep Holla
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree; +Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi

Commit a90b15e0ad72 ("Documentation: bindings: decouple juno specific
details from generic binding") moved the juno specific bindings into
separate file. Though there was no need for juno specific binding, it
has been used unfortunately for whatever stupid reason I added it for.

Let us move the same to the generic sram.yaml schema and remove the
old text format binding.

Cc: Rob Herring <robh+dt@kernel.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 .../devicetree/bindings/arm/juno,scpi.txt     | 26 -------------------
 .../devicetree/bindings/sram/sram.yaml        |  2 ++
 2 files changed, 2 insertions(+), 26 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/juno,scpi.txt

diff --git a/Documentation/devicetree/bindings/arm/juno,scpi.txt b/Documentation/devicetree/bindings/arm/juno,scpi.txt
deleted file mode 100644
index 2ace8696bbee..000000000000
--- a/Documentation/devicetree/bindings/arm/juno,scpi.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-System Control and Power Interface (SCPI) Message Protocol
-(in addition to the standard binding in [0])
-
-Juno SRAM and Shared Memory for SCPI
-------------------------------------
-
-Required properties:
-- compatible : should be "arm,juno-sram-ns" for Non-secure SRAM
-
-Each sub-node represents the reserved area for SCPI.
-
-Required sub-node properties:
-- reg : The base offset and size of the reserved area with the SRAM
-- compatible : should be "arm,juno-scp-shmem" for Non-secure SRAM based
-	       shared memory on Juno platforms
-
-Sensor bindings for the sensors based on SCPI Message Protocol
---------------------------------------------------------------
-Required properties:
-- compatible : should be "arm,scpi-sensors".
-- #thermal-sensor-cells: should be set to 1.
-			 For Juno R0 and Juno R1 refer to [1] for the
-			 sensor identifiers
-
-[0] Documentation/devicetree/bindings/arm/arm,scpi.txt
-[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0922b/apas03s22.html
diff --git a/Documentation/devicetree/bindings/sram/sram.yaml b/Documentation/devicetree/bindings/sram/sram.yaml
index 364d66db1b03..0d494af609b7 100644
--- a/Documentation/devicetree/bindings/sram/sram.yaml
+++ b/Documentation/devicetree/bindings/sram/sram.yaml
@@ -28,6 +28,7 @@ description: |+
     contains:
       enum:
         - mmio-sram
+        - arm,juno-sram-ns
         - atmel,sama5d2-securam
         - rockchip,rk3288-pmu-sram
 
@@ -80,6 +81,7 @@ description: |+
             - amlogic,meson8b-smp-sram
             - amlogic,meson-gxbb-scp-shmem
             - amlogic,meson-axg-scp-shmem
+            - arm,juno-scp-shmem
             - arm,scmi-shmem
             - arm,scpi-shmem
             - renesas,smp-sram
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 4/8] dt-bindings: firmware: amlogic, scpi: Move arm, scpi-shmem to json schema
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
                   ` (2 preceding siblings ...)
  2021-05-26 18:28 ` [PATCH 3/8] dt-bindings: firmware: juno, scpi: Move to sram.yaml " Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-26 18:28 ` [PATCH 5/8] dt-bindings: firmware: arm,scpi: Convert " Sudeep Holla
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree
  Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi,
	Kevin Hilman, Neil Armstrong, Jerome Brunet

"amlogic,meson-gxbb-scp-shmem" is already in the Generic on-chip SRAM
binding though "amlogic,meson-gxbb-scpi" is missing which is now added.
Also remove the whole old text format binding for the same.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 .../devicetree/bindings/arm/amlogic,scpi.txt         | 12 ------------
 Documentation/devicetree/bindings/sram/sram.yaml     |  1 +
 2 files changed, 1 insertion(+), 12 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt b/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
index 5ab59da052df..ebfe302fb747 100644
--- a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
+++ b/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
@@ -5,18 +5,6 @@ Required properties
 
 - compatible : should be "amlogic,meson-gxbb-scpi"
 
-AMLOGIC SRAM and Shared Memory for SCPI
-------------------------------------
-
-Required properties:
-- compatible : should be "amlogic,meson-gxbb-sram"
-
-Each sub-node represents the reserved area for SCPI.
-
-Required sub-node properties:
-- compatible : should be "amlogic,meson-gxbb-scp-shmem" for SRAM based shared
-		memory on Amlogic GXBB SoC.
-
 Sensor bindings for the sensors based on SCPI Message Protocol
 --------------------------------------------------------------
 SCPI provides an API to access the various sensors on the SoC.
diff --git a/Documentation/devicetree/bindings/sram/sram.yaml b/Documentation/devicetree/bindings/sram/sram.yaml
index 0d494af609b7..c73a27c995ad 100644
--- a/Documentation/devicetree/bindings/sram/sram.yaml
+++ b/Documentation/devicetree/bindings/sram/sram.yaml
@@ -28,6 +28,7 @@ description: |+
     contains:
       enum:
         - mmio-sram
+        - amlogic,meson-gxbb-sram
         - arm,juno-sram-ns
         - atmel,sama5d2-securam
         - rockchip,rk3288-pmu-sram
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 5/8] dt-bindings: firmware: arm,scpi: Convert to json schema
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
                   ` (3 preceding siblings ...)
  2021-05-26 18:28 ` [PATCH 4/8] dt-bindings: firmware: amlogic, scpi: Move arm, scpi-shmem to " Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-27 14:23   ` [PATCH 5/8] dt-bindings: firmware: arm, scpi: " Rob Herring
  2021-05-26 18:28 ` [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here Sudeep Holla
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree
  Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi,
	Kevin Hilman, Neil Armstrong, Jerome Brunet

Convert the old text format binding for System Control and Power Interface
(SCPI) Message Protocol into the new and shiny YAML format.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Viresh Kumar <viresh.kumar@linaro.org
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 .../devicetree/bindings/arm/arm,scpi.txt      | 204 -------------
 .../bindings/firmware/arm,scpi.yaml           | 284 ++++++++++++++++++
 MAINTAINERS                                   |   2 +-
 3 files changed, 285 insertions(+), 205 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/arm,scpi.txt
 create mode 100644 Documentation/devicetree/bindings/firmware/arm,scpi.yaml

diff --git a/Documentation/devicetree/bindings/arm/arm,scpi.txt b/Documentation/devicetree/bindings/arm/arm,scpi.txt
deleted file mode 100644
index bcb8b3d61e68..000000000000
--- a/Documentation/devicetree/bindings/arm/arm,scpi.txt
+++ /dev/null
@@ -1,204 +0,0 @@
-System Control and Power Interface (SCPI) Message Protocol
-----------------------------------------------------------
-
-Firmware implementing the SCPI described in ARM document number ARM DUI 0922B
-("ARM Compute Subsystem SCP: Message Interface Protocols")[0] can be used
-by Linux to initiate various system control and power operations.
-
-Required properties:
-
-- compatible : should be
-	* "arm,scpi" : For implementations complying to SCPI v1.0 or above
-	* "arm,scpi-pre-1.0" : For implementations complying to all
-		unversioned releases prior to SCPI v1.0
-- mboxes: List of phandle and mailbox channel specifiers
-	  All the channels reserved by remote SCP firmware for use by
-	  SCPI message protocol should be specified in any order
-- shmem : List of phandle pointing to the shared memory(SHM) area between the
-	  processors using these mailboxes for IPC, one for each mailbox
-	  SHM can be any memory reserved for the purpose of this communication
-	  between the processors.
-
-See Documentation/devicetree/bindings/mailbox/mailbox.txt
-for more details about the generic mailbox controller and
-client driver bindings.
-
-Clock bindings for the clocks based on SCPI Message Protocol
-------------------------------------------------------------
-
-This binding uses the common clock binding[1].
-
-Container Node
-==============
-Required properties:
-- compatible : should be "arm,scpi-clocks"
-	       All the clocks provided by SCP firmware via SCPI message
-	       protocol much be listed as sub-nodes under this node.
-
-Sub-nodes
-=========
-Required properties:
-- compatible : shall include one of the following
-	"arm,scpi-dvfs-clocks" - all the clocks that are variable and index based.
-		These clocks don't provide an entire range of values between the
-		limits but only discrete points within the range. The firmware
-		provides the mapping for each such operating frequency and the
-		index associated with it. The firmware also manages the
-		voltage scaling appropriately with the clock scaling.
-	"arm,scpi-variable-clocks" - all the clocks that are variable and provide full
-		range within the specified range. The firmware provides the
-		range of values within a specified range.
-
-Other required properties for all clocks(all from common clock binding):
-- #clock-cells : Should be 1. Contains the Clock ID value used by SCPI commands.
-- clock-output-names : shall be the corresponding names of the outputs.
-- clock-indices: The identifying number for the clocks(i.e.clock_id) in the
-	node. It can be non linear and hence provide the mapping of identifiers
-	into the clock-output-names array.
-
-Sensor bindings for the sensors based on SCPI Message Protocol
---------------------------------------------------------------
-SCPI provides an API to access the various sensors on the SoC.
-
-Required properties:
-- compatible : should be "arm,scpi-sensors".
-- #thermal-sensor-cells: should be set to 1. This property follows the
-			 thermal device tree bindings[2].
-
-			 Valid cell values are raw identifiers (Sensor ID)
-			 as used by the firmware. Refer to  platform details
-			 for your implementation for the IDs to use.
-
-Power domain bindings for the power domains based on SCPI Message Protocol
-------------------------------------------------------------
-
-This binding uses the generic power domain binding[4].
-
-PM domain providers
-===================
-
-Required properties:
- - #power-domain-cells : Should be 1. Contains the device or the power
-			 domain ID value used by SCPI commands.
- - num-domains: Total number of power domains provided by SCPI. This is
-		needed as the SCPI message protocol lacks a mechanism to
-		query this information at runtime.
-
-PM domain consumers
-===================
-
-Required properties:
- - power-domains : A phandle and PM domain specifier as defined by bindings of
-                   the power controller specified by phandle.
-
-[0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html
-[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
-[2] Documentation/devicetree/bindings/thermal/thermal*.yaml
-[3] Documentation/devicetree/bindings/sram/sram.yaml
-[4] Documentation/devicetree/bindings/power/power-domain.yaml
-
-Example:
-
-sram: sram@50000000 {
-	compatible = "arm,juno-sram-ns", "mmio-sram";
-	reg = <0x0 0x50000000 0x0 0x10000>;
-
-	#address-cells = <1>;
-	#size-cells = <1>;
-	ranges = <0 0x0 0x50000000 0x10000>;
-
-	cpu_scp_lpri: scp-shmem@0 {
-		compatible = "arm,juno-scp-shmem";
-		reg = <0x0 0x200>;
-	};
-
-	cpu_scp_hpri: scp-shmem@200 {
-		compatible = "arm,juno-scp-shmem";
-		reg = <0x200 0x200>;
-	};
-};
-
-mailbox: mailbox0@40000000 {
-	....
-	#mbox-cells = <1>;
-};
-
-scpi_protocol: scpi@2e000000 {
-	compatible = "arm,scpi";
-	mboxes = <&mailbox 0 &mailbox 1>;
-	shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
-
-	clocks {
-		compatible = "arm,scpi-clocks";
-
-		scpi_dvfs: scpi_clocks@0 {
-			compatible = "arm,scpi-dvfs-clocks";
-			#clock-cells = <1>;
-			clock-indices = <0>, <1>, <2>;
-			clock-output-names = "atlclk", "aplclk","gpuclk";
-		};
-		scpi_clk: scpi_clocks@3 {
-			compatible = "arm,scpi-variable-clocks";
-			#clock-cells = <1>;
-			clock-indices = <3>, <4>;
-			clock-output-names = "pxlclk0", "pxlclk1";
-		};
-	};
-
-	scpi_sensors0: sensors {
-		compatible = "arm,scpi-sensors";
-		#thermal-sensor-cells = <1>;
-	};
-
-	scpi_devpd: scpi-power-domains {
-		compatible = "arm,scpi-power-domains";
-		num-domains = <2>;
-		#power-domain-cells = <1>;
-	};
-};
-
-cpu@0 {
-	...
-	reg = <0 0>;
-	clocks = <&scpi_dvfs 0>;
-};
-
-hdlcd@7ff60000 {
-	...
-	reg = <0 0x7ff60000 0 0x1000>;
-	clocks = <&scpi_clk 4>;
-	power-domains = <&scpi_devpd 1>;
-};
-
-thermal-zones {
-	soc_thermal {
-		polling-delay-passive = <100>;
-		polling-delay = <1000>;
-
-				/* sensor         ID */
-		thermal-sensors = <&scpi_sensors0 3>;
-		...
-	};
-};
-
-In the above example, the #clock-cells is set to 1 as required.
-scpi_dvfs has 3 output clocks namely: atlclk, aplclk, and gpuclk with 0,
-1 and 2 as clock-indices. scpi_clk has 2 output clocks namely: pxlclk0
-and pxlclk1 with 3 and 4 as clock-indices.
-
-The first consumer in the example is cpu@0 and it has '0' as the clock
-specifier which points to the first entry in the output clocks of
-scpi_dvfs i.e. "atlclk".
-
-Similarly the second example is hdlcd@7ff60000 and it has pxlclk1 as input
-clock. '4' in the clock specifier here points to the second entry
-in the output clocks of scpi_clocks  i.e. "pxlclk1"
-
-The thermal-sensors property in the soc_thermal node uses the
-temperature sensor provided by SCP firmware to setup a thermal
-zone. The ID "3" is the sensor identifier for the temperature sensor
-as used by the firmware.
-
-The num-domains property in scpi-power-domains domain specifies that
-SCPI provides 2 power domains. The hdlcd node uses the power domain with
-domain ID 1.
diff --git a/Documentation/devicetree/bindings/firmware/arm,scpi.yaml b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
new file mode 100644
index 000000000000..9c115e9c1536
--- /dev/null
+++ b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
@@ -0,0 +1,284 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2021 ARM Ltd.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/firmware/arm,scpi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: System Control and Power Interface (SCPI) Message Protocol bindings
+
+maintainers:
+  - Sudeep Holla <sudeep.holla@arm.com>
+
+description: |
+  Firmware implementing the SCPI described in ARM document number ARM DUI
+  0922B ("ARM Compute Subsystem SCP: Message Interface Protocols")[0] can be
+  used by Linux to initiate various system control and power operations.
+
+  This binding is intended to define the interface the firmware implementing
+  the SCPI provide for OSPM in the device tree.
+
+  [0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html
+
+properties:
+  $nodename:
+    const: scpi
+
+  compatible:
+    oneOf:
+      - description: SCPI compliant firmware complying to SCPI v1.0 or above
+        items:
+          - const: arm,scpi
+      - description: |
+          SCPI compliant firmware complying to all unversioned releases prior
+          to SCPI v1.0
+        items:
+          - const: arm,scpi-pre-1.0
+
+  mboxes:
+    description: |
+      List of phandle and mailbox channel specifiers. All the channels reserved
+      by remote SCP firmware for use by SCPI message protocol should be
+      specified in any order.
+    minItems: 1
+
+  shmem:
+    description: |
+      List of phandle pointing to the shared memory(SHM) area between the
+      processors using these mailboxes for IPC, one for each mailbox SHM can
+      be any memory reserved for the purpose of this communication between the
+      processors.
+    minItems: 1
+
+additionalProperties:
+  type: object
+
+patternProperties:
+  "^(sensors|power-domains)(-[0-9a-f]+)?$":
+    type: object
+    description: |
+      Each sub-node represents one of the controller - power domains or sensors.
+
+    properties:
+      compatible:
+        oneOf:
+          - const: arm,scpi-sensors
+          - const: arm,scpi-power-domains
+
+  "^clocks(-[0-9a-f]+)?$":
+    type: object
+    description: |
+      Each sub-node represents one of the types of clock controller -
+      indexed or full range.
+
+      "arm,scpi-dvfs-clocks" - all the clocks that are variable and index
+      based. These clocks don't provide an entire range of values
+      between the limits but only discrete points within the range. The
+      firmware provides the mapping for each such operating frequency
+      and the index associated with it. The firmware also manages the
+      voltage scaling appropriately with the clock scaling.
+
+      "arm,scpi-variable-clocks" - all the clocks that are variable and
+      provide full range within the specified range. The firmware
+      provides the range of values within a specified range.
+
+    properties:
+      compatible:
+        oneOf:
+          - const: arm,scpi-dvfs-clocks
+          - const: arm,scpi-variable-clocks
+
+required:
+  - compatible
+  - mboxes
+  - shmem
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: arm,scpi-sensors
+    then:
+      properties:
+        '#thermal-sensor-cells':
+          const: 1
+
+      required:
+        - '#thermal-sensor-cells'
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: arm,scpi-power-domains
+    then:
+      properties:
+        '#power-domain-cells':
+          const: 1
+
+        num-domains:
+          $ref: /schemas/types.yaml#/definitions/uint32
+          description: |
+            Total number of power domains provided by SCPI. This is needed as
+            the SCPI message protocol lacks a mechanism to query this
+            information at runtime.
+
+      required:
+        - '#power-domain-cells'
+        - num-domains
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - arm,scpi-dvfs-clocks
+              - arm,scpi-variable-clocks
+    then:
+      properties:
+        '#clock-cells':
+          const: 1
+        clock-output-names:
+          $ref: /schemas/types.yaml#/definitions/string-array
+        clock-indices:
+          $ref: /schemas/types.yaml#/definitions/uint32-array
+          description: |
+            The identifying number for the clocks(i.e.clock_id) in the node.
+            It can be non linear and hence provide the mapping of identifiers
+            into the clock-output-names array.
+
+      required:
+        - '#clock-cells'
+        - clock-output-names
+        - clock-indices
+
+examples:
+  - |
+    firmware {
+      scpi {
+        compatible = "arm,scpi";
+        mboxes = <&mhuA 1>;
+        shmem = <&cpu_scp_hpri>; /* HP-NonSecure */
+
+        scpi_devpd: power-domains-0 {
+          compatible = "arm,scpi-power-domains";
+          num-domains = <2>;
+          #power-domain-cells = <1>;
+        };
+
+        clocks {
+          scpi_dvfs: clocks-0 {
+            compatible = "arm,scpi-dvfs-clocks";
+            #clock-cells = <1>;
+            clock-indices = <0>, <1>, <2>;
+            clock-output-names = "atlclk", "aplclk","gpuclk";
+          };
+
+          scpi_clk: clocks-1 {
+            compatible = "arm,scpi-variable-clocks";
+            #clock-cells = <1>;
+            clock-indices = <3>, <4>;
+            clock-output-names = "pxlclk0", "pxlclk1";
+          };
+        };
+
+        scpi_sensors: sensors-0 {
+          compatible = "arm,scpi-sensors";
+          #thermal-sensor-cells = <1>;
+        };
+
+      };
+    };
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      sram@50000000 {
+        compatible = "mmio-sram";
+        reg = <0x0 0x50000000 0x0 0x10000>;
+
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges = <0 0x0 0x50000000 0x10000>;
+
+        cpu_scp_lpri: scp-sram-section@0 {
+          compatible = "arm,scpi-shmem";
+          reg = <0x0 0x200>;
+        };
+
+        cpu_scp_hpri: scp-sram-section@200 {
+          compatible = "arm,scpi-shmem";
+          reg = <0x200 0x200>;
+        };
+      };
+
+      mhuA: mailbox@2b2f0000 {
+        #mbox-cells = <1>;
+        compatible = "arm,mhu", "arm,primecell";
+        reg = <0 0x2b2f0000 0 0x1000>;
+        interrupts = <0 36 4>, /* LP-NonSecure */
+                     <0 35 4>, /* HP-NonSecure */
+                     <0 37 4>; /* Secure */
+        clocks = <&clock 0 2 1>;
+        clock-names = "apb_pclk";
+      };
+
+      gpu@ffe40000 {
+        compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
+        reg = <0x0 0xffe40000 0x0 0x10000>;
+        interrupts = <0 160 4>, <0 161 4>, <0 162 4>;
+        interrupt-names = "job", "mmu", "gpu";
+        clocks = <&scpi_clk 1>;
+        power-domains = <&scpi_devpd 8>;
+        resets = <&scpi_reset 0>, <&scpi_reset 1>;
+      };
+
+      display@20930000 {
+        compatible = "intel,keembay-display";
+        reg = <0x0 0x20930000 0x0 0x3000>;
+        reg-names = "lcd";
+        interrupts = <0 33 4>;
+        clocks = <&scpi_clk 0x83>,
+                 <&scpi_clk 0x0>;
+        clock-names = "clk_lcd", "clk_pll0";
+
+        port {
+            disp_out: endpoint {
+                remote-endpoint = <&dsi_in>;
+            };
+        };
+      };
+
+      thermal-zones {
+        soc-thermal {
+          polling-delay-passive = <100>;
+          polling-delay = <1000>;
+          thermal-sensors = <&scpi_sensors0 3>;
+
+          trips {
+            mpu0_crit: mpu0_crit {
+              temperature = <125000>; /* milliCelsius */
+              hysteresis = <2000>; /* milliCelsius */
+              type = "critical";
+            };
+          };
+        };
+      };
+    };
+
+    cpus {
+      #size-cells = <0>;
+      #address-cells = <2>;
+
+      cpu@0 {
+        device_type = "cpu";
+        compatible = "arm,cortex-a57";
+        reg = <0x0 0x0>;
+        enable-method = "psci";
+        clocks = <&scpi_dvfs 0>;
+      };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index bd7aff0c120f..6a12597a86e1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17696,7 +17696,7 @@ M:	Sudeep Holla <sudeep.holla@arm.com>
 R:	Cristian Marussi <cristian.marussi@arm.com>
 L:	linux-arm-kernel@lists.infradead.org
 S:	Maintained
-F:	Documentation/devicetree/bindings/arm/arm,sc[mp]i.txt
+F:	Documentation/devicetree/bindings/firmware/arm,sc[mp]i.yaml
 F:	drivers/clk/clk-sc[mp]i.c
 F:	drivers/cpufreq/sc[mp]i-cpufreq.c
 F:	drivers/firmware/arm_scmi/
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
                   ` (4 preceding siblings ...)
  2021-05-26 18:28 ` [PATCH 5/8] dt-bindings: firmware: arm,scpi: Convert " Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-27 14:23   ` Rob Herring
  2021-05-26 18:28 ` [PATCH 7/8] dt-bindings: firmware: amlogic, scpi: Convert to json schema Sudeep Holla
  2021-05-26 18:28 ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
  7 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree; +Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi

Now that the arm,scpi binding is converted to YAML format, the following
errors are seen when doing `make DT_CHECKER_FLAGS=-m dt_binding_check`

From schema: Documentation/devicetree/bindings/firmware/arm,scpi.yaml
Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:
	scpi@2f000000: $nodename:0: 'scpi' was expected
Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:
	scpi@2f000000: reg: [[0, 788529152, 0, 512]] is not of type 'object'
Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:
	scpi@2f000000: 'shmem' is a required property

Fix those error following the SCPI bindings.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 Documentation/devicetree/bindings/mailbox/arm,mhu.yaml | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/mailbox/arm,mhu.yaml b/Documentation/devicetree/bindings/mailbox/arm,mhu.yaml
index d07eb00b97c8..bfdc3e33565e 100644
--- a/Documentation/devicetree/bindings/mailbox/arm,mhu.yaml
+++ b/Documentation/devicetree/bindings/mailbox/arm,mhu.yaml
@@ -126,9 +126,15 @@ additionalProperties: false
             clock-names = "apb_pclk";
         };
 
-        mhu_client_scpi: scpi@2f000000 {
+        scpi {
             compatible = "arm,scpi";
-            reg = <0 0x2f000000 0 0x200>;
             mboxes = <&mhuB 1 4>; /* HP-NonSecure, 5th doorbell */
+            shmem = <&cpu_scp_hpri>; /* HP-NonSecure */
+
+            scpi_devpd: power-domains-0 {
+                compatible = "arm,scpi-power-domains";
+                num-domains = <2>;
+                #power-domain-cells = <1>;
+            };
         };
     };
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 7/8] dt-bindings: firmware: amlogic, scpi: Convert to json schema
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
                   ` (5 preceding siblings ...)
  2021-05-26 18:28 ` [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-27 20:33   ` Rob Herring
  2021-05-26 18:28 ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
  7 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree
  Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi,
	Kevin Hilman, Neil Armstrong, Jerome Brunet

Convert/merge the existing text format SCPI binding additions for
amlogic,scpi into the common arm,scpi json scheme.

Couple of things to note:
"amlogic,meson-gxbb-scpi" is always used with "arm,scpi-pre-1.0"
 hence no need for separate "arm,scpi-pre-1.0" standalone entry and
"amlogic,meson-gxbb-scpi-sensors" is used always with "arm,scpi-sensors"

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 .../devicetree/bindings/arm/amlogic,scpi.txt      | 15 ---------------
 .../devicetree/bindings/firmware/arm,scpi.yaml    |  4 ++++
 2 files changed, 4 insertions(+), 15 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/amlogic,scpi.txt

diff --git a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt b/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
deleted file mode 100644
index ebfe302fb747..000000000000
--- a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-System Control and Power Interface (SCPI) Message Protocol
-(in addition to the standard binding in [0])
-----------------------------------------------------------
-Required properties
-
-- compatible : should be "amlogic,meson-gxbb-scpi"
-
-Sensor bindings for the sensors based on SCPI Message Protocol
---------------------------------------------------------------
-SCPI provides an API to access the various sensors on the SoC.
-
-Required properties:
-- compatible : should be "amlogic,meson-gxbb-scpi-sensors".
-
-[0] Documentation/devicetree/bindings/arm/arm,scpi.txt
diff --git a/Documentation/devicetree/bindings/firmware/arm,scpi.yaml b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
index 9c115e9c1536..d1179a4ea4e9 100644
--- a/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
+++ b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
@@ -34,6 +34,7 @@ description: |
           to SCPI v1.0
         items:
           - const: arm,scpi-pre-1.0
+          - const: amlogic,meson-gxbb-scpi
 
   mboxes:
     description: |
@@ -64,6 +65,9 @@ description: |
         oneOf:
           - const: arm,scpi-sensors
           - const: arm,scpi-power-domains
+          - items:
+              - const: amlogic,meson-gxbb-scpi-sensors
+              - const: arm,scpi-sensors
 
   "^clocks(-[0-9a-f]+)?$":
     type: object
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* [PATCH 8/8] dt-bindings: firmware: arm,scmi: Convert to json schema
  2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
                   ` (6 preceding siblings ...)
  2021-05-26 18:28 ` [PATCH 7/8] dt-bindings: firmware: amlogic, scpi: Convert to json schema Sudeep Holla
@ 2021-05-26 18:28 ` Sudeep Holla
  2021-05-26 18:35   ` Sudeep Holla
                     ` (2 more replies)
  7 siblings, 3 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:28 UTC (permalink / raw)
  To: devicetree
  Cc: Sudeep Holla, linux-arm-kernel, Rob Herring, Cristian Marussi,
	Florian Fainelli, Jim Quinlan, Etienne Carriere, Peter Hilber

Convert the old text format binding for System Control and Management Interface
(SCMI) Message Protocol into the new and shiny YAML format.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Cristian Marussi <cristian.marussi@arm.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Jim Quinlan <jim2101024@gmail.com>
Cc: Etienne Carriere <etienne.carriere@linaro.org>
Cc: Peter Hilber <peter.hilber@opensynergy.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 .../devicetree/bindings/arm/arm,scmi.txt      | 224 ---------------
 .../bindings/firmware/arm,scmi.yaml           | 270 ++++++++++++++++++
 2 files changed, 270 insertions(+), 224 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
 create mode 100644 Documentation/devicetree/bindings/firmware/arm,scmi.yaml

Hi,

I have converted all the bindings except the below regulator part of the
binding. This needs to be addressed before merging ofcourse. Just posting
the remaining changes to get feedback and also ask suggestion for the below:

        scmi_voltage: protocol@17 {
          reg = <0x17>;
          regulators {
            regulator_devX: regulator@0 {
              reg = <0x0>;
              regulator-max-microvolt = <3300000>;
            };

            regulator_devY: regulator@9 {
              reg = <0x9>;
              regulator-min-microvolt = <500000>;
              regulator-max-microvolt = <4200000>;
            };
          };
        };

I will reply with things I have tried separately to avoid confusion with this
the patch here.

diff --git a/Documentation/devicetree/bindings/arm/arm,scmi.txt b/Documentation/devicetree/bindings/arm/arm,scmi.txt
deleted file mode 100644
index b7be2000afcb..000000000000
--- a/Documentation/devicetree/bindings/arm/arm,scmi.txt
+++ /dev/null
@@ -1,224 +0,0 @@
-System Control and Management Interface (SCMI) Message Protocol
-----------------------------------------------------------
-
-The SCMI is intended to allow agents such as OSPM to manage various functions
-that are provided by the hardware platform it is running on, including power
-and performance functions.
-
-This binding is intended to define the interface the firmware implementing
-the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control
-and Management Interface Platform Design Document")[0] provide for OSPM in
-the device tree.
-
-Required properties:
-
-The scmi node with the following properties shall be under the /firmware/ node.
-
-- compatible : shall be "arm,scmi" or "arm,scmi-smc" for smc/hvc transports
-- mboxes: List of phandle and mailbox channel specifiers. It should contain
-	  exactly one or two mailboxes, one for transmitting messages("tx")
-	  and another optional for receiving the notifications("rx") if
-	  supported.
-- shmem : List of phandle pointing to the shared memory(SHM) area as per
-	  generic mailbox client binding.
-- #address-cells : should be '1' if the device has sub-nodes, maps to
-	  protocol identifier for a given sub-node.
-- #size-cells : should be '0' as 'reg' property doesn't have any size
-	  associated with it.
-- arm,smc-id : SMC id required when using smc or hvc transports
-
-Optional properties:
-
-- mbox-names: shall be "tx" or "rx" depending on mboxes entries.
-
-- interrupts : when using smc or hvc transports, this optional
-	 property indicates that msg completion by the platform is indicated
-	 by an interrupt rather than by the return of the smc call. This
-	 should not be used except when the platform requires such behavior.
-
-- interrupt-names : if "interrupts" is present, interrupt-names must also
-	 be present and have the value "a2p".
-
-See Documentation/devicetree/bindings/mailbox/mailbox.txt for more details
-about the generic mailbox controller and client driver bindings.
-
-The mailbox is the only permitted method of calling the SCMI firmware.
-Mailbox doorbell is used as a mechanism to alert the presence of a
-messages and/or notification.
-
-Each protocol supported shall have a sub-node with corresponding compatible
-as described in the following sections. If the platform supports dedicated
-communication channel for a particular protocol, the 3 properties namely:
-mboxes, mbox-names and shmem shall be present in the sub-node corresponding
-to that protocol.
-
-Clock/Performance bindings for the clocks/OPPs based on SCMI Message Protocol
-------------------------------------------------------------
-
-This binding uses the common clock binding[1].
-
-Required properties:
-- #clock-cells : Should be 1. Contains the Clock ID value used by SCMI commands.
-
-Power domain bindings for the power domains based on SCMI Message Protocol
-------------------------------------------------------------
-
-This binding for the SCMI power domain providers uses the generic power
-domain binding[2].
-
-Required properties:
- - #power-domain-cells : Should be 1. Contains the device or the power
-			 domain ID value used by SCMI commands.
-
-Regulator bindings for the SCMI Regulator based on SCMI Message Protocol
-------------------------------------------------------------
-An SCMI Regulator is permanently bound to a well defined SCMI Voltage Domain,
-and should be always positioned as a root regulator.
-It does not support any current operation.
-
-SCMI Regulators are grouped under a 'regulators' node which in turn is a child
-of the SCMI Voltage protocol node inside the desired SCMI instance node.
-
-This binding uses the common regulator binding[6].
-
-Required properties:
- - reg : shall identify an existent SCMI Voltage Domain.
-
-Sensor bindings for the sensors based on SCMI Message Protocol
---------------------------------------------------------------
-SCMI provides an API to access the various sensors on the SoC.
-
-Required properties:
-- #thermal-sensor-cells: should be set to 1. This property follows the
-			 thermal device tree bindings[3].
-
-			 Valid cell values are raw identifiers (Sensor ID)
-			 as used by the firmware. Refer to  platform details
-			 for your implementation for the IDs to use.
-
-Reset signal bindings for the reset domains based on SCMI Message Protocol
-------------------------------------------------------------
-
-This binding for the SCMI reset domain providers uses the generic reset
-signal binding[5].
-
-Required properties:
- - #reset-cells : Should be 1. Contains the reset domain ID value used
-		  by SCMI commands.
-
-[0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
-[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
-[2] Documentation/devicetree/bindings/power/power-domain.yaml
-[3] Documentation/devicetree/bindings/thermal/thermal*.yaml
-[4] Documentation/devicetree/bindings/sram/sram.yaml
-[5] Documentation/devicetree/bindings/reset/reset.txt
-[6] Documentation/devicetree/bindings/regulator/regulator.yaml
-
-Example:
-
-sram@50000000 {
-	compatible = "mmio-sram";
-	reg = <0x0 0x50000000 0x0 0x10000>;
-
-	#address-cells = <1>;
-	#size-cells = <1>;
-	ranges = <0 0x0 0x50000000 0x10000>;
-
-	cpu_scp_lpri: scp-shmem@0 {
-		compatible = "arm,scmi-shmem";
-		reg = <0x0 0x200>;
-	};
-
-	cpu_scp_hpri: scp-shmem@200 {
-		compatible = "arm,scmi-shmem";
-		reg = <0x200 0x200>;
-	};
-};
-
-mailbox@40000000 {
-	....
-	#mbox-cells = <1>;
-	reg = <0x0 0x40000000 0x0 0x10000>;
-};
-
-firmware {
-
-	...
-
-	scmi {
-		compatible = "arm,scmi";
-		mboxes = <&mailbox 0 &mailbox 1>;
-		mbox-names = "tx", "rx";
-		shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		scmi_devpd: protocol@11 {
-			reg = <0x11>;
-			#power-domain-cells = <1>;
-		};
-
-		scmi_dvfs: protocol@13 {
-			reg = <0x13>;
-			#clock-cells = <1>;
-		};
-
-		scmi_clk: protocol@14 {
-			reg = <0x14>;
-			#clock-cells = <1>;
-		};
-
-		scmi_sensors0: protocol@15 {
-			reg = <0x15>;
-			#thermal-sensor-cells = <1>;
-		};
-
-		scmi_reset: protocol@16 {
-			reg = <0x16>;
-			#reset-cells = <1>;
-		};
-
-		scmi_voltage: protocol@17 {
-			reg = <0x17>;
-
-			regulators {
-				regulator_devX: regulator@0 {
-					reg = <0x0>;
-					regulator-max-microvolt = <3300000>;
-				};
-
-				regulator_devY: regulator@9 {
-					reg = <0x9>;
-					regulator-min-microvolt = <500000>;
-					regulator-max-microvolt = <4200000>;
-				};
-
-				...
-			};
-		};
-	};
-};
-
-cpu@0 {
-	...
-	reg = <0 0>;
-	clocks = <&scmi_dvfs 0>;
-};
-
-hdlcd@7ff60000 {
-	...
-	reg = <0 0x7ff60000 0 0x1000>;
-	clocks = <&scmi_clk 4>;
-	power-domains = <&scmi_devpd 1>;
-	resets = <&scmi_reset 10>;
-};
-
-thermal-zones {
-	soc_thermal {
-		polling-delay-passive = <100>;
-		polling-delay = <1000>;
-					/* sensor ID */
-		thermal-sensors = <&scmi_sensors0 3>;
-		...
-	};
-};
diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
new file mode 100644
index 000000000000..36072585fc45
--- /dev/null
+++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
@@ -0,0 +1,270 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2021 ARM Ltd.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: System Control and Management Interface (SCMI) Message Protocol bindings
+
+maintainers:
+  - Sudeep Holla <sudeep.holla@arm.com>
+
+description: |
+  The SCMI is intended to allow agents such as OSPM to manage various functions
+  that are provided by the hardware platform it is running on, including power
+  and performance functions.
+
+  This binding is intended to define the interface the firmware implementing
+  the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control
+  and Management Interface Platform Design Document")[0] provide for OSPM in
+  the device tree.
+
+  [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
+
+properties:
+  $nodename:
+    const: scmi
+
+  compatible:
+    oneOf:
+      - description: SCMI compliant firmware with mailbox transport
+        items:
+          - const: arm,scmi
+      - description: SCMI compliant firmware with ARM SMC/HVC transport
+        items:
+          - const: arm,scmi-smc
+
+  mbox-names:
+    description: |
+      Specifies the mailboxes used to communicate with SCMI compliant
+      firmware.
+    items:
+      - const: tx
+      - const: rx
+
+  mboxes:
+    description: |
+      List of phandle and mailbox channel specifiers. It should contain
+      exactly one or two mailboxes, one for transmitting messages("tx")
+      and another optional for receiving the notifications("rx") if supported.
+    minItems: 1
+    maxItems: 2
+
+  shmem:
+    description: |
+      List of phandle pointing to the shared memory(SHM) area, for each
+      transport channel specified.
+    minItems: 1
+    maxItems: 2
+
+  '#address-cells':
+    description: |
+      The address cells maps to protocol identifier for a given sub-node.
+    const: 1
+
+  '#size-cells':
+    description: |
+      The size cells are not present as 'reg' property doesn't have any
+      size associated with it.
+    const: 0
+
+  arm,smc-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      SMC id required when using smc or hvc transports
+
+additionalProperties:
+  type: object
+
+patternProperties:
+  '^protocol@[0-9a-f]+$':
+    type: object
+    description: |
+      Each sub-node represents a protocol supported. If the platform
+      supports dedicated communication channel for a particular protocol,
+      then corresponding transport properties must be present.
+
+    properties:
+      reg:
+        maxItems: 1
+
+      '#clock-cells':
+        const: 1
+
+      '#reset-cells':
+        const: 1
+
+      '#power-domain-cells':
+        const: 1
+
+      '#thermal-sensor-cells':
+        const: 1
+
+required:
+  - compatible
+  - shmem
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: arm,scmi
+    then:
+      required:
+        - mboxes
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: arm,scmi-smc
+    then:
+      properties:
+        interrupts:
+          description: |
+            The interrupt that indicates message completion by the platform
+            rather than by the return of the smc call. This should not be used
+            except when the platform requires such behavior.
+
+        interrupt-names:
+          const: a2p
+
+      required:
+        - arm,smc-id
+
+examples:
+  - |
+    firmware {
+      scmi {
+        compatible = "arm,scmi";
+        mboxes = <&mhuB 0 0>,
+                 <&mhuB 0 1>;
+        mbox-names = "tx", "rx";
+        shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        scmi_devpd: protocol@11 {
+          reg = <0x11>;
+          #power-domain-cells = <1>;
+        };
+
+        scmi_dvfs: protocol@13 {
+          reg = <0x13>;
+          #clock-cells = <1>;
+        };
+
+        scmi_clk: protocol@14 {
+          reg = <0x14>;
+          #clock-cells = <1>;
+        };
+
+        scmi_sensors: protocol@15 {
+          reg = <0x15>;
+          #thermal-sensor-cells = <1>;
+        };
+
+        scmi_reset: protocol@16 {
+          reg = <0x16>;
+          #reset-cells = <1>;
+        };
+
+        scmi_voltage: protocol@17 {
+          reg = <0x17>;
+        };
+      };
+    };
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      sram@50000000 {
+        compatible = "mmio-sram";
+        reg = <0x0 0x50000000 0x0 0x10000>;
+
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges = <0 0x0 0x50000000 0x10000>;
+
+        cpu_scp_lpri: scp-sram-section@0 {
+          compatible = "arm,scmi-shmem";
+          reg = <0x0 0x200>;
+        };
+
+        cpu_scp_hpri: scp-sram-section@200 {
+          compatible = "arm,scmi-shmem";
+          reg = <0x200 0x200>;
+        };
+      };
+
+      mhuB: mailbox@2b2f0000 {
+        #mbox-cells = <2>;
+        compatible = "arm,mhu-doorbell", "arm,primecell";
+        reg = <0 0x2b2f0000 0 0x1000>;
+        interrupts = <0 36 4>, /* LP-NonSecure */
+                     <0 35 4>, /* HP-NonSecure */
+                     <0 37 4>; /* Secure */
+        clocks = <&clock 0 2 1>;
+        clock-names = "apb_pclk";
+      };
+
+      gpu@ffe40000 {
+        compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
+        reg = <0x0 0xffe40000 0x0 0x10000>;
+        interrupts = <0 160 4>, <0 161 4>, <0 162 4>;
+        interrupt-names = "job", "mmu", "gpu";
+        clocks = <&scmi_clk 1>;
+        power-domains = <&scmi_devpd 8>;
+        resets = <&scmi_reset 0>, <&scmi_reset 1>;
+      };
+
+      display@20930000 {
+        compatible = "intel,keembay-display";
+        reg = <0x0 0x20930000 0x0 0x3000>;
+        reg-names = "lcd";
+        interrupts = <0 33 4>;
+        clocks = <&scmi_clk 0x83>,
+                 <&scmi_clk 0x0>;
+        clock-names = "clk_lcd", "clk_pll0";
+
+        port {
+            disp_out: endpoint {
+                remote-endpoint = <&dsi_in>;
+            };
+        };
+      };
+
+      thermal-zones {
+        soc-thermal {
+          polling-delay-passive = <100>;
+          polling-delay = <1000>;
+          thermal-sensors = <&scmi_sensors0 3>;
+
+          trips {
+            mpu0_crit: mpu0_crit {
+              temperature = <125000>; /* milliCelsius */
+              hysteresis = <2000>; /* milliCelsius */
+              type = "critical";
+            };
+          };
+        };
+      };
+    };
+
+    cpus {
+      #size-cells = <0>;
+      #address-cells = <2>;
+
+      cpu@0 {
+        device_type = "cpu";
+        compatible = "arm,cortex-a57";
+        reg = <0x0 0x0>;
+        enable-method = "psci";
+        clocks = <&scmi_dvfs 0>;
+      };
+    };
+
+...
-- 
2.25.1


_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 8/8] dt-bindings: firmware: arm,scmi: Convert to json schema
  2021-05-26 18:28 ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
@ 2021-05-26 18:35   ` Sudeep Holla
  2021-05-27 20:15     ` [PATCH 8/8] dt-bindings: firmware: arm, scmi: " Rob Herring
  2021-05-27  6:37   ` Etienne Carriere
  2021-05-27 10:33   ` Cristian Marussi
  2 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-26 18:35 UTC (permalink / raw)
  To: devicetree
  Cc: linux-arm-kernel, Rob Herring, Cristian Marussi,
	Florian Fainelli, Jim Quinlan, Sudeep Holla, Etienne Carriere,
	Peter Hilber

On Wed, May 26, 2021 at 07:28:07PM +0100, Sudeep Holla wrote:
> Convert the old text format binding for System Control and Management Interface
> (SCMI) Message Protocol into the new and shiny YAML format.
> 
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Cristian Marussi <cristian.marussi@arm.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Jim Quinlan <jim2101024@gmail.com>
> Cc: Etienne Carriere <etienne.carriere@linaro.org>
> Cc: Peter Hilber <peter.hilber@opensynergy.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  .../devicetree/bindings/arm/arm,scmi.txt      | 224 ---------------
>  .../bindings/firmware/arm,scmi.yaml           | 270 ++++++++++++++++++
>  2 files changed, 270 insertions(+), 224 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
>  create mode 100644 Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> 
> Hi,
> 
> I have converted all the bindings except the below regulator part of the
> binding. This needs to be addressed before merging ofcourse. Just posting
> the remaining changes to get feedback and also ask suggestion for the below:
> 
>         scmi_voltage: protocol@17 {
>           reg = <0x17>;
>           regulators {
>             regulator_devX: regulator@0 {
>               reg = <0x0>;
>               regulator-max-microvolt = <3300000>;
>             };
> 
>             regulator_devY: regulator@9 {
>               reg = <0x9>;
>               regulator-min-microvolt = <500000>;
>               regulator-max-microvolt = <4200000>;
>             };
>           };
>         };
> 
> I will reply with things I have tried separately to avoid confusion with this
> the patch here.
>

Below is the patch I have tried. I even started without a separate binding
for scmi regulator. Irrespective of what I have tried so far, I keep getting
the same error, I even added '#address-cells' and '#size-cells' to the node
but makes no difference.

Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml
Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:62.19-31: Warning (reg_format): /example-0/firmware/scmi/protocol@17/regulators/regulator@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:67.19-31: Warning (reg_format): /example-0/firmware/scmi/protocol@17/regulators/regulator@9:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (pci_device_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (simple_bus_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:61.45-64.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@0: Relying on default #address-cells value
Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:61.45-64.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@0: Relying on default #size-cells value
Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:66.45-70.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@9: Relying on default #address-cells value
Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:66.45-70.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@9: Relying on default #size-cells value
Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (unique_unit_address): Failed prerequisite 'avoid_default_addr_size'
  CHECK   Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml


Regards,
Sudeep

--->8

diff --git c/Documentation/devicetree/bindings/firmware/arm,scmi.yaml i/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
index 36072585fc45..1fe23ef36adf 100644
--- c/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
+++ i/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
@@ -101,6 +101,10 @@ description: |
       '#thermal-sensor-cells':
         const: 1
 
+  '^regulator@[0-9]+$':
+    type: object
+    $ref: "/schemas/regulator/arm,scmi-regulator.yaml#"
+
 required:
   - compatible
   - shmem
@@ -173,6 +177,21 @@ description: |
 
         scmi_voltage: protocol@17 {
           reg = <0x17>;
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          regulators {
+            regulator_devX: regulator@0 {
+              reg = <0x0>;
+              regulator-max-microvolt = <3300000>;
+            };
+
+            regulator_devY: regulator@9 {
+              reg = <0x9>;
+              regulator-min-microvolt = <500000>;
+              regulator-max-microvolt = <4200000>;
+            };
+          };
         };
       };
     };
diff --git c/Documentation/devicetree/bindings/regulator/arm,scmi-regulator.yaml i/Documentation/devicetree/bindings/regulator/arm,scmi-regulator.yaml
new file mode 100644
index 000000000000..2111676e3494
--- /dev/null
+++ i/Documentation/devicetree/bindings/regulator/arm,scmi-regulator.yaml
@@ -0,0 +1,27 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/arm,scmi-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM SCMI controlled voltage regulators
+
+maintainers:
+  - Sudeep Holla <sudeep.holla@arm.com>
+
+description:
+  Any property defined as part of the core regulator binding, defined in
+  regulator.yaml, can also be used.
+
+allOf:
+  - $ref: "regulator.yaml#"
+
+properties:
+  reg:
+    maxItems: 1
+    description: Identifier for the voltage regulator.
+
+required:
+  - reg
+
+unevaluatedProperties: false

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 8/8] dt-bindings: firmware: arm, scmi: Convert to json schema
  2021-05-26 18:28 ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
  2021-05-26 18:35   ` Sudeep Holla
@ 2021-05-27  6:37   ` Etienne Carriere
  2021-05-27 10:53     ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
  2021-05-27 10:33   ` Cristian Marussi
  2 siblings, 1 reply; 28+ messages in thread
From: Etienne Carriere @ 2021-05-27  6:37 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: devicetree,
	moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
	Rob Herring, Cristian Marussi, Florian Fainelli, Jim Quinlan,
	Peter Hilber

Hello Sudeep,

On Wed, 26 May 2021 at 20:28, Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> Convert the old text format binding for System Control and Management Interface
> (SCMI) Message Protocol into the new and shiny YAML format.
>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Cristian Marussi <cristian.marussi@arm.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Jim Quinlan <jim2101024@gmail.com>
> Cc: Etienne Carriere <etienne.carriere@linaro.org>
> Cc: Peter Hilber <peter.hilber@opensynergy.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  .../devicetree/bindings/arm/arm,scmi.txt      | 224 ---------------
>  .../bindings/firmware/arm,scmi.yaml           | 270 ++++++++++++++++++
>  2 files changed, 270 insertions(+), 224 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
>  create mode 100644 Documentation/devicetree/bindings/firmware/arm,scmi.yaml
>
> Hi,
>
> I have converted all the bindings except the below regulator part of the
> binding. This needs to be addressed before merging ofcourse. Just posting
> the remaining changes to get feedback and also ask suggestion for the below:
>
>         scmi_voltage: protocol@17 {
>           reg = <0x17>;
>           regulators {
>             regulator_devX: regulator@0 {
>               reg = <0x0>;
>               regulator-max-microvolt = <3300000>;
>             };
>
>             regulator_devY: regulator@9 {
>               reg = <0x9>;
>               regulator-min-microvolt = <500000>;
>               regulator-max-microvolt = <4200000>;
>             };
>           };
>         };
>
> I will reply with things I have tried separately to avoid confusion with this
> the patch here.

Few minor typos, but LGTM for this part, aside a comment on SCMI
version reference.

Both old and new descriptions refer to SCMI v1.0 (DEN0056A) in both
description text and URL reference.
Not mentioning the version would age better. From the implementation,
versions are already well managed at discovery and enumeration so we
don't expect regressions due to spec version.

At:
  -  the SCMI as described in ARM document number ARM DEN 0056A ("ARM
System Control
  +  the SCMI as described in ARM document number ARM DEN 0056 ("ARM
System Control
and at:
  -  [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
  +  [0] https://developer.arm.com/documentation/den0056/latest

Regards,
Etienne

>
> diff --git a/Documentation/devicetree/bindings/arm/arm,scmi.txt b/Documentation/devicetree/bindings/arm/arm,scmi.txt
> deleted file mode 100644
> index b7be2000afcb..000000000000
> --- a/Documentation/devicetree/bindings/arm/arm,scmi.txt
> +++ /dev/null
> @@ -1,224 +0,0 @@
> -System Control and Management Interface (SCMI) Message Protocol
> -----------------------------------------------------------
> -
> -The SCMI is intended to allow agents such as OSPM to manage various functions
> -that are provided by the hardware platform it is running on, including power
> -and performance functions.
> -
> -This binding is intended to define the interface the firmware implementing
> -the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control
> -and Management Interface Platform Design Document")[0] provide for OSPM in
> -the device tree.
> -
> -Required properties:
> -
> -The scmi node with the following properties shall be under the /firmware/ node.
> -
> -- compatible : shall be "arm,scmi" or "arm,scmi-smc" for smc/hvc transports
> -- mboxes: List of phandle and mailbox channel specifiers. It should contain
> -         exactly one or two mailboxes, one for transmitting messages("tx")
> -         and another optional for receiving the notifications("rx") if
> -         supported.
> -- shmem : List of phandle pointing to the shared memory(SHM) area as per
> -         generic mailbox client binding.
> -- #address-cells : should be '1' if the device has sub-nodes, maps to
> -         protocol identifier for a given sub-node.
> -- #size-cells : should be '0' as 'reg' property doesn't have any size
> -         associated with it.
> -- arm,smc-id : SMC id required when using smc or hvc transports
> -
> -Optional properties:
> -
> -- mbox-names: shall be "tx" or "rx" depending on mboxes entries.
> -
> -- interrupts : when using smc or hvc transports, this optional
> -        property indicates that msg completion by the platform is indicated
> -        by an interrupt rather than by the return of the smc call. This
> -        should not be used except when the platform requires such behavior.
> -
> -- interrupt-names : if "interrupts" is present, interrupt-names must also
> -        be present and have the value "a2p".
> -
> -See Documentation/devicetree/bindings/mailbox/mailbox.txt for more details
> -about the generic mailbox controller and client driver bindings.
> -
> -The mailbox is the only permitted method of calling the SCMI firmware.
> -Mailbox doorbell is used as a mechanism to alert the presence of a
> -messages and/or notification.
> -
> -Each protocol supported shall have a sub-node with corresponding compatible
> -as described in the following sections. If the platform supports dedicated
> -communication channel for a particular protocol, the 3 properties namely:
> -mboxes, mbox-names and shmem shall be present in the sub-node corresponding
> -to that protocol.
> -
> -Clock/Performance bindings for the clocks/OPPs based on SCMI Message Protocol
> -------------------------------------------------------------
> -
> -This binding uses the common clock binding[1].
> -
> -Required properties:
> -- #clock-cells : Should be 1. Contains the Clock ID value used by SCMI commands.
> -
> -Power domain bindings for the power domains based on SCMI Message Protocol
> -------------------------------------------------------------
> -
> -This binding for the SCMI power domain providers uses the generic power
> -domain binding[2].
> -
> -Required properties:
> - - #power-domain-cells : Should be 1. Contains the device or the power
> -                        domain ID value used by SCMI commands.
> -
> -Regulator bindings for the SCMI Regulator based on SCMI Message Protocol
> -------------------------------------------------------------
> -An SCMI Regulator is permanently bound to a well defined SCMI Voltage Domain,
> -and should be always positioned as a root regulator.
> -It does not support any current operation.
> -
> -SCMI Regulators are grouped under a 'regulators' node which in turn is a child
> -of the SCMI Voltage protocol node inside the desired SCMI instance node.
> -
> -This binding uses the common regulator binding[6].
> -
> -Required properties:
> - - reg : shall identify an existent SCMI Voltage Domain.
> -
> -Sensor bindings for the sensors based on SCMI Message Protocol
> ---------------------------------------------------------------
> -SCMI provides an API to access the various sensors on the SoC.
> -
> -Required properties:
> -- #thermal-sensor-cells: should be set to 1. This property follows the
> -                        thermal device tree bindings[3].
> -
> -                        Valid cell values are raw identifiers (Sensor ID)
> -                        as used by the firmware. Refer to  platform details
> -                        for your implementation for the IDs to use.
> -
> -Reset signal bindings for the reset domains based on SCMI Message Protocol
> -------------------------------------------------------------
> -
> -This binding for the SCMI reset domain providers uses the generic reset
> -signal binding[5].
> -
> -Required properties:
> - - #reset-cells : Should be 1. Contains the reset domain ID value used
> -                 by SCMI commands.
> -
> -[0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
> -[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
> -[2] Documentation/devicetree/bindings/power/power-domain.yaml
> -[3] Documentation/devicetree/bindings/thermal/thermal*.yaml
> -[4] Documentation/devicetree/bindings/sram/sram.yaml
> -[5] Documentation/devicetree/bindings/reset/reset.txt
> -[6] Documentation/devicetree/bindings/regulator/regulator.yaml
> -
> -Example:
> -
> -sram@50000000 {
> -       compatible = "mmio-sram";
> -       reg = <0x0 0x50000000 0x0 0x10000>;
> -
> -       #address-cells = <1>;
> -       #size-cells = <1>;
> -       ranges = <0 0x0 0x50000000 0x10000>;
> -
> -       cpu_scp_lpri: scp-shmem@0 {
> -               compatible = "arm,scmi-shmem";
> -               reg = <0x0 0x200>;
> -       };
> -
> -       cpu_scp_hpri: scp-shmem@200 {
> -               compatible = "arm,scmi-shmem";
> -               reg = <0x200 0x200>;
> -       };
> -};
> -
> -mailbox@40000000 {
> -       ....
> -       #mbox-cells = <1>;
> -       reg = <0x0 0x40000000 0x0 0x10000>;
> -};
> -
> -firmware {
> -
> -       ...
> -
> -       scmi {
> -               compatible = "arm,scmi";
> -               mboxes = <&mailbox 0 &mailbox 1>;
> -               mbox-names = "tx", "rx";
> -               shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
> -               #address-cells = <1>;
> -               #size-cells = <0>;
> -
> -               scmi_devpd: protocol@11 {
> -                       reg = <0x11>;
> -                       #power-domain-cells = <1>;
> -               };
> -
> -               scmi_dvfs: protocol@13 {
> -                       reg = <0x13>;
> -                       #clock-cells = <1>;
> -               };
> -
> -               scmi_clk: protocol@14 {
> -                       reg = <0x14>;
> -                       #clock-cells = <1>;
> -               };
> -
> -               scmi_sensors0: protocol@15 {
> -                       reg = <0x15>;
> -                       #thermal-sensor-cells = <1>;
> -               };
> -
> -               scmi_reset: protocol@16 {
> -                       reg = <0x16>;
> -                       #reset-cells = <1>;
> -               };
> -
> -               scmi_voltage: protocol@17 {
> -                       reg = <0x17>;
> -
> -                       regulators {
> -                               regulator_devX: regulator@0 {
> -                                       reg = <0x0>;
> -                                       regulator-max-microvolt = <3300000>;
> -                               };
> -
> -                               regulator_devY: regulator@9 {
> -                                       reg = <0x9>;
> -                                       regulator-min-microvolt = <500000>;
> -                                       regulator-max-microvolt = <4200000>;
> -                               };
> -
> -                               ...
> -                       };
> -               };
> -       };
> -};
> -
> -cpu@0 {
> -       ...
> -       reg = <0 0>;
> -       clocks = <&scmi_dvfs 0>;
> -};
> -
> -hdlcd@7ff60000 {
> -       ...
> -       reg = <0 0x7ff60000 0 0x1000>;
> -       clocks = <&scmi_clk 4>;
> -       power-domains = <&scmi_devpd 1>;
> -       resets = <&scmi_reset 10>;
> -};
> -
> -thermal-zones {
> -       soc_thermal {
> -               polling-delay-passive = <100>;
> -               polling-delay = <1000>;
> -                                       /* sensor ID */
> -               thermal-sensors = <&scmi_sensors0 3>;
> -               ...
> -       };
> -};
> diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> new file mode 100644
> index 000000000000..36072585fc45
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> @@ -0,0 +1,270 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2021 ARM Ltd.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: System Control and Management Interface (SCMI) Message Protocol bindings
> +
> +maintainers:
> +  - Sudeep Holla <sudeep.holla@arm.com>
> +
> +description: |
> +  The SCMI is intended to allow agents such as OSPM to manage various functions
> +  that are provided by the hardware platform it is running on, including power
> +  and performance functions.
> +
> +  This binding is intended to define the interface the firmware implementing
> +  the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control
> +  and Management Interface Platform Design Document")[0] provide for OSPM in
> +  the device tree.
> +
> +  [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
> +
> +properties:
> +  $nodename:
> +    const: scmi
> +
> +  compatible:
> +    oneOf:
> +      - description: SCMI compliant firmware with mailbox transport
> +        items:
> +          - const: arm,scmi
> +      - description: SCMI compliant firmware with ARM SMC/HVC transport
> +        items:
> +          - const: arm,scmi-smc
> +
> +  mbox-names:
> +    description: |
> +      Specifies the mailboxes used to communicate with SCMI compliant
> +      firmware.
> +    items:
> +      - const: tx
> +      - const: rx
> +
> +  mboxes:
> +    description: |
> +      List of phandle and mailbox channel specifiers. It should contain
> +      exactly one or two mailboxes, one for transmitting messages("tx")
> +      and another optional for receiving the notifications("rx") if supported.
> +    minItems: 1
> +    maxItems: 2
> +
> +  shmem:
> +    description: |
> +      List of phandle pointing to the shared memory(SHM) area, for each
> +      transport channel specified.
> +    minItems: 1
> +    maxItems: 2
> +
> +  '#address-cells':
> +    description: |
> +      The address cells maps to protocol identifier for a given sub-node.

s/maps/map/

> +    const: 1
> +
> +  '#size-cells':
> +    description: |
> +      The size cells are not present as 'reg' property doesn't have any
> +      size associated with it.
> +    const: 0
> +
> +  arm,smc-id:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      SMC id required when using smc or hvc transports
> +
> +additionalProperties:
> +  type: object
> +
> +patternProperties:
> +  '^protocol@[0-9a-f]+$':
> +    type: object
> +    description: |
> +      Each sub-node represents a protocol supported. If the platform
> +      supports dedicated communication channel for a particular protocol,

s/supports a dedicated/

> +      then corresponding transport properties must be present.
> +
> +    properties:
> +      reg:
> +        maxItems: 1
> +
> +      '#clock-cells':
> +        const: 1
> +
> +      '#reset-cells':
> +        const: 1
> +
> +      '#power-domain-cells':
> +        const: 1
> +
> +      '#thermal-sensor-cells':
> +        const: 1
> +
> +required:
> +  - compatible
> +  - shmem
> +
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: arm,scmi
> +    then:
> +      required:
> +        - mboxes
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: arm,scmi-smc
> +    then:
> +      properties:
> +        interrupts:
> +          description: |
> +            The interrupt that indicates message completion by the platform
> +            rather than by the return of the smc call. This should not be used
> +            except when the platform requires such behavior.
> +
> +        interrupt-names:
> +          const: a2p
> +
> +      required:
> +        - arm,smc-id
> +
> +examples:
> +  - |
> +    firmware {
> +      scmi {
> +        compatible = "arm,scmi";
> +        mboxes = <&mhuB 0 0>,
> +                 <&mhuB 0 1>;
> +        mbox-names = "tx", "rx";
> +        shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
> +
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        scmi_devpd: protocol@11 {
> +          reg = <0x11>;
> +          #power-domain-cells = <1>;
> +        };
> +
> +        scmi_dvfs: protocol@13 {
> +          reg = <0x13>;
> +          #clock-cells = <1>;
> +        };
> +
> +        scmi_clk: protocol@14 {
> +          reg = <0x14>;
> +          #clock-cells = <1>;
> +        };
> +
> +        scmi_sensors: protocol@15 {
> +          reg = <0x15>;
> +          #thermal-sensor-cells = <1>;
> +        };
> +
> +        scmi_reset: protocol@16 {
> +          reg = <0x16>;
> +          #reset-cells = <1>;
> +        };
> +
> +        scmi_voltage: protocol@17 {
> +          reg = <0x17>;
> +        };
> +      };
> +    };
> +
> +    soc {
> +      #address-cells = <2>;
> +      #size-cells = <2>;
> +
> +      sram@50000000 {
> +        compatible = "mmio-sram";
> +        reg = <0x0 0x50000000 0x0 0x10000>;
> +
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0 0x0 0x50000000 0x10000>;
> +
> +        cpu_scp_lpri: scp-sram-section@0 {
> +          compatible = "arm,scmi-shmem";
> +          reg = <0x0 0x200>;
> +        };
> +
> +        cpu_scp_hpri: scp-sram-section@200 {
> +          compatible = "arm,scmi-shmem";
> +          reg = <0x200 0x200>;
> +        };
> +      };
> +
> +      mhuB: mailbox@2b2f0000 {
> +        #mbox-cells = <2>;
> +        compatible = "arm,mhu-doorbell", "arm,primecell";
> +        reg = <0 0x2b2f0000 0 0x1000>;
> +        interrupts = <0 36 4>, /* LP-NonSecure */
> +                     <0 35 4>, /* HP-NonSecure */
> +                     <0 37 4>; /* Secure */
> +        clocks = <&clock 0 2 1>;
> +        clock-names = "apb_pclk";
> +      };
> +
> +      gpu@ffe40000 {
> +        compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
> +        reg = <0x0 0xffe40000 0x0 0x10000>;
> +        interrupts = <0 160 4>, <0 161 4>, <0 162 4>;
> +        interrupt-names = "job", "mmu", "gpu";
> +        clocks = <&scmi_clk 1>;
> +        power-domains = <&scmi_devpd 8>;
> +        resets = <&scmi_reset 0>, <&scmi_reset 1>;
> +      };
> +
> +      display@20930000 {
> +        compatible = "intel,keembay-display";
> +        reg = <0x0 0x20930000 0x0 0x3000>;
> +        reg-names = "lcd";
> +        interrupts = <0 33 4>;
> +        clocks = <&scmi_clk 0x83>,
> +                 <&scmi_clk 0x0>;
> +        clock-names = "clk_lcd", "clk_pll0";
> +
> +        port {
> +            disp_out: endpoint {
> +                remote-endpoint = <&dsi_in>;
> +            };
> +        };
> +      };
> +
> +      thermal-zones {
> +        soc-thermal {
> +          polling-delay-passive = <100>;
> +          polling-delay = <1000>;
> +          thermal-sensors = <&scmi_sensors0 3>;
> +
> +          trips {
> +            mpu0_crit: mpu0_crit {
> +              temperature = <125000>; /* milliCelsius */
> +              hysteresis = <2000>; /* milliCelsius */
> +              type = "critical";
> +            };
> +          };
> +        };
> +      };
> +    };
> +
> +    cpus {
> +      #size-cells = <0>;
> +      #address-cells = <2>;
> +
> +      cpu@0 {
> +        device_type = "cpu";
> +        compatible = "arm,cortex-a57";
> +        reg = <0x0 0x0>;
> +        enable-method = "psci";
> +        clocks = <&scmi_dvfs 0>;
> +      };
> +    };
> +
> +...
> --
> 2.25.1
>

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 8/8] dt-bindings: firmware: arm,scmi: Convert to json schema
  2021-05-26 18:28 ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
  2021-05-26 18:35   ` Sudeep Holla
  2021-05-27  6:37   ` Etienne Carriere
@ 2021-05-27 10:33   ` Cristian Marussi
  2021-05-27 10:49     ` Sudeep Holla
  2 siblings, 1 reply; 28+ messages in thread
From: Cristian Marussi @ 2021-05-27 10:33 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: devicetree, linux-arm-kernel, Rob Herring, Florian Fainelli,
	Jim Quinlan, Etienne Carriere, Peter Hilber

Hi Sudeep,

Some feedback down below.

On Wed, May 26, 2021 at 07:28:07PM +0100, Sudeep Holla wrote:
> Convert the old text format binding for System Control and Management Interface
> (SCMI) Message Protocol into the new and shiny YAML format.
> 
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Cristian Marussi <cristian.marussi@arm.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Jim Quinlan <jim2101024@gmail.com>
> Cc: Etienne Carriere <etienne.carriere@linaro.org>
> Cc: Peter Hilber <peter.hilber@opensynergy.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  .../devicetree/bindings/arm/arm,scmi.txt      | 224 ---------------
>  .../bindings/firmware/arm,scmi.yaml           | 270 ++++++++++++++++++
>  2 files changed, 270 insertions(+), 224 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
>  create mode 100644 Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> 
> Hi,
> 
> I have converted all the bindings except the below regulator part of the
> binding. This needs to be addressed before merging ofcourse. Just posting
> the remaining changes to get feedback and also ask suggestion for the below:
> 
>         scmi_voltage: protocol@17 {
>           reg = <0x17>;
>           regulators {
>             regulator_devX: regulator@0 {
>               reg = <0x0>;
>               regulator-max-microvolt = <3300000>;
>             };
> 
>             regulator_devY: regulator@9 {
>               reg = <0x9>;
>               regulator-min-microvolt = <500000>;
>               regulator-max-microvolt = <4200000>;
>             };
>           };
>         };
> 
> I will reply with things I have tried separately to avoid confusion with this
> the patch here.
> 
> diff --git a/Documentation/devicetree/bindings/arm/arm,scmi.txt b/Documentation/devicetree/bindings/arm/arm,scmi.txt
> deleted file mode 100644
> index b7be2000afcb..000000000000
> --- a/Documentation/devicetree/bindings/arm/arm,scmi.txt
> +++ /dev/null
> @@ -1,224 +0,0 @@
> -System Control and Management Interface (SCMI) Message Protocol
> -----------------------------------------------------------
> -
> -The SCMI is intended to allow agents such as OSPM to manage various functions
> -that are provided by the hardware platform it is running on, including power
> -and performance functions.
> -
> -This binding is intended to define the interface the firmware implementing
> -the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control
> -and Management Interface Platform Design Document")[0] provide for OSPM in
> -the device tree.
> -
> -Required properties:
> -
> -The scmi node with the following properties shall be under the /firmware/ node.
> -
> -- compatible : shall be "arm,scmi" or "arm,scmi-smc" for smc/hvc transports
> -- mboxes: List of phandle and mailbox channel specifiers. It should contain
> -	  exactly one or two mailboxes, one for transmitting messages("tx")
> -	  and another optional for receiving the notifications("rx") if
> -	  supported.
> -- shmem : List of phandle pointing to the shared memory(SHM) area as per
> -	  generic mailbox client binding.
> -- #address-cells : should be '1' if the device has sub-nodes, maps to
> -	  protocol identifier for a given sub-node.
> -- #size-cells : should be '0' as 'reg' property doesn't have any size
> -	  associated with it.
> -- arm,smc-id : SMC id required when using smc or hvc transports
> -
> -Optional properties:
> -
> -- mbox-names: shall be "tx" or "rx" depending on mboxes entries.
> -
> -- interrupts : when using smc or hvc transports, this optional
> -	 property indicates that msg completion by the platform is indicated
> -	 by an interrupt rather than by the return of the smc call. This
> -	 should not be used except when the platform requires such behavior.
> -
> -- interrupt-names : if "interrupts" is present, interrupt-names must also
> -	 be present and have the value "a2p".
> -
> -See Documentation/devicetree/bindings/mailbox/mailbox.txt for more details
> -about the generic mailbox controller and client driver bindings.
> -
> -The mailbox is the only permitted method of calling the SCMI firmware.
> -Mailbox doorbell is used as a mechanism to alert the presence of a
> -messages and/or notification.
> -
> -Each protocol supported shall have a sub-node with corresponding compatible
> -as described in the following sections. If the platform supports dedicated
> -communication channel for a particular protocol, the 3 properties namely:
> -mboxes, mbox-names and shmem shall be present in the sub-node corresponding
> -to that protocol.
> -
> -Clock/Performance bindings for the clocks/OPPs based on SCMI Message Protocol
> -------------------------------------------------------------
> -
> -This binding uses the common clock binding[1].
> -
> -Required properties:
> -- #clock-cells : Should be 1. Contains the Clock ID value used by SCMI commands.
> -
> -Power domain bindings for the power domains based on SCMI Message Protocol
> -------------------------------------------------------------
> -
> -This binding for the SCMI power domain providers uses the generic power
> -domain binding[2].
> -
> -Required properties:
> - - #power-domain-cells : Should be 1. Contains the device or the power
> -			 domain ID value used by SCMI commands.
> -
> -Regulator bindings for the SCMI Regulator based on SCMI Message Protocol
> -------------------------------------------------------------
> -An SCMI Regulator is permanently bound to a well defined SCMI Voltage Domain,
> -and should be always positioned as a root regulator.
> -It does not support any current operation.
> -
> -SCMI Regulators are grouped under a 'regulators' node which in turn is a child
> -of the SCMI Voltage protocol node inside the desired SCMI instance node.
> -
> -This binding uses the common regulator binding[6].
> -
> -Required properties:
> - - reg : shall identify an existent SCMI Voltage Domain.
> -
> -Sensor bindings for the sensors based on SCMI Message Protocol
> ---------------------------------------------------------------
> -SCMI provides an API to access the various sensors on the SoC.
> -
> -Required properties:
> -- #thermal-sensor-cells: should be set to 1. This property follows the
> -			 thermal device tree bindings[3].
> -
> -			 Valid cell values are raw identifiers (Sensor ID)
> -			 as used by the firmware. Refer to  platform details
> -			 for your implementation for the IDs to use.
> -
> -Reset signal bindings for the reset domains based on SCMI Message Protocol
> -------------------------------------------------------------
> -
> -This binding for the SCMI reset domain providers uses the generic reset
> -signal binding[5].
> -
> -Required properties:
> - - #reset-cells : Should be 1. Contains the reset domain ID value used
> -		  by SCMI commands.
> -
> -[0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
> -[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
> -[2] Documentation/devicetree/bindings/power/power-domain.yaml
> -[3] Documentation/devicetree/bindings/thermal/thermal*.yaml
> -[4] Documentation/devicetree/bindings/sram/sram.yaml
> -[5] Documentation/devicetree/bindings/reset/reset.txt
> -[6] Documentation/devicetree/bindings/regulator/regulator.yaml
> -
> -Example:
> -
> -sram@50000000 {
> -	compatible = "mmio-sram";
> -	reg = <0x0 0x50000000 0x0 0x10000>;
> -
> -	#address-cells = <1>;
> -	#size-cells = <1>;
> -	ranges = <0 0x0 0x50000000 0x10000>;
> -
> -	cpu_scp_lpri: scp-shmem@0 {
> -		compatible = "arm,scmi-shmem";
> -		reg = <0x0 0x200>;
> -	};
> -
> -	cpu_scp_hpri: scp-shmem@200 {
> -		compatible = "arm,scmi-shmem";
> -		reg = <0x200 0x200>;
> -	};
> -};
> -
> -mailbox@40000000 {
> -	....
> -	#mbox-cells = <1>;
> -	reg = <0x0 0x40000000 0x0 0x10000>;
> -};
> -
> -firmware {
> -
> -	...
> -
> -	scmi {
> -		compatible = "arm,scmi";
> -		mboxes = <&mailbox 0 &mailbox 1>;
> -		mbox-names = "tx", "rx";
> -		shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		scmi_devpd: protocol@11 {
> -			reg = <0x11>;
> -			#power-domain-cells = <1>;
> -		};
> -
> -		scmi_dvfs: protocol@13 {
> -			reg = <0x13>;
> -			#clock-cells = <1>;
> -		};
> -
> -		scmi_clk: protocol@14 {
> -			reg = <0x14>;
> -			#clock-cells = <1>;
> -		};
> -
> -		scmi_sensors0: protocol@15 {
> -			reg = <0x15>;
> -			#thermal-sensor-cells = <1>;
> -		};
> -
> -		scmi_reset: protocol@16 {
> -			reg = <0x16>;
> -			#reset-cells = <1>;
> -		};
> -
> -		scmi_voltage: protocol@17 {
> -			reg = <0x17>;
> -
> -			regulators {
> -				regulator_devX: regulator@0 {
> -					reg = <0x0>;
> -					regulator-max-microvolt = <3300000>;
> -				};
> -
> -				regulator_devY: regulator@9 {
> -					reg = <0x9>;
> -					regulator-min-microvolt = <500000>;
> -					regulator-max-microvolt = <4200000>;
> -				};
> -
> -				...
> -			};
> -		};
> -	};
> -};
> -
> -cpu@0 {
> -	...
> -	reg = <0 0>;
> -	clocks = <&scmi_dvfs 0>;
> -};
> -
> -hdlcd@7ff60000 {
> -	...
> -	reg = <0 0x7ff60000 0 0x1000>;
> -	clocks = <&scmi_clk 4>;
> -	power-domains = <&scmi_devpd 1>;
> -	resets = <&scmi_reset 10>;
> -};
> -
> -thermal-zones {
> -	soc_thermal {
> -		polling-delay-passive = <100>;
> -		polling-delay = <1000>;
> -					/* sensor ID */
> -		thermal-sensors = <&scmi_sensors0 3>;
> -		...
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> new file mode 100644
> index 000000000000..36072585fc45
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> @@ -0,0 +1,270 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2021 ARM Ltd.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: System Control and Management Interface (SCMI) Message Protocol bindings
> +
> +maintainers:
> +  - Sudeep Holla <sudeep.holla@arm.com>
> +
> +description: |
> +  The SCMI is intended to allow agents such as OSPM to manage various functions
> +  that are provided by the hardware platform it is running on, including power
> +  and performance functions.
> +
> +  This binding is intended to define the interface the firmware implementing
> +  the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control
> +  and Management Interface Platform Design Document")[0] provide for OSPM in
> +  the device tree.
> +
> +  [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
> +
> +properties:
> +  $nodename:
> +    const: scmi
> +
> +  compatible:
> +    oneOf:
> +      - description: SCMI compliant firmware with mailbox transport
> +        items:
> +          - const: arm,scmi
> +      - description: SCMI compliant firmware with ARM SMC/HVC transport
> +        items:
> +          - const: arm,scmi-smc
> +
> +  mbox-names:
> +    description: |
> +      Specifies the mailboxes used to communicate with SCMI compliant
> +      firmware.
> +    items:
> +      - const: tx
> +      - const: rx
> +
> +  mboxes:
> +    description: |
> +      List of phandle and mailbox channel specifiers. It should contain
> +      exactly one or two mailboxes, one for transmitting messages("tx")
> +      and another optional for receiving the notifications("rx") if supported.
> +    minItems: 1
> +    maxItems: 2
> +
> +  shmem:
> +    description: |
> +      List of phandle pointing to the shared memory(SHM) area, for each
> +      transport channel specified.
> +    minItems: 1
> +    maxItems: 2
> +
> +  '#address-cells':
> +    description: |
> +      The address cells maps to protocol identifier for a given sub-node.
> +    const: 1
> +
> +  '#size-cells':
> +    description: |
> +      The size cells are not present as 'reg' property doesn't have any
> +      size associated with it.
> +    const: 0
> +
> +  arm,smc-id:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      SMC id required when using smc or hvc transports
> +
> +additionalProperties:
> +  type: object
> +
> +patternProperties:
> +  '^protocol@[0-9a-f]+$':
> +    type: object
> +    description: |
> +      Each sub-node represents a protocol supported. If the platform
> +      supports dedicated communication channel for a particular protocol,
> +      then corresponding transport properties must be present.
> +

Not sure if it's needed, but maybe a reference or an example to which
are the transport properties could be useful in this description.

> +    properties:
> +      reg:
> +        maxItems: 1
> +

Shouldn't be expressed that reg is required for these protocol
patternProperties ? (no sure how though...:D)

> +      '#clock-cells':
> +        const: 1
> +
> +      '#reset-cells':
> +        const: 1
> +
> +      '#power-domain-cells':
> +        const: 1
> +
> +      '#thermal-sensor-cells':
> +        const: 1
> +

Maybe it does not matter, but all the info present in the old .txt binding
about references to external std bindings like:

> -This binding for the SCMI power domain providers uses the generic
> power
> -domain binding[2].

is no more reported in yaml. Is it fine ?

> +required:
> +  - compatible
> +  - shmem

Indeed shmem is required by chance all the transports defined in this
binding, but it is not really something generally required, in fact
virtio transport won't require it.

But I'm not sure if it's better to move it now down under some kind of
if: arm,scmi|arm,scmi-smc or just do it later when virtio transport binding
will be defined/introduced.

> +
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: arm,scmi
> +    then:
> +      required:
> +        - mboxes
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: arm,scmi-smc
> +    then:
> +      properties:
> +        interrupts:
> +          description: |
> +            The interrupt that indicates message completion by the platform
> +            rather than by the return of the smc call. This should not be used
> +            except when the platform requires such behavior.
> +
> +        interrupt-names:
> +          const: a2p
> +
> +      required:
> +        - arm,smc-id
> +

Thanks,
Cristian

> +examples:
> +  - |
> +    firmware {
> +      scmi {
> +        compatible = "arm,scmi";
> +        mboxes = <&mhuB 0 0>,
> +                 <&mhuB 0 1>;
> +        mbox-names = "tx", "rx";
> +        shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
> +
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        scmi_devpd: protocol@11 {
> +          reg = <0x11>;
> +          #power-domain-cells = <1>;
> +        };
> +
> +        scmi_dvfs: protocol@13 {
> +          reg = <0x13>;
> +          #clock-cells = <1>;
> +        };
> +
> +        scmi_clk: protocol@14 {
> +          reg = <0x14>;
> +          #clock-cells = <1>;
> +        };
> +
> +        scmi_sensors: protocol@15 {
> +          reg = <0x15>;
> +          #thermal-sensor-cells = <1>;
> +        };
> +
> +        scmi_reset: protocol@16 {
> +          reg = <0x16>;
> +          #reset-cells = <1>;
> +        };
> +
> +        scmi_voltage: protocol@17 {
> +          reg = <0x17>;
> +        };
> +      };
> +    };
> +
> +    soc {
> +      #address-cells = <2>;
> +      #size-cells = <2>;
> +
> +      sram@50000000 {
> +        compatible = "mmio-sram";
> +        reg = <0x0 0x50000000 0x0 0x10000>;
> +
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0 0x0 0x50000000 0x10000>;
> +
> +        cpu_scp_lpri: scp-sram-section@0 {
> +          compatible = "arm,scmi-shmem";
> +          reg = <0x0 0x200>;
> +        };
> +
> +        cpu_scp_hpri: scp-sram-section@200 {
> +          compatible = "arm,scmi-shmem";
> +          reg = <0x200 0x200>;
> +        };
> +      };
> +
> +      mhuB: mailbox@2b2f0000 {
> +        #mbox-cells = <2>;
> +        compatible = "arm,mhu-doorbell", "arm,primecell";
> +        reg = <0 0x2b2f0000 0 0x1000>;
> +        interrupts = <0 36 4>, /* LP-NonSecure */
> +                     <0 35 4>, /* HP-NonSecure */
> +                     <0 37 4>; /* Secure */
> +        clocks = <&clock 0 2 1>;
> +        clock-names = "apb_pclk";
> +      };
> +
> +      gpu@ffe40000 {
> +        compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
> +        reg = <0x0 0xffe40000 0x0 0x10000>;
> +        interrupts = <0 160 4>, <0 161 4>, <0 162 4>;
> +        interrupt-names = "job", "mmu", "gpu";
> +        clocks = <&scmi_clk 1>;
> +        power-domains = <&scmi_devpd 8>;
> +        resets = <&scmi_reset 0>, <&scmi_reset 1>;
> +      };
> +
> +      display@20930000 {
> +        compatible = "intel,keembay-display";
> +        reg = <0x0 0x20930000 0x0 0x3000>;
> +        reg-names = "lcd";
> +        interrupts = <0 33 4>;
> +        clocks = <&scmi_clk 0x83>,
> +                 <&scmi_clk 0x0>;
> +        clock-names = "clk_lcd", "clk_pll0";
> +
> +        port {
> +            disp_out: endpoint {
> +                remote-endpoint = <&dsi_in>;
> +            };
> +        };
> +      };
> +
> +      thermal-zones {
> +        soc-thermal {
> +          polling-delay-passive = <100>;
> +          polling-delay = <1000>;
> +          thermal-sensors = <&scmi_sensors0 3>;
> +
> +          trips {
> +            mpu0_crit: mpu0_crit {
> +              temperature = <125000>; /* milliCelsius */
> +              hysteresis = <2000>; /* milliCelsius */
> +              type = "critical";
> +            };
> +          };
> +        };
> +      };
> +    };
> +
> +    cpus {
> +      #size-cells = <0>;
> +      #address-cells = <2>;
> +
> +      cpu@0 {
> +        device_type = "cpu";
> +        compatible = "arm,cortex-a57";
> +        reg = <0x0 0x0>;
> +        enable-method = "psci";
> +        clocks = <&scmi_dvfs 0>;
> +      };
> +    };
> +
> +...
> -- 
> 2.25.1
> 

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 8/8] dt-bindings: firmware: arm,scmi: Convert to json schema
  2021-05-27 10:33   ` Cristian Marussi
@ 2021-05-27 10:49     ` Sudeep Holla
  0 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-27 10:49 UTC (permalink / raw)
  To: Cristian Marussi
  Cc: devicetree, linux-arm-kernel, Rob Herring, Florian Fainelli,
	Jim Quinlan, Etienne Carriere, Peter Hilber

On Thu, May 27, 2021 at 11:33:23AM +0100, Cristian Marussi wrote:
> Hi Sudeep,
>
> Some feedback down below.
>
> On Wed, May 26, 2021 at 07:28:07PM +0100, Sudeep Holla wrote:

[...]

> > +patternProperties:
> > +  '^protocol@[0-9a-f]+$':
> > +    type: object
> > +    description: |
> > +      Each sub-node represents a protocol supported. If the platform
> > +      supports dedicated communication channel for a particular protocol,
> > +      then corresponding transport properties must be present.
> > +
>
> Not sure if it's needed, but maybe a reference or an example to which
> are the transport properties could be useful in this description.
>

Good point, I will try to add that example.

> > +    properties:
> > +      reg:
> > +        maxItems: 1
> > +
>
> Shouldn't be expressed that reg is required for these protocol
> patternProperties ? (no sure how though...:D)
>

Hmm, right again need to explore on that.

> > +      '#clock-cells':
> > +        const: 1
> > +
> > +      '#reset-cells':
> > +        const: 1
> > +
> > +      '#power-domain-cells':
> > +        const: 1
> > +
> > +      '#thermal-sensor-cells':
> > +        const: 1
> > +
>
> Maybe it does not matter, but all the info present in the old .txt binding
> about references to external std bindings like:
>
> > -This binding for the SCMI power domain providers uses the generic
> > power
> > -domain binding[2].
>
> is no more reported in yaml. Is it fine ?
>

I think we can add it as $ref if there is yaml schema, I really don't
think old .txt based reference adds anything.

> > +required:
> > +  - compatible
> > +  - shmem
>
> Indeed shmem is required by chance all the transports defined in this
> binding, but it is not really something generally required, in fact
> virtio transport won't require it.
>
> But I'm not sure if it's better to move it now down under some kind of
> if: arm,scmi|arm,scmi-smc or just do it later when virtio transport binding
> will be defined/introduced.
>

Yes I was aware of that fact while I wrote this and expect it to be part of
virtio update.

--
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 8/8] dt-bindings: firmware: arm,scmi: Convert to json schema
  2021-05-27  6:37   ` Etienne Carriere
@ 2021-05-27 10:53     ` Sudeep Holla
  0 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-27 10:53 UTC (permalink / raw)
  To: Etienne Carriere
  Cc: devicetree, linux-arm-kernel, Rob Herring, Cristian Marussi,
	Florian Fainelli, Jim Quinlan, Peter Hilber

On Thu, May 27, 2021 at 08:37:58AM +0200, Etienne Carriere wrote:
> Hello Sudeep,
>
> On Wed, 26 May 2021 at 20:28, Sudeep Holla <sudeep.holla@arm.com> wrote:
> >
> > Convert the old text format binding for System Control and Management Interface
> > (SCMI) Message Protocol into the new and shiny YAML format.
> >
> > Cc: Rob Herring <robh+dt@kernel.org>
> > Cc: Cristian Marussi <cristian.marussi@arm.com>
> > Cc: Florian Fainelli <f.fainelli@gmail.com>
> > Cc: Jim Quinlan <jim2101024@gmail.com>
> > Cc: Etienne Carriere <etienne.carriere@linaro.org>
> > Cc: Peter Hilber <peter.hilber@opensynergy.com>
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >  .../devicetree/bindings/arm/arm,scmi.txt      | 224 ---------------
> >  .../bindings/firmware/arm,scmi.yaml           | 270 ++++++++++++++++++
> >  2 files changed, 270 insertions(+), 224 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
> >  create mode 100644 Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> >
> > Hi,
> >
> > I have converted all the bindings except the below regulator part of the
> > binding. This needs to be addressed before merging ofcourse. Just posting
> > the remaining changes to get feedback and also ask suggestion for the below:
> >
> >         scmi_voltage: protocol@17 {
> >           reg = <0x17>;
> >           regulators {
> >             regulator_devX: regulator@0 {
> >               reg = <0x0>;
> >               regulator-max-microvolt = <3300000>;
> >             };
> >
> >             regulator_devY: regulator@9 {
> >               reg = <0x9>;
> >               regulator-min-microvolt = <500000>;
> >               regulator-max-microvolt = <4200000>;
> >             };
> >           };
> >         };
> >
> > I will reply with things I have tried separately to avoid confusion with this
> > the patch here.
>
> Few minor typos, but LGTM for this part, aside a comment on SCMI
> version reference.
>
> Both old and new descriptions refer to SCMI v1.0 (DEN0056A) in both
> description text and URL reference.
> Not mentioning the version would age better. From the implementation,
> versions are already well managed at discovery and enumeration so we
> don't expect regressions due to spec version.
>
> At:
>   -  the SCMI as described in ARM document number ARM DEN 0056A ("ARM
> System Control
>   +  the SCMI as described in ARM document number ARM DEN 0056 ("ARM
> System Control
> and at:
>   -  [0] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
>   +  [0] https://developer.arm.com/documentation/den0056/latest
>

Good point, most of the recent specs, I am referring to latest. This predates
that practice. I will update this and fix typos pointed out. Thanks for taking
a look at this.

--
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here
  2021-05-26 18:28 ` [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here Sudeep Holla
@ 2021-05-27 14:23   ` Rob Herring
  2021-05-27 16:25     ` Sudeep Holla
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2021-05-27 14:23 UTC (permalink / raw)
  To: Sudeep Holla; +Cc: Cristian Marussi, devicetree, linux-arm-kernel, Rob Herring

On Wed, 26 May 2021 19:28:05 +0100, Sudeep Holla wrote:
> Now that the arm,scpi binding is converted to YAML format, the following
> errors are seen when doing `make DT_CHECKER_FLAGS=-m dt_binding_check`
> 
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:0:0: /example-1/soc/scpi: failed to match any schema with compatible: ['arm,scpi']
Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:0:0: /example-1/soc/scpi/power-domains-0: failed to match any schema with compatible: ['arm,scpi-power-domains']

See https://patchwork.ozlabs.org/patch/1484218

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.


_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 5/8] dt-bindings: firmware: arm, scpi: Convert to json schema
  2021-05-26 18:28 ` [PATCH 5/8] dt-bindings: firmware: arm,scpi: Convert " Sudeep Holla
@ 2021-05-27 14:23   ` Rob Herring
  2021-05-27 16:17     ` [PATCH 5/8] dt-bindings: firmware: arm,scpi: " Sudeep Holla
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2021-05-27 14:23 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: Cristian Marussi, devicetree, Jerome Brunet, Rob Herring,
	Kevin Hilman, linux-arm-kernel, Neil Armstrong

On Wed, 26 May 2021 19:28:04 +0100, Sudeep Holla wrote:
> Convert the old text format binding for System Control and Power Interface
> (SCPI) Message Protocol into the new and shiny YAML format.
> 
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Jerome Brunet <jbrunet@baylibre.com>
> Cc: Viresh Kumar <viresh.kumar@linaro.org
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  .../devicetree/bindings/arm/arm,scpi.txt      | 204 -------------
>  .../bindings/firmware/arm,scpi.yaml           | 284 ++++++++++++++++++
>  MAINTAINERS                                   |   2 +-
>  3 files changed, 285 insertions(+), 205 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/arm,scpi.txt
>  create mode 100644 Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml: scpi@2f000000: $nodename:0: 'scpi' was expected
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml: scpi@2f000000: reg: [[0, 788529152, 0, 512]] is not of type 'object'
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml: scpi@2f000000: 'shmem' is a required property
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scpi.yaml

See https://patchwork.ozlabs.org/patch/1484217

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.


_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 5/8] dt-bindings: firmware: arm,scpi: Convert to json schema
  2021-05-27 14:23   ` [PATCH 5/8] dt-bindings: firmware: arm, scpi: " Rob Herring
@ 2021-05-27 16:17     ` Sudeep Holla
  0 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-27 16:17 UTC (permalink / raw)
  To: Rob Herring
  Cc: Cristian Marussi, devicetree, Jerome Brunet, Rob Herring,
	Sudeep Holla, Kevin Hilman, linux-arm-kernel, Neil Armstrong

Hi Rob,

On Thu, May 27, 2021 at 09:23:27AM -0500, Rob Herring wrote:
> On Wed, 26 May 2021 19:28:04 +0100, Sudeep Holla wrote:
> > Convert the old text format binding for System Control and Power Interface
> > (SCPI) Message Protocol into the new and shiny YAML format.
> > 
> > Cc: Rob Herring <robh+dt@kernel.org>
> > Cc: Kevin Hilman <khilman@baylibre.com>
> > Cc: Neil Armstrong <narmstrong@baylibre.com>
> > Cc: Jerome Brunet <jbrunet@baylibre.com>
> > Cc: Viresh Kumar <viresh.kumar@linaro.org
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >  .../devicetree/bindings/arm/arm,scpi.txt      | 204 -------------
> >  .../bindings/firmware/arm,scpi.yaml           | 284 ++++++++++++++++++
> >  MAINTAINERS                                   |   2 +-
> >  3 files changed, 285 insertions(+), 205 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/arm/arm,scpi.txt
> >  create mode 100644 Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> > 
> 
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml: scpi@2f000000: $nodename:0: 'scpi' was expected
> 	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml: scpi@2f000000: reg: [[0, 788529152, 0, 512]] is not of type 'object'
> 	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml: scpi@2f000000: 'shmem' is a required property
> 	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> 
> See https://patchwork.ozlabs.org/patch/1484217
> 
> This check can fail if there are any dependencies. The base for a patch
> series is generally the most recent rc1.
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
> 
> pip3 install dtschema --upgrade
> 
> Please check and re-submit.
> 

I have fixed this in 6/8. I can merge them but since I wasn't aware of how
this might get merged, I split the patch. Converting to yaml triggered issue
with mhu yaml schema as the example is wrong.

-- 
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here
  2021-05-27 14:23   ` Rob Herring
@ 2021-05-27 16:25     ` Sudeep Holla
  2021-05-27 20:07       ` Rob Herring
  0 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-27 16:25 UTC (permalink / raw)
  To: Rob Herring
  Cc: Cristian Marussi, devicetree, linux-arm-kernel, Sudeep Holla,
	Rob Herring

On Thu, May 27, 2021 at 09:23:27AM -0500, Rob Herring wrote:
> On Wed, 26 May 2021 19:28:05 +0100, Sudeep Holla wrote:
> > Now that the arm,scpi binding is converted to YAML format, the following
> > errors are seen when doing `make DT_CHECKER_FLAGS=-m dt_binding_check`
> > 
> > 
> 
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:0:0: /example-1/soc/scpi: failed to match any schema with compatible: ['arm,scpi']
> Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:0:0: /example-1/soc/scpi/power-domains-0: failed to match any schema with compatible: ['arm,scpi-power-domains']
> 
> See https://patchwork.ozlabs.org/patch/1484218
> 
> This check can fail if there are any dependencies. The base for a patch
> series is generally the most recent rc1.
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
> 
> pip3 install dtschema --upgrade
> 
> Please check and re-submit.
> 

Just curious if this is built as past of the series as I am unable to hit
this issue. However I get this if I remove 5/8 which is adding the scpi
yaml schema. Am I missing something ?

-- 
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here
  2021-05-27 16:25     ` Sudeep Holla
@ 2021-05-27 20:07       ` Rob Herring
  2021-05-31  8:17         ` Sudeep Holla
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2021-05-27 20:07 UTC (permalink / raw)
  To: Sudeep Holla; +Cc: Cristian Marussi, devicetree, linux-arm-kernel

On Thu, May 27, 2021 at 11:25 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> On Thu, May 27, 2021 at 09:23:27AM -0500, Rob Herring wrote:
> > On Wed, 26 May 2021 19:28:05 +0100, Sudeep Holla wrote:
> > > Now that the arm,scpi binding is converted to YAML format, the following
> > > errors are seen when doing `make DT_CHECKER_FLAGS=-m dt_binding_check`
> > >
> > >
> >
> > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> > on your patch (DT_CHECKER_FLAGS is new in v5.13):
> >
> > yamllint warnings/errors:
> >
> > dtschema/dtc warnings/errors:
> > Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:0:0: /example-1/soc/scpi: failed to match any schema with compatible: ['arm,scpi']
> > Documentation/devicetree/bindings/mailbox/arm,mhu.example.dt.yaml:0:0: /example-1/soc/scpi/power-domains-0: failed to match any schema with compatible: ['arm,scpi-power-domains']
> >
> > See https://patchwork.ozlabs.org/patch/1484218
> >
> > This check can fail if there are any dependencies. The base for a patch
> > series is generally the most recent rc1.
> >
> > If you already ran 'make dt_binding_check' and didn't see the above
> > error(s), then make sure 'yamllint' is installed and dt-schema is up to
> > date:
> >
> > pip3 install dtschema --upgrade
> >
> > Please check and re-submit.
> >
>
> Just curious if this is built as past of the series as I am unable to hit
> this issue. However I get this if I remove 5/8 which is adding the scpi
> yaml schema. Am I missing something ?

The automated check does try to apply series, but runs checks a patch
at time and it resets the base if it gets an error on a patch. I think
switching patch 5 and 6 order should fix things. Don't worry about
that yet, I'll look at the rest of the series.

Rob

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 8/8] dt-bindings: firmware: arm, scmi: Convert to json schema
  2021-05-26 18:35   ` Sudeep Holla
@ 2021-05-27 20:15     ` Rob Herring
  0 siblings, 0 replies; 28+ messages in thread
From: Rob Herring @ 2021-05-27 20:15 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Florian Fainelli,
	Jim Quinlan, Etienne Carriere, Peter Hilber

On Wed, May 26, 2021 at 1:35 PM Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> On Wed, May 26, 2021 at 07:28:07PM +0100, Sudeep Holla wrote:
> > Convert the old text format binding for System Control and Management Interface
> > (SCMI) Message Protocol into the new and shiny YAML format.
> >
> > Cc: Rob Herring <robh+dt@kernel.org>
> > Cc: Cristian Marussi <cristian.marussi@arm.com>
> > Cc: Florian Fainelli <f.fainelli@gmail.com>
> > Cc: Jim Quinlan <jim2101024@gmail.com>
> > Cc: Etienne Carriere <etienne.carriere@linaro.org>
> > Cc: Peter Hilber <peter.hilber@opensynergy.com>
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >  .../devicetree/bindings/arm/arm,scmi.txt      | 224 ---------------
> >  .../bindings/firmware/arm,scmi.yaml           | 270 ++++++++++++++++++
> >  2 files changed, 270 insertions(+), 224 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
> >  create mode 100644 Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> >
> > Hi,
> >
> > I have converted all the bindings except the below regulator part of the
> > binding. This needs to be addressed before merging ofcourse. Just posting
> > the remaining changes to get feedback and also ask suggestion for the below:
> >
> >         scmi_voltage: protocol@17 {
> >           reg = <0x17>;
> >           regulators {
> >             regulator_devX: regulator@0 {
> >               reg = <0x0>;
> >               regulator-max-microvolt = <3300000>;
> >             };
> >
> >             regulator_devY: regulator@9 {
> >               reg = <0x9>;
> >               regulator-min-microvolt = <500000>;
> >               regulator-max-microvolt = <4200000>;
> >             };
> >           };
> >         };
> >
> > I will reply with things I have tried separately to avoid confusion with this
> > the patch here.
> >
>
> Below is the patch I have tried. I even started without a separate binding
> for scmi regulator. Irrespective of what I have tried so far, I keep getting
> the same error, I even added '#address-cells' and '#size-cells' to the node
> but makes no difference.
>
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:62.19-31: Warning (reg_format): /example-0/firmware/scmi/protocol@17/regulators/regulator@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:67.19-31: Warning (reg_format): /example-0/firmware/scmi/protocol@17/regulators/regulator@9:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (pci_device_reg): Failed prerequisite 'reg_format'
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (simple_bus_reg): Failed prerequisite 'reg_format'
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:61.45-64.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@0: Relying on default #address-cells value
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:61.45-64.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@0: Relying on default #size-cells value
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:66.45-70.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@9: Relying on default #address-cells value
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dts:66.45-70.19: Warning (avoid_default_addr_size): /example-0/firmware/scmi/protocol@17/regulators/regulator@9: Relying on default #size-cells value
> Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml: Warning (unique_unit_address): Failed prerequisite 'avoid_default_addr_size'
>   CHECK   Documentation/devicetree/bindings/firmware/arm,scmi.example.dt.yaml
>
>
> Regards,
> Sudeep
>
> --->8
>
> diff --git c/Documentation/devicetree/bindings/firmware/arm,scmi.yaml i/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> index 36072585fc45..1fe23ef36adf 100644
> --- c/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> +++ i/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> @@ -101,6 +101,10 @@ description: |
>        '#thermal-sensor-cells':
>          const: 1
>
> +  '^regulator@[0-9]+$':

You need to create the whole hierarchy. This is defining 'regulator@*'
nodes at the top level of the binding. You need 'regulators' property
under 'protocol@??' and then this under 'regulators.

Is the protocol number fixed? If so, you can add a 'protocol@17'
property in addition to the pattern.

> +    type: object
> +    $ref: "/schemas/regulator/arm,scmi-regulator.yaml#"
> +

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem to json schema
  2021-05-26 18:28 ` [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem " Sudeep Holla
@ 2021-05-27 20:25   ` Rob Herring
  2021-05-31  8:15     ` Sudeep Holla
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2021-05-27 20:25 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Kevin Hilman,
	Neil Armstrong, Jerome Brunet

On Wed, May 26, 2021 at 07:28:00PM +0100, Sudeep Holla wrote:
> Move the SRAM and shared memory binding for SCPI into the existing
> Generic on-chip SRAM. We just need to update the compatible list and
> there-by remove the whole old text format binding for the same.
> 
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Jerome Brunet <jbrunet@baylibre.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  .../devicetree/bindings/arm/arm,scpi.txt          | 15 ---------------
>  Documentation/devicetree/bindings/sram/sram.yaml  |  1 +
>  2 files changed, 1 insertion(+), 15 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/arm/arm,scpi.txt b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> index bcd6c3ec471e..bcb8b3d61e68 100644
> --- a/Documentation/devicetree/bindings/arm/arm,scpi.txt
> +++ b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> @@ -56,21 +56,6 @@ Sub-nodes
>  	node. It can be non linear and hence provide the mapping of identifiers
>  	into the clock-output-names array.
>  
> -SRAM and Shared Memory for SCPI
> --------------------------------
> -
> -A small area of SRAM is reserved for SCPI communication between application
> -processors and SCP.
> -
> -The properties should follow the generic mmio-sram description found in [3]
> -
> -Each sub-node represents the reserved area for SCPI.
> -
> -Required sub-node properties:
> -- reg : The base offset and size of the reserved area with the SRAM
> -- compatible : should be "arm,scp-shmem" for Non-secure SRAM based

> +            - arm,scpi-shmem

Which is correct? There's not a single other occurrance in the kernel 
tree of either.

Rob

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 7/8] dt-bindings: firmware: amlogic, scpi: Convert to json schema
  2021-05-26 18:28 ` [PATCH 7/8] dt-bindings: firmware: amlogic, scpi: Convert to json schema Sudeep Holla
@ 2021-05-27 20:33   ` Rob Herring
  2021-05-31  8:36     ` Sudeep Holla
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2021-05-27 20:33 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Kevin Hilman,
	Neil Armstrong, Jerome Brunet

On Wed, May 26, 2021 at 07:28:06PM +0100, Sudeep Holla wrote:
> Convert/merge the existing text format SCPI binding additions for
> amlogic,scpi into the common arm,scpi json scheme.
> 
> Couple of things to note:
> "amlogic,meson-gxbb-scpi" is always used with "arm,scpi-pre-1.0"
>  hence no need for separate "arm,scpi-pre-1.0" standalone entry and
> "amlogic,meson-gxbb-scpi-sensors" is used always with "arm,scpi-sensors"
> 
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Jerome Brunet <jbrunet@baylibre.com>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  .../devicetree/bindings/arm/amlogic,scpi.txt      | 15 ---------------
>  .../devicetree/bindings/firmware/arm,scpi.yaml    |  4 ++++
>  2 files changed, 4 insertions(+), 15 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/arm/amlogic,scpi.txt
> 
> diff --git a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt b/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
> deleted file mode 100644
> index ebfe302fb747..000000000000
> --- a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -System Control and Power Interface (SCPI) Message Protocol
> -(in addition to the standard binding in [0])
> -----------------------------------------------------------
> -Required properties
> -
> -- compatible : should be "amlogic,meson-gxbb-scpi"
> -
> -Sensor bindings for the sensors based on SCPI Message Protocol
> ---------------------------------------------------------------
> -SCPI provides an API to access the various sensors on the SoC.
> -
> -Required properties:
> -- compatible : should be "amlogic,meson-gxbb-scpi-sensors".
> -
> -[0] Documentation/devicetree/bindings/arm/arm,scpi.txt
> diff --git a/Documentation/devicetree/bindings/firmware/arm,scpi.yaml b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> index 9c115e9c1536..d1179a4ea4e9 100644
> --- a/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> +++ b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> @@ -34,6 +34,7 @@ description: |
>            to SCPI v1.0
>          items:
>            - const: arm,scpi-pre-1.0
> +          - const: amlogic,meson-gxbb-scpi

This says that compatible should be: "arm,scpi-pre-1.0", "amlogic,meson-gxbb-scpi"

The order would be wrong and you lost supporting 'arm,scpi-pre-1.0' by 
itself. You want an enum here if it is either one or another items list 
if it is 2 entries.

Rob

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem to json schema
  2021-05-27 20:25   ` Rob Herring
@ 2021-05-31  8:15     ` Sudeep Holla
  2021-05-31  8:20       ` Sudeep Holla
  0 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-31  8:15 UTC (permalink / raw)
  To: Rob Herring
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Kevin Hilman,
	Neil Armstrong, Jerome Brunet

On Thu, May 27, 2021 at 03:25:54PM -0500, Rob Herring wrote:
> On Wed, May 26, 2021 at 07:28:00PM +0100, Sudeep Holla wrote:
> > Move the SRAM and shared memory binding for SCPI into the existing
> > Generic on-chip SRAM. We just need to update the compatible list and
> > there-by remove the whole old text format binding for the same.
> > 
> > Cc: Rob Herring <robh+dt@kernel.org>
> > Cc: Kevin Hilman <khilman@baylibre.com>
> > Cc: Neil Armstrong <narmstrong@baylibre.com>
> > Cc: Jerome Brunet <jbrunet@baylibre.com>
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >  .../devicetree/bindings/arm/arm,scpi.txt          | 15 ---------------
> >  Documentation/devicetree/bindings/sram/sram.yaml  |  1 +
> >  2 files changed, 1 insertion(+), 15 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/arm/arm,scpi.txt b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > index bcd6c3ec471e..bcb8b3d61e68 100644
> > --- a/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > +++ b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > @@ -56,21 +56,6 @@ Sub-nodes
> >  	node. It can be non linear and hence provide the mapping of identifiers
> >  	into the clock-output-names array.
> >  
> > -SRAM and Shared Memory for SCPI
> > --------------------------------
> > -
> > -A small area of SRAM is reserved for SCPI communication between application
> > -processors and SCP.
> > -
> > -The properties should follow the generic mmio-sram description found in [3]
> > -
> > -Each sub-node represents the reserved area for SCPI.
> > -
> > -Required sub-node properties:
> > -- reg : The base offset and size of the reserved area with the SRAM
> > -- compatible : should be "arm,scp-shmem" for Non-secure SRAM based
>
> > +            - arm,scpi-shmem
>
> Which is correct? There's not a single other occurrance in the kernel 
> tree of either.
>

Right I was thinking removing it but wasn't sure if any downstream DTS
have used this as it has been in the binding for a while now.

--
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here
  2021-05-27 20:07       ` Rob Herring
@ 2021-05-31  8:17         ` Sudeep Holla
  0 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-31  8:17 UTC (permalink / raw)
  To: Rob Herring; +Cc: Cristian Marussi, devicetree, linux-arm-kernel

On Thu, May 27, 2021 at 03:07:39PM -0500, Rob Herring wrote:
> On Thu, May 27, 2021 at 11:25 AM Sudeep Holla <sudeep.holla@arm.com> wrote:

[...]

> > Just curious if this is built as past of the series as I am unable to hit
> > this issue. However I get this if I remove 5/8 which is adding the scpi
> > yaml schema. Am I missing something ?
>
> The automated check does try to apply series, but runs checks a patch
> at time and it resets the base if it gets an error on a patch. I think
> switching patch 5 and 6 order should fix things. Don't worry about
> that yet, I'll look at the rest of the series.
>

Ah OK, will re-order them. Thanks for the review.

--
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem to json schema
  2021-05-31  8:15     ` Sudeep Holla
@ 2021-05-31  8:20       ` Sudeep Holla
  2021-06-01 13:37         ` Rob Herring
  0 siblings, 1 reply; 28+ messages in thread
From: Sudeep Holla @ 2021-05-31  8:20 UTC (permalink / raw)
  To: Rob Herring
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Kevin Hilman,
	Neil Armstrong, Jerome Brunet

On Mon, May 31, 2021 at 09:15:48AM +0100, Sudeep Holla wrote:
> On Thu, May 27, 2021 at 03:25:54PM -0500, Rob Herring wrote:
> > On Wed, May 26, 2021 at 07:28:00PM +0100, Sudeep Holla wrote:
> > > Move the SRAM and shared memory binding for SCPI into the existing
> > > Generic on-chip SRAM. We just need to update the compatible list and
> > > there-by remove the whole old text format binding for the same.
> > > 
> > > Cc: Rob Herring <robh+dt@kernel.org>
> > > Cc: Kevin Hilman <khilman@baylibre.com>
> > > Cc: Neil Armstrong <narmstrong@baylibre.com>
> > > Cc: Jerome Brunet <jbrunet@baylibre.com>
> > > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > > ---
> > >  .../devicetree/bindings/arm/arm,scpi.txt          | 15 ---------------
> > >  Documentation/devicetree/bindings/sram/sram.yaml  |  1 +
> > >  2 files changed, 1 insertion(+), 15 deletions(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/arm/arm,scpi.txt b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > index bcd6c3ec471e..bcb8b3d61e68 100644
> > > --- a/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > +++ b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > @@ -56,21 +56,6 @@ Sub-nodes
> > >  	node. It can be non linear and hence provide the mapping of identifiers
> > >  	into the clock-output-names array.
> > >  
> > > -SRAM and Shared Memory for SCPI
> > > --------------------------------
> > > -
> > > -A small area of SRAM is reserved for SCPI communication between application
> > > -processors and SCP.
> > > -
> > > -The properties should follow the generic mmio-sram description found in [3]
> > > -
> > > -Each sub-node represents the reserved area for SCPI.
> > > -
> > > -Required sub-node properties:
> > > -- reg : The base offset and size of the reserved area with the SRAM
> > > -- compatible : should be "arm,scp-shmem" for Non-secure SRAM based
> >
> > > +            - arm,scpi-shmem
> >
> > Which is correct? There's not a single other occurrance in the kernel 
> > tree of either.
> >
> 
> Right I was thinking removing it but wasn't sure if any downstream DTS
> have used this as it has been in the binding for a while now.
> 

Sent it too early before I completed, we don't have explicit check for
these compatible in the code. We just use phandles directly.

--
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 7/8] dt-bindings: firmware: amlogic, scpi: Convert to json schema
  2021-05-27 20:33   ` Rob Herring
@ 2021-05-31  8:36     ` Sudeep Holla
  0 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-05-31  8:36 UTC (permalink / raw)
  To: Rob Herring
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Kevin Hilman,
	Neil Armstrong, Jerome Brunet

On Thu, May 27, 2021 at 03:33:27PM -0500, Rob Herring wrote:
> On Wed, May 26, 2021 at 07:28:06PM +0100, Sudeep Holla wrote:
> > Convert/merge the existing text format SCPI binding additions for
> > amlogic,scpi into the common arm,scpi json scheme.
> >
> > Couple of things to note:
> > "amlogic,meson-gxbb-scpi" is always used with "arm,scpi-pre-1.0"
> >  hence no need for separate "arm,scpi-pre-1.0" standalone entry and
> > "amlogic,meson-gxbb-scpi-sensors" is used always with "arm,scpi-sensors"
> >
> > Cc: Rob Herring <robh+dt@kernel.org>
> > Cc: Kevin Hilman <khilman@baylibre.com>
> > Cc: Neil Armstrong <narmstrong@baylibre.com>
> > Cc: Jerome Brunet <jbrunet@baylibre.com>
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >  .../devicetree/bindings/arm/amlogic,scpi.txt      | 15 ---------------
> >  .../devicetree/bindings/firmware/arm,scpi.yaml    |  4 ++++
> >  2 files changed, 4 insertions(+), 15 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/arm/amlogic,scpi.txt
> >
> > diff --git a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt b/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
> > deleted file mode 100644
> > index ebfe302fb747..000000000000
> > --- a/Documentation/devicetree/bindings/arm/amlogic,scpi.txt
> > +++ /dev/null
> > @@ -1,15 +0,0 @@
> > -System Control and Power Interface (SCPI) Message Protocol
> > -(in addition to the standard binding in [0])
> > -----------------------------------------------------------
> > -Required properties
> > -
> > -- compatible : should be "amlogic,meson-gxbb-scpi"
> > -
> > -Sensor bindings for the sensors based on SCPI Message Protocol
> > ---------------------------------------------------------------
> > -SCPI provides an API to access the various sensors on the SoC.
> > -
> > -Required properties:
> > -- compatible : should be "amlogic,meson-gxbb-scpi-sensors".
> > -
> > -[0] Documentation/devicetree/bindings/arm/arm,scpi.txt
> > diff --git a/Documentation/devicetree/bindings/firmware/arm,scpi.yaml b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> > index 9c115e9c1536..d1179a4ea4e9 100644
> > --- a/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> > +++ b/Documentation/devicetree/bindings/firmware/arm,scpi.yaml
> > @@ -34,6 +34,7 @@ description: |
> >            to SCPI v1.0
> >          items:
> >            - const: arm,scpi-pre-1.0
> > +          - const: amlogic,meson-gxbb-scpi
>
> This says that compatible should be: "arm,scpi-pre-1.0", "amlogic,meson-gxbb-scpi"
>
> The order would be wrong and you lost supporting 'arm,scpi-pre-1.0' by
> itself. You want an enum here if it is either one or another items list
> if it is 2 entries.
>

Ah right, I checked about the order and then forgot to update. The idea when
I wrote this was not to support arm,scpi-pre-1.0 by itself but recent found
some other user of SCPI binding. I better keep the support though it is not
in upstream DTS.

--
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem to json schema
  2021-05-31  8:20       ` Sudeep Holla
@ 2021-06-01 13:37         ` Rob Herring
  2021-06-01 13:53           ` Sudeep Holla
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2021-06-01 13:37 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Kevin Hilman,
	Neil Armstrong, Jerome Brunet

On Mon, May 31, 2021 at 3:20 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> On Mon, May 31, 2021 at 09:15:48AM +0100, Sudeep Holla wrote:
> > On Thu, May 27, 2021 at 03:25:54PM -0500, Rob Herring wrote:
> > > On Wed, May 26, 2021 at 07:28:00PM +0100, Sudeep Holla wrote:
> > > > Move the SRAM and shared memory binding for SCPI into the existing
> > > > Generic on-chip SRAM. We just need to update the compatible list and
> > > > there-by remove the whole old text format binding for the same.
> > > >
> > > > Cc: Rob Herring <robh+dt@kernel.org>
> > > > Cc: Kevin Hilman <khilman@baylibre.com>
> > > > Cc: Neil Armstrong <narmstrong@baylibre.com>
> > > > Cc: Jerome Brunet <jbrunet@baylibre.com>
> > > > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > > > ---
> > > >  .../devicetree/bindings/arm/arm,scpi.txt          | 15 ---------------
> > > >  Documentation/devicetree/bindings/sram/sram.yaml  |  1 +
> > > >  2 files changed, 1 insertion(+), 15 deletions(-)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/arm/arm,scpi.txt b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > > index bcd6c3ec471e..bcb8b3d61e68 100644
> > > > --- a/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > > +++ b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > > @@ -56,21 +56,6 @@ Sub-nodes
> > > >   node. It can be non linear and hence provide the mapping of identifiers
> > > >   into the clock-output-names array.
> > > >
> > > > -SRAM and Shared Memory for SCPI
> > > > --------------------------------
> > > > -
> > > > -A small area of SRAM is reserved for SCPI communication between application
> > > > -processors and SCP.
> > > > -
> > > > -The properties should follow the generic mmio-sram description found in [3]
> > > > -
> > > > -Each sub-node represents the reserved area for SCPI.
> > > > -
> > > > -Required sub-node properties:
> > > > -- reg : The base offset and size of the reserved area with the SRAM
> > > > -- compatible : should be "arm,scp-shmem" for Non-secure SRAM based
> > >
> > > > +            - arm,scpi-shmem
> > >
> > > Which is correct? There's not a single other occurrance in the kernel
> > > tree of either.
> > >
> >
> > Right I was thinking removing it but wasn't sure if any downstream DTS
> > have used this as it has been in the binding for a while now.
> >
>
> Sent it too early before I completed, we don't have explicit check for
> these compatible in the code. We just use phandles directly.

But which one is correct? "arm,scp-shmem" or "arm,scpi-shmem"

I can fix up when applying.

Rob

_______________________________________________
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] 28+ messages in thread

* Re: [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem to json schema
  2021-06-01 13:37         ` Rob Herring
@ 2021-06-01 13:53           ` Sudeep Holla
  0 siblings, 0 replies; 28+ messages in thread
From: Sudeep Holla @ 2021-06-01 13:53 UTC (permalink / raw)
  To: Rob Herring
  Cc: devicetree, linux-arm-kernel, Cristian Marussi, Kevin Hilman,
	Neil Armstrong, Jerome Brunet

On Tue, Jun 01, 2021 at 08:37:57AM -0500, Rob Herring wrote:
> On Mon, May 31, 2021 at 3:20 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
> >
> > On Mon, May 31, 2021 at 09:15:48AM +0100, Sudeep Holla wrote:
> > > On Thu, May 27, 2021 at 03:25:54PM -0500, Rob Herring wrote:
> > > > On Wed, May 26, 2021 at 07:28:00PM +0100, Sudeep Holla wrote:
> > > > > Move the SRAM and shared memory binding for SCPI into the existing
> > > > > Generic on-chip SRAM. We just need to update the compatible list and
> > > > > there-by remove the whole old text format binding for the same.
> > > > >
> > > > > Cc: Rob Herring <robh+dt@kernel.org>
> > > > > Cc: Kevin Hilman <khilman@baylibre.com>
> > > > > Cc: Neil Armstrong <narmstrong@baylibre.com>
> > > > > Cc: Jerome Brunet <jbrunet@baylibre.com>
> > > > > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > > > > ---
> > > > >  .../devicetree/bindings/arm/arm,scpi.txt          | 15 ---------------
> > > > >  Documentation/devicetree/bindings/sram/sram.yaml  |  1 +
> > > > >  2 files changed, 1 insertion(+), 15 deletions(-)
> > > > >
> > > > > diff --git a/Documentation/devicetree/bindings/arm/arm,scpi.txt b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > > > index bcd6c3ec471e..bcb8b3d61e68 100644
> > > > > --- a/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > > > +++ b/Documentation/devicetree/bindings/arm/arm,scpi.txt
> > > > > @@ -56,21 +56,6 @@ Sub-nodes
> > > > >   node. It can be non linear and hence provide the mapping of identifiers
> > > > >   into the clock-output-names array.
> > > > >
> > > > > -SRAM and Shared Memory for SCPI
> > > > > --------------------------------
> > > > > -
> > > > > -A small area of SRAM is reserved for SCPI communication between application
> > > > > -processors and SCP.
> > > > > -
> > > > > -The properties should follow the generic mmio-sram description found in [3]
> > > > > -
> > > > > -Each sub-node represents the reserved area for SCPI.
> > > > > -
> > > > > -Required sub-node properties:
> > > > > -- reg : The base offset and size of the reserved area with the SRAM
> > > > > -- compatible : should be "arm,scp-shmem" for Non-secure SRAM based
> > > >
> > > > > +            - arm,scpi-shmem
> > > >
> > > > Which is correct? There's not a single other occurrance in the kernel
> > > > tree of either.
> > > >
> > >
> > > Right I was thinking removing it but wasn't sure if any downstream DTS
> > > have used this as it has been in the binding for a while now.
> > >
> >
> > Sent it too early before I completed, we don't have explicit check for
> > these compatible in the code. We just use phandles directly.
> 
> But which one is correct? "arm,scp-shmem" or "arm,scpi-shmem"
>

Ah sorry I misread earlier. Indeed it should be "arm,scp-shmem", I messed
up while converting.

> I can fix up when applying.
>

I am posting v2 once I fix the scmi regulators. I also have couple of
other fixes you have suggested.

--
Regards,
Sudeep

_______________________________________________
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] 28+ messages in thread

end of thread, other threads:[~2021-06-01 13:54 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-26 18:27 [PATCH 0/8] dt-bindings: firmware: Convert SCPI and SCMI to json schema Sudeep Holla
2021-05-26 18:28 ` [PATCH 1/8] dt-bindings: firmware: arm, scpi: Move arm, scpi-shmem " Sudeep Holla
2021-05-27 20:25   ` Rob Herring
2021-05-31  8:15     ` Sudeep Holla
2021-05-31  8:20       ` Sudeep Holla
2021-06-01 13:37         ` Rob Herring
2021-06-01 13:53           ` Sudeep Holla
2021-05-26 18:28 ` [PATCH 2/8] dt-bindings: firmware: arm, scmi: Move arm, scmi-shmem " Sudeep Holla
2021-05-26 18:28 ` [PATCH 3/8] dt-bindings: firmware: juno, scpi: Move to sram.yaml " Sudeep Holla
2021-05-26 18:28 ` [PATCH 4/8] dt-bindings: firmware: amlogic, scpi: Move arm, scpi-shmem to " Sudeep Holla
2021-05-26 18:28 ` [PATCH 5/8] dt-bindings: firmware: arm,scpi: Convert " Sudeep Holla
2021-05-27 14:23   ` [PATCH 5/8] dt-bindings: firmware: arm, scpi: " Rob Herring
2021-05-27 16:17     ` [PATCH 5/8] dt-bindings: firmware: arm,scpi: " Sudeep Holla
2021-05-26 18:28 ` [PATCH 6/8] dt-bindings: mailbox : arm, mhu: Fix arm, scpi example used here Sudeep Holla
2021-05-27 14:23   ` Rob Herring
2021-05-27 16:25     ` Sudeep Holla
2021-05-27 20:07       ` Rob Herring
2021-05-31  8:17         ` Sudeep Holla
2021-05-26 18:28 ` [PATCH 7/8] dt-bindings: firmware: amlogic, scpi: Convert to json schema Sudeep Holla
2021-05-27 20:33   ` Rob Herring
2021-05-31  8:36     ` Sudeep Holla
2021-05-26 18:28 ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
2021-05-26 18:35   ` Sudeep Holla
2021-05-27 20:15     ` [PATCH 8/8] dt-bindings: firmware: arm, scmi: " Rob Herring
2021-05-27  6:37   ` Etienne Carriere
2021-05-27 10:53     ` [PATCH 8/8] dt-bindings: firmware: arm,scmi: " Sudeep Holla
2021-05-27 10:33   ` Cristian Marussi
2021-05-27 10:49     ` Sudeep Holla

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).