Message ID | 20211026152128.5834-1-etienne.carriere@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v6,1/2] dt-bindings: arm: Add OP-TEE transport for SCMI | expand |
On Tue, Oct 26, 2021 at 05:21:27PM +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@vger.kernel.org > Cc: Rob Herring <robh+dt@kernel.org> > Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> > --- > No change since v5 > > Changes since v4: > - Fix sram node name in DTS example: s/-shm-/-sram-/ > > Changes since v3: > - Add description for linaro,optee-channel-id in patternProperties > specifying protocol can optionaly define a dedicated channel id. > - Fix DTS example (duplicated phandles issue, subnodes ordering) > - Fix typo in DTS example and description comments. > > 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 | 66 +++++++++++++++++++ > 1 file changed, 66 insertions(+) > > diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > index 5c4c6782e052..d09ebc80e713 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 specifier required when using OP-TEE transport. > + > protocol@11: > type: object > properties: > @@ -195,6 +203,13 @@ patternProperties: > minItems: 1 > maxItems: 2 > > + linaro,optee-channel-id: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Channel specifier required when using OP-TEE transport and > + protocol has a dedicated communication channel. > + maxItems: 1 Don't need maxItems. > + > required: > - reg > > @@ -226,6 +241,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 +365,48 @@ examples: > reg = <0x11>; > #power-domain-cells = <1>; > }; > + }; > + }; > > + - | > + firmware { > + scmi { > + compatible = "linaro,scmi-optee"; > + linaro,optee-channel-id = <0>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + scmi_dvfs1: protocol@13 { > + reg = <0x13>; > + linaro,optee-channel-id = <1>; > + shmem = <&cpu_optee_lpri0>; > + #clock-cells = <1>; > + }; > + > + scmi_clk0: protocol@14 { > + reg = <0x14>; > + #clock-cells = <1>; > + }; > + }; > + }; > + > + soc { > + #address-cells = <2>; > + #size-cells = <2>; > + > + sram@51000000 { > + compatible = "mmio-sram"; > + reg = <0x0 0x51000000 0x0 0x10000>; > + > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0 0x0 0x51000000 0x10000>; > + > + cpu_optee_lpri0: optee-sram-section@0 { > + compatible = "arm,scmi-shmem"; > + reg = <0x0 0x80>; > + }; > }; > }; > > -- > 2.17.1 > >
diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml index 5c4c6782e052..d09ebc80e713 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 specifier required when using OP-TEE transport. + protocol@11: type: object properties: @@ -195,6 +203,13 @@ patternProperties: minItems: 1 maxItems: 2 + linaro,optee-channel-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Channel specifier required when using OP-TEE transport and + protocol has a dedicated communication channel. + maxItems: 1 + required: - reg @@ -226,6 +241,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 +365,48 @@ examples: reg = <0x11>; #power-domain-cells = <1>; }; + }; + }; + - | + firmware { + scmi { + compatible = "linaro,scmi-optee"; + linaro,optee-channel-id = <0>; + + #address-cells = <1>; + #size-cells = <0>; + + scmi_dvfs1: protocol@13 { + reg = <0x13>; + linaro,optee-channel-id = <1>; + shmem = <&cpu_optee_lpri0>; + #clock-cells = <1>; + }; + + scmi_clk0: protocol@14 { + reg = <0x14>; + #clock-cells = <1>; + }; + }; + }; + + soc { + #address-cells = <2>; + #size-cells = <2>; + + sram@51000000 { + compatible = "mmio-sram"; + reg = <0x0 0x51000000 0x0 0x10000>; + + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x0 0x51000000 0x10000>; + + cpu_optee_lpri0: optee-sram-section@0 { + compatible = "arm,scmi-shmem"; + reg = <0x0 0x80>; + }; }; };
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@vger.kernel.org Cc: Rob Herring <robh+dt@kernel.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> --- No change since v5 Changes since v4: - Fix sram node name in DTS example: s/-shm-/-sram-/ Changes since v3: - Add description for linaro,optee-channel-id in patternProperties specifying protocol can optionaly define a dedicated channel id. - Fix DTS example (duplicated phandles issue, subnodes ordering) - Fix typo in DTS example and description comments. 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 | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+)