[PATCH v4 2/2] dt-bindings: Update scmi node description

Oleksii Moisieiev
2022-07-07T10:43:26Z

Add '#domain-cells' property description to the scmi node.
This property makes scmi node as domain controller provider, which allows
consumers to provide scmi node with the device_ids of the devices, which are
using scmi protocols to control clocks/resets/power-domains etc.
The device_ids could be used to set the device permissions for the
Fimware using BASE_SET_DEVICE_PERMISSIONS message (see 4.2.2.10 of [0]).
Device permissions management described in DEN 0056, Section 4.2.2.10 [0].

For SCMI this property is used by Trusted Agent to set the device permissions
for the Non-Trusted Agents.
Trusted and non-trusted Agent terms described in Section 4.1.1 [0].

[0] https://developer.arm.com/documentation/den0056/latest

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
---
Changes v1 -> V2:
- update parameter name, made it xen-specific
- add xen vendor bindings

Changes V2 -> V3:
- update parameter name, make it generic
- update parameter format, add link to controller
- do not include xen vendor bindings as already upstreamed

Changes V3 -> V4:
- introduce domain controller provider/consumer device tree bindings
- making scmi node to act as domain controller provider when the
device permissions should be configured
---
.../bindings/firmware/arm,scmi.yaml | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)

diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
index 5c4c6782e052..89589ed81b4e 100644
--- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
+++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
@@ -78,6 +78,14 @@ properties:
'#size-cells':
const: 0

+ '#domain-cells':
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Number of cells in a domain controller specifier.
+ Set const to 1 here for nodes providing the device id, needed for
+ the BASE_SET_DEVICE_PERMISSIONS message (see 4.2.2.10 of [0]).
+ const: 1
+
arm,smc-id:
$ref: /schemas/types.yaml#/definitions/uint32
description:
@@ -344,4 +352,21 @@ examples:
};
};

+ - |
+ firmware {
+ scmi_link: scmi {
+ compatible = "arm,scmi-smc";
+ shmem = <&cpu_scp_lpri0 &cpu_scp_lpri1>;
+ arm,smc-id = <0xc3000001>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #domain-cells = <1>;
+ };
+ };
+
+ foo@0 {
+ reg = <0x0 0x10>;
+ domain-0 = <&scmi_link 1>;
+ };
...
--
2.27.0