On Mon, 18 Oct 2021 at 19:40, Rob Herring <robh@xxxxxxxxxx> wrote: > > 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. Property linaro,optee-channel-id for compatible linaro,scmi-optee is like properties mboxes and shmem for compatibile arm,scmi. There are mandated in the scmi node and are optional in its subnodes: an scmi protocol (a subnode), can have a dedicated scmi channel. The yaml description is expected to reflect that. Regards, Etienne > > > + > > 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 > > > >