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@xxxxxxxx> --- 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