Re: [PATCH v4 13/16] dt-bindings: arm: Add virtio transport for SCMI
From: Cristian Marussi <cristian.marussi@arm.com>
Date: 2021-07-01 10:31:46
Also in:
linux-arm-kernel, lkml
Hi, On Thu, Jul 01, 2021 at 10:43:02AM +0200, Peter Hilber wrote:
quoted hunk ↗ jump to hunk
On 11.06.21 18:59, Cristian Marussi wrote:quoted
From: Igor Skalkin <redacted> Document the properties for arm,scmi-virtio compatible nodes. The backing virtio SCMI device is described in patch [1]. While doing that, make shmem property required only for pre-existing mailbox and smc transports, since virtio-scmi does not need it. [1] https://lists.oasis-open.org/archives/virtio-comment/202102/msg00018.html CC: Rob Herring <robh+dt@kernel.org> CC: devicetree@vger.kernel.org Signed-off-by: Igor Skalkin <redacted> [ Peter: Adapted patch for submission to upstream. ] Co-developed-by: Peter Hilber <redacted> Signed-off-by: Peter Hilber <redacted> [ Cristian: converted to yaml format, moved shmen required property. ] Co-developed-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> --- v3 --> V4 - convertd to YAML - make shmem required only for pre-existing mailbox and smc transport - updated VirtIO specification patch message reference - dropped virtio-mmio SCMI device example since really not pertinent to virtio-scmi dt bindings transport: it is not even referenced in SCMI virtio DT node since they are enumerated by VirtIO subsystem and there could be PCI based SCMI devices anyway. --- Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml index cebf6ffe70d5..5c4c6782e052 100644 --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml@@ -34,6 +34,10 @@ properties: - description: SCMI compliant firmware with ARM SMC/HVC transport items: - const: arm,scmi-smc + - description: SCMI compliant firmware with SCMI Virtio transport. + The virtio transport only supports a single device. + items: + - const: arm,scmi-virtio interrupts: description:@@ -172,6 +176,7 @@ patternProperties: Each sub-node represents a protocol supported. If the platform supports a dedicated communication channel for a particular protocol, then the corresponding transport properties must be present. + The virtio transport does not support a dedicated communication channel. properties: reg:@@ -195,7 +200,6 @@ patternProperties: required: - compatible - - shmem if: properties:@@ -209,6 +213,7 @@ then: required: - mboxes + - shmem else: if:@@ -219,6 +224,7 @@ else: then: required: - arm,smc-id + - shmem examples: - |Maybe a minimal example for arm,scmi-virtio could be added, such as below:diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yamlb/Documentation/devicetree/bindings/firmware/arm,scmi.yaml index 5c4c6782e052..576faf970c1b 100644--- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml@@ -344,4 +344,19 @@ examples: }; }; + - | + firmware { + scmi { + compatible = "arm,scmi-virtio"; + + #address-cells = <1>; + #size-cells = <0>; + + scmi_devpd2: protocol@11 { + reg = <0x11>; + #power-domain-cells = <1>; + }; + }; + }; +
Not sure about this, I explicitly removed the arm,scmi-virtio example because with the current bindings it won't really exemplify anything really specific to the virtio transport if not the usage of the compatible string, and moreover the mmio case is just a case, there could be PCI based virtio SCMI device that would have even less to show here as an example. Thanks, Cristian