Add '#feature-domain-cells' property description to the scmi node.
This property makes scmi node as feature-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
Firmware 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 <[email protected]>
---
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
Changes V4 -> V5:
- rename domain-controller to feature-domain-controller
- feature-domains format fixes
Changes V5 -> V6:
- formatting fixes
---
.../bindings/firmware/arm,scmi.yaml | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
index 1c0388da6721..bb5aa49e88fd 100644
--- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
+++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
@@ -89,6 +89,16 @@ properties:
atomic mode of operation, even if requested.
default: 0
+ '#feature-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
+
+ feature-domain-controller: true
+
arm,smc-id:
$ref: /schemas/types.yaml#/definitions/uint32
description:
@@ -429,4 +439,22 @@ 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>;
+ feature-domain-controller;
+ #feature-domain-cells = <1>;
+ };
+ };
+
+ foo@0 {
+ reg = <0x0 0x10>;
+ feature-domains = <&scmi_link 1>;
+ };
...
--
2.25.1