[PATCH v3 1/2] dt-bindings: arm: Add OP-TEE transport for SCMI

Etienne Carriere etienne.carriere at linaro.org
Tue Oct 19 02:20:44 PDT 2021


On Mon, 18 Oct 2021 at 19:40, Rob Herring <robh at kernel.org> 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 at vger.kernel.org
> > Cc: Rob Herring <robh+dt at kernel.org>
> > Signed-off-by: Etienne Carriere <etienne.carriere at linaro.org>
> > ---
> > 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 at 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 at 14 {
> > +                reg = <0x14>;
> > +                #clock-cells = <1>;
> > +            };
> > +
> > +            scmi_dvfs: protocol at 13 {
> > +                reg = <0x13>;
> >
> > +                #clock-cells = <1>;
> > +                linaro,optee-channel = <1>;
> > +                shmem = <&cpu_scp_hpri0>;
> > +            };
> >          };
> >      };
> >
> > --
> > 2.17.1
> >
> >



More information about the linux-arm-kernel mailing list