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