On Mon, Oct 18, 2021 at 01:40:45PM +0200, Etienne Carriere wrote: > Introduce compatible "linaro,scmi-optee" for SCMI transport channel > based on an OP-TEE service invocation. The compatible mandates a > channel ID defined with property "linaro,optee-channel-id". > > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Signed-off-by: Etienne Carriere <etienne.carriere@xxxxxxxxxx> > --- > Changes since v2: > - Define mandatory property linaro,optee-channel-id > - Rebased on yaml description file > > Changes since v1: > - Removed modification regarding mboxes property description. > --- > .../bindings/firmware/arm,scmi.yaml | 44 +++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > index 5c4c6782e052..12154ecc081b 100644 > --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > @@ -38,6 +38,9 @@ properties: > The virtio transport only supports a single device. > items: > - const: arm,scmi-virtio > + - description: SCMI compliant firmware with OP-TEE transport > + items: > + - const: linaro,scmi-optee > > interrupts: > description: > @@ -83,6 +86,11 @@ properties: > description: > SMC id required when using smc or hvc transports > > + linaro,optee-channel-id: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Channel id required when using OP-TEE transports > + > protocol@11: > type: object > properties: > @@ -195,6 +203,9 @@ patternProperties: > minItems: 1 > maxItems: 2 > > + linaro,optee-channel-id: > + maxItems: 1 Why is the same property in 2 different spots? That doesn't seem ideal. Unfortunately, you have to duplicate the definition. > + > required: > - reg > > @@ -226,6 +237,16 @@ else: > - arm,smc-id > - shmem > > + else: > + if: > + properties: > + compatible: > + contains: > + const: linaro,scmi-optee > + then: > + required: > + - linaro,optee-channel-id > + > examples: > - | > firmware { > @@ -340,7 +361,30 @@ examples: > reg = <0x11>; > #power-domain-cells = <1>; > }; > + }; > + }; > + > + - | > + firmware { > + scmi { > + compatible = "linaro,scmi-optee"; > + linaro,optee-channel = <0>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + scmi_clk: protocol@14 { > + reg = <0x14>; > + #clock-cells = <1>; > + }; > + > + scmi_dvfs: protocol@13 { > + reg = <0x13>; > > + #clock-cells = <1>; > + linaro,optee-channel = <1>; > + shmem = <&cpu_scp_hpri0>; > + }; > }; > }; > > -- > 2.17.1 > >