162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright 2021 ARM Ltd.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: System Control and Management Interface (SCMI) Message Protocol
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Sudeep Holla <sudeep.holla@arm.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  The SCMI is intended to allow agents such as OSPM to manage various functions
1562306a36Sopenharmony_ci  that are provided by the hardware platform it is running on, including power
1662306a36Sopenharmony_ci  and performance functions.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci  This binding is intended to define the interface the firmware implementing
1962306a36Sopenharmony_ci  the SCMI as described in ARM document number ARM DEN 0056 ("ARM System Control
2062306a36Sopenharmony_ci  and Management Interface Platform Design Document")[0] provide for OSPM in
2162306a36Sopenharmony_ci  the device tree.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  [0] https://developer.arm.com/documentation/den0056/latest
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciproperties:
2662306a36Sopenharmony_ci  $nodename:
2762306a36Sopenharmony_ci    const: scmi
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  compatible:
3062306a36Sopenharmony_ci    oneOf:
3162306a36Sopenharmony_ci      - description: SCMI compliant firmware with mailbox transport
3262306a36Sopenharmony_ci        items:
3362306a36Sopenharmony_ci          - const: arm,scmi
3462306a36Sopenharmony_ci      - description: SCMI compliant firmware with ARM SMC/HVC transport
3562306a36Sopenharmony_ci        items:
3662306a36Sopenharmony_ci          - const: arm,scmi-smc
3762306a36Sopenharmony_ci      - description: SCMI compliant firmware with ARM SMC/HVC transport
3862306a36Sopenharmony_ci                     with shmem address(4KB-page, offset) as parameters
3962306a36Sopenharmony_ci        items:
4062306a36Sopenharmony_ci          - const: arm,scmi-smc-param
4162306a36Sopenharmony_ci      - description: SCMI compliant firmware with SCMI Virtio transport.
4262306a36Sopenharmony_ci                     The virtio transport only supports a single device.
4362306a36Sopenharmony_ci        items:
4462306a36Sopenharmony_ci          - const: arm,scmi-virtio
4562306a36Sopenharmony_ci      - description: SCMI compliant firmware with OP-TEE transport
4662306a36Sopenharmony_ci        items:
4762306a36Sopenharmony_ci          - const: linaro,scmi-optee
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  interrupts:
5062306a36Sopenharmony_ci    description:
5162306a36Sopenharmony_ci      The interrupt that indicates message completion by the platform
5262306a36Sopenharmony_ci      rather than by the return of the smc call. This should not be used
5362306a36Sopenharmony_ci      except when the platform requires such behavior.
5462306a36Sopenharmony_ci    maxItems: 1
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  interrupt-names:
5762306a36Sopenharmony_ci    const: a2p
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci  mbox-names:
6062306a36Sopenharmony_ci    description:
6162306a36Sopenharmony_ci      Specifies the mailboxes used to communicate with SCMI compliant
6262306a36Sopenharmony_ci      firmware.
6362306a36Sopenharmony_ci    oneOf:
6462306a36Sopenharmony_ci      - items:
6562306a36Sopenharmony_ci          - const: tx
6662306a36Sopenharmony_ci          - const: rx
6762306a36Sopenharmony_ci        minItems: 1
6862306a36Sopenharmony_ci      - items:
6962306a36Sopenharmony_ci          - const: tx
7062306a36Sopenharmony_ci          - const: tx_reply
7162306a36Sopenharmony_ci          - const: rx
7262306a36Sopenharmony_ci        minItems: 2
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci  mboxes:
7562306a36Sopenharmony_ci    description:
7662306a36Sopenharmony_ci      List of phandle and mailbox channel specifiers. It should contain
7762306a36Sopenharmony_ci      exactly one, two or three mailboxes; the first one or two for transmitting
7862306a36Sopenharmony_ci      messages ("tx") and another optional ("rx") for receiving notifications
7962306a36Sopenharmony_ci      and delayed responses, if supported by the platform.
8062306a36Sopenharmony_ci      The number of mailboxes needed for transmitting messages depends on the
8162306a36Sopenharmony_ci      type of channels exposed by the specific underlying mailbox controller;
8262306a36Sopenharmony_ci      one single channel descriptor is enough if such channel is bidirectional,
8362306a36Sopenharmony_ci      while two channel descriptors are needed to represent the SCMI ("tx")
8462306a36Sopenharmony_ci      channel if the underlying mailbox channels are of unidirectional type.
8562306a36Sopenharmony_ci      The effective combination in numbers of mboxes and shmem descriptors let
8662306a36Sopenharmony_ci      the SCMI subsystem determine unambiguosly which type of SCMI channels are
8762306a36Sopenharmony_ci      made available by the underlying mailbox controller and how to use them.
8862306a36Sopenharmony_ci       1 mbox / 1 shmem => SCMI TX over 1 mailbox bidirectional channel
8962306a36Sopenharmony_ci       2 mbox / 2 shmem => SCMI TX and RX over 2 mailbox bidirectional channels
9062306a36Sopenharmony_ci       2 mbox / 1 shmem => SCMI TX over 2 mailbox unidirectional channels
9162306a36Sopenharmony_ci       3 mbox / 2 shmem => SCMI TX and RX over 3 mailbox unidirectional channels
9262306a36Sopenharmony_ci      Any other combination of mboxes and shmem is invalid.
9362306a36Sopenharmony_ci    minItems: 1
9462306a36Sopenharmony_ci    maxItems: 3
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci  shmem:
9762306a36Sopenharmony_ci    description:
9862306a36Sopenharmony_ci      List of phandle pointing to the shared memory(SHM) area, for each
9962306a36Sopenharmony_ci      transport channel specified.
10062306a36Sopenharmony_ci    minItems: 1
10162306a36Sopenharmony_ci    maxItems: 2
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci  '#address-cells':
10462306a36Sopenharmony_ci    const: 1
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci  '#size-cells':
10762306a36Sopenharmony_ci    const: 0
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci  atomic-threshold-us:
11062306a36Sopenharmony_ci    description:
11162306a36Sopenharmony_ci      An optional time value, expressed in microseconds, representing, on this
11262306a36Sopenharmony_ci      platform, the threshold above which any SCMI command, advertised to have
11362306a36Sopenharmony_ci      an higher-than-threshold execution latency, should not be considered for
11462306a36Sopenharmony_ci      atomic mode of operation, even if requested.
11562306a36Sopenharmony_ci    default: 0
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci  arm,smc-id:
11862306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
11962306a36Sopenharmony_ci    description:
12062306a36Sopenharmony_ci      SMC id required when using smc or hvc transports
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci  linaro,optee-channel-id:
12362306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
12462306a36Sopenharmony_ci    description:
12562306a36Sopenharmony_ci      Channel specifier required when using OP-TEE transport.
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci  protocol@11:
12862306a36Sopenharmony_ci    $ref: '#/$defs/protocol-node'
12962306a36Sopenharmony_ci    unevaluatedProperties: false
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci    properties:
13262306a36Sopenharmony_ci      reg:
13362306a36Sopenharmony_ci        const: 0x11
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci      '#power-domain-cells':
13662306a36Sopenharmony_ci        const: 1
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci    required:
13962306a36Sopenharmony_ci      - '#power-domain-cells'
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci  protocol@13:
14262306a36Sopenharmony_ci    $ref: '#/$defs/protocol-node'
14362306a36Sopenharmony_ci    unevaluatedProperties: false
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci    properties:
14662306a36Sopenharmony_ci      reg:
14762306a36Sopenharmony_ci        const: 0x13
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci      '#clock-cells':
15062306a36Sopenharmony_ci        const: 1
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci    required:
15362306a36Sopenharmony_ci      - '#clock-cells'
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci  protocol@14:
15662306a36Sopenharmony_ci    $ref: '#/$defs/protocol-node'
15762306a36Sopenharmony_ci    unevaluatedProperties: false
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci    properties:
16062306a36Sopenharmony_ci      reg:
16162306a36Sopenharmony_ci        const: 0x14
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci      '#clock-cells':
16462306a36Sopenharmony_ci        const: 1
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci    required:
16762306a36Sopenharmony_ci      - '#clock-cells'
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci  protocol@15:
17062306a36Sopenharmony_ci    $ref: '#/$defs/protocol-node'
17162306a36Sopenharmony_ci    unevaluatedProperties: false
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci    properties:
17462306a36Sopenharmony_ci      reg:
17562306a36Sopenharmony_ci        const: 0x15
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci      '#thermal-sensor-cells':
17862306a36Sopenharmony_ci        const: 1
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci    required:
18162306a36Sopenharmony_ci      - '#thermal-sensor-cells'
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci  protocol@16:
18462306a36Sopenharmony_ci    $ref: '#/$defs/protocol-node'
18562306a36Sopenharmony_ci    unevaluatedProperties: false
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci    properties:
18862306a36Sopenharmony_ci      reg:
18962306a36Sopenharmony_ci        const: 0x16
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci      '#reset-cells':
19262306a36Sopenharmony_ci        const: 1
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci    required:
19562306a36Sopenharmony_ci      - '#reset-cells'
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci  protocol@17:
19862306a36Sopenharmony_ci    $ref: '#/$defs/protocol-node'
19962306a36Sopenharmony_ci    unevaluatedProperties: false
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci    properties:
20262306a36Sopenharmony_ci      reg:
20362306a36Sopenharmony_ci        const: 0x17
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci      regulators:
20662306a36Sopenharmony_ci        type: object
20762306a36Sopenharmony_ci        additionalProperties: false
20862306a36Sopenharmony_ci        description:
20962306a36Sopenharmony_ci          The list of all regulators provided by this SCMI controller.
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci        properties:
21262306a36Sopenharmony_ci          '#address-cells':
21362306a36Sopenharmony_ci            const: 1
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ci          '#size-cells':
21662306a36Sopenharmony_ci            const: 0
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci        patternProperties:
21962306a36Sopenharmony_ci          '^regulator@[0-9a-f]+$':
22062306a36Sopenharmony_ci            type: object
22162306a36Sopenharmony_ci            $ref: /schemas/regulator/regulator.yaml#
22262306a36Sopenharmony_ci            unevaluatedProperties: false
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci            properties:
22562306a36Sopenharmony_ci              reg:
22662306a36Sopenharmony_ci                maxItems: 1
22762306a36Sopenharmony_ci                description: Identifier for the voltage regulator.
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci            required:
23062306a36Sopenharmony_ci              - reg
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci  protocol@18:
23362306a36Sopenharmony_ci    $ref: '#/$defs/protocol-node'
23462306a36Sopenharmony_ci    unevaluatedProperties: false
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci    properties:
23762306a36Sopenharmony_ci      reg:
23862306a36Sopenharmony_ci        const: 0x18
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ciadditionalProperties: false
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci$defs:
24362306a36Sopenharmony_ci  protocol-node:
24462306a36Sopenharmony_ci    type: object
24562306a36Sopenharmony_ci    description:
24662306a36Sopenharmony_ci      Each sub-node represents a protocol supported. If the platform
24762306a36Sopenharmony_ci      supports a dedicated communication channel for a particular protocol,
24862306a36Sopenharmony_ci      then the corresponding transport properties must be present.
24962306a36Sopenharmony_ci      The virtio transport does not support a dedicated communication channel.
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ci    properties:
25262306a36Sopenharmony_ci      reg:
25362306a36Sopenharmony_ci        maxItems: 1
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ci      mbox-names:
25662306a36Sopenharmony_ci        oneOf:
25762306a36Sopenharmony_ci          - items:
25862306a36Sopenharmony_ci              - const: tx
25962306a36Sopenharmony_ci              - const: rx
26062306a36Sopenharmony_ci            minItems: 1
26162306a36Sopenharmony_ci          - items:
26262306a36Sopenharmony_ci              - const: tx
26362306a36Sopenharmony_ci              - const: tx_reply
26462306a36Sopenharmony_ci              - const: rx
26562306a36Sopenharmony_ci            minItems: 2
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ci      mboxes:
26862306a36Sopenharmony_ci        minItems: 1
26962306a36Sopenharmony_ci        maxItems: 3
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci      shmem:
27262306a36Sopenharmony_ci        minItems: 1
27362306a36Sopenharmony_ci        maxItems: 2
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci      linaro,optee-channel-id:
27662306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
27762306a36Sopenharmony_ci        description:
27862306a36Sopenharmony_ci          Channel specifier required when using OP-TEE transport and
27962306a36Sopenharmony_ci          protocol has a dedicated communication channel.
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci    required:
28262306a36Sopenharmony_ci      - reg
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_cirequired:
28562306a36Sopenharmony_ci  - compatible
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ciif:
28862306a36Sopenharmony_ci  properties:
28962306a36Sopenharmony_ci    compatible:
29062306a36Sopenharmony_ci      contains:
29162306a36Sopenharmony_ci        const: arm,scmi
29262306a36Sopenharmony_cithen:
29362306a36Sopenharmony_ci  properties:
29462306a36Sopenharmony_ci    interrupts: false
29562306a36Sopenharmony_ci    interrupt-names: false
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ci  required:
29862306a36Sopenharmony_ci    - mboxes
29962306a36Sopenharmony_ci    - shmem
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_cielse:
30262306a36Sopenharmony_ci  if:
30362306a36Sopenharmony_ci    properties:
30462306a36Sopenharmony_ci      compatible:
30562306a36Sopenharmony_ci        contains:
30662306a36Sopenharmony_ci          enum:
30762306a36Sopenharmony_ci            - arm,scmi-smc
30862306a36Sopenharmony_ci            - arm,scmi-smc-param
30962306a36Sopenharmony_ci  then:
31062306a36Sopenharmony_ci    required:
31162306a36Sopenharmony_ci      - arm,smc-id
31262306a36Sopenharmony_ci      - shmem
31362306a36Sopenharmony_ci
31462306a36Sopenharmony_ci  else:
31562306a36Sopenharmony_ci    if:
31662306a36Sopenharmony_ci      properties:
31762306a36Sopenharmony_ci        compatible:
31862306a36Sopenharmony_ci          contains:
31962306a36Sopenharmony_ci            const: linaro,scmi-optee
32062306a36Sopenharmony_ci    then:
32162306a36Sopenharmony_ci      required:
32262306a36Sopenharmony_ci        - linaro,optee-channel-id
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ciexamples:
32562306a36Sopenharmony_ci  - |
32662306a36Sopenharmony_ci    firmware {
32762306a36Sopenharmony_ci        scmi {
32862306a36Sopenharmony_ci            compatible = "arm,scmi";
32962306a36Sopenharmony_ci            mboxes = <&mhuB 0 0>,
33062306a36Sopenharmony_ci                     <&mhuB 0 1>;
33162306a36Sopenharmony_ci            mbox-names = "tx", "rx";
33262306a36Sopenharmony_ci            shmem = <&cpu_scp_lpri0>,
33362306a36Sopenharmony_ci                    <&cpu_scp_lpri1>;
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ci            #address-cells = <1>;
33662306a36Sopenharmony_ci            #size-cells = <0>;
33762306a36Sopenharmony_ci
33862306a36Sopenharmony_ci            atomic-threshold-us = <10000>;
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ci            scmi_devpd: protocol@11 {
34162306a36Sopenharmony_ci                reg = <0x11>;
34262306a36Sopenharmony_ci                #power-domain-cells = <1>;
34362306a36Sopenharmony_ci            };
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_ci            scmi_dvfs: protocol@13 {
34662306a36Sopenharmony_ci                reg = <0x13>;
34762306a36Sopenharmony_ci                #clock-cells = <1>;
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ci                mboxes = <&mhuB 1 0>,
35062306a36Sopenharmony_ci                         <&mhuB 1 1>;
35162306a36Sopenharmony_ci                mbox-names = "tx", "rx";
35262306a36Sopenharmony_ci                shmem = <&cpu_scp_hpri0>,
35362306a36Sopenharmony_ci                        <&cpu_scp_hpri1>;
35462306a36Sopenharmony_ci            };
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci            scmi_clk: protocol@14 {
35762306a36Sopenharmony_ci                reg = <0x14>;
35862306a36Sopenharmony_ci                #clock-cells = <1>;
35962306a36Sopenharmony_ci            };
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ci            scmi_sensors: protocol@15 {
36262306a36Sopenharmony_ci                reg = <0x15>;
36362306a36Sopenharmony_ci                #thermal-sensor-cells = <1>;
36462306a36Sopenharmony_ci            };
36562306a36Sopenharmony_ci
36662306a36Sopenharmony_ci            scmi_reset: protocol@16 {
36762306a36Sopenharmony_ci                reg = <0x16>;
36862306a36Sopenharmony_ci                #reset-cells = <1>;
36962306a36Sopenharmony_ci            };
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ci            scmi_voltage: protocol@17 {
37262306a36Sopenharmony_ci                reg = <0x17>;
37362306a36Sopenharmony_ci                regulators {
37462306a36Sopenharmony_ci                    #address-cells = <1>;
37562306a36Sopenharmony_ci                    #size-cells = <0>;
37662306a36Sopenharmony_ci
37762306a36Sopenharmony_ci                    regulator_devX: regulator@0 {
37862306a36Sopenharmony_ci                        reg = <0x0>;
37962306a36Sopenharmony_ci                        regulator-max-microvolt = <3300000>;
38062306a36Sopenharmony_ci                    };
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_ci                    regulator_devY: regulator@9 {
38362306a36Sopenharmony_ci                        reg = <0x9>;
38462306a36Sopenharmony_ci                        regulator-min-microvolt = <500000>;
38562306a36Sopenharmony_ci                        regulator-max-microvolt = <4200000>;
38662306a36Sopenharmony_ci                    };
38762306a36Sopenharmony_ci                };
38862306a36Sopenharmony_ci            };
38962306a36Sopenharmony_ci
39062306a36Sopenharmony_ci            scmi_powercap: protocol@18 {
39162306a36Sopenharmony_ci                reg = <0x18>;
39262306a36Sopenharmony_ci            };
39362306a36Sopenharmony_ci        };
39462306a36Sopenharmony_ci    };
39562306a36Sopenharmony_ci
39662306a36Sopenharmony_ci    soc {
39762306a36Sopenharmony_ci        #address-cells = <2>;
39862306a36Sopenharmony_ci        #size-cells = <2>;
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_ci        sram@50000000 {
40162306a36Sopenharmony_ci            compatible = "mmio-sram";
40262306a36Sopenharmony_ci            reg = <0x0 0x50000000 0x0 0x10000>;
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci            #address-cells = <1>;
40562306a36Sopenharmony_ci            #size-cells = <1>;
40662306a36Sopenharmony_ci            ranges = <0 0x0 0x50000000 0x10000>;
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ci            cpu_scp_lpri0: scp-sram-section@0 {
40962306a36Sopenharmony_ci                compatible = "arm,scmi-shmem";
41062306a36Sopenharmony_ci                reg = <0x0 0x80>;
41162306a36Sopenharmony_ci            };
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_ci            cpu_scp_lpri1: scp-sram-section@80 {
41462306a36Sopenharmony_ci                compatible = "arm,scmi-shmem";
41562306a36Sopenharmony_ci                reg = <0x80 0x80>;
41662306a36Sopenharmony_ci            };
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_ci            cpu_scp_hpri0: scp-sram-section@100 {
41962306a36Sopenharmony_ci                compatible = "arm,scmi-shmem";
42062306a36Sopenharmony_ci                reg = <0x100 0x80>;
42162306a36Sopenharmony_ci            };
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ci            cpu_scp_hpri2: scp-sram-section@180 {
42462306a36Sopenharmony_ci                compatible = "arm,scmi-shmem";
42562306a36Sopenharmony_ci                reg = <0x180 0x80>;
42662306a36Sopenharmony_ci            };
42762306a36Sopenharmony_ci        };
42862306a36Sopenharmony_ci    };
42962306a36Sopenharmony_ci
43062306a36Sopenharmony_ci  - |
43162306a36Sopenharmony_ci    firmware {
43262306a36Sopenharmony_ci        scmi {
43362306a36Sopenharmony_ci            compatible = "arm,scmi-smc";
43462306a36Sopenharmony_ci            shmem = <&cpu_scp_lpri0>, <&cpu_scp_lpri1>;
43562306a36Sopenharmony_ci            arm,smc-id = <0xc3000001>;
43662306a36Sopenharmony_ci
43762306a36Sopenharmony_ci            #address-cells = <1>;
43862306a36Sopenharmony_ci            #size-cells = <0>;
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ci            scmi_devpd1: protocol@11 {
44162306a36Sopenharmony_ci                reg = <0x11>;
44262306a36Sopenharmony_ci                #power-domain-cells = <1>;
44362306a36Sopenharmony_ci            };
44462306a36Sopenharmony_ci        };
44562306a36Sopenharmony_ci    };
44662306a36Sopenharmony_ci
44762306a36Sopenharmony_ci  - |
44862306a36Sopenharmony_ci    firmware {
44962306a36Sopenharmony_ci        scmi {
45062306a36Sopenharmony_ci            compatible = "linaro,scmi-optee";
45162306a36Sopenharmony_ci            linaro,optee-channel-id = <0>;
45262306a36Sopenharmony_ci
45362306a36Sopenharmony_ci            #address-cells = <1>;
45462306a36Sopenharmony_ci            #size-cells = <0>;
45562306a36Sopenharmony_ci
45662306a36Sopenharmony_ci            scmi_dvfs1: protocol@13 {
45762306a36Sopenharmony_ci                reg = <0x13>;
45862306a36Sopenharmony_ci                linaro,optee-channel-id = <1>;
45962306a36Sopenharmony_ci                shmem = <&cpu_optee_lpri0>;
46062306a36Sopenharmony_ci                #clock-cells = <1>;
46162306a36Sopenharmony_ci            };
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_ci            scmi_clk0: protocol@14 {
46462306a36Sopenharmony_ci                reg = <0x14>;
46562306a36Sopenharmony_ci                #clock-cells = <1>;
46662306a36Sopenharmony_ci            };
46762306a36Sopenharmony_ci        };
46862306a36Sopenharmony_ci    };
46962306a36Sopenharmony_ci
47062306a36Sopenharmony_ci    soc {
47162306a36Sopenharmony_ci        #address-cells = <2>;
47262306a36Sopenharmony_ci        #size-cells = <2>;
47362306a36Sopenharmony_ci
47462306a36Sopenharmony_ci        sram@51000000 {
47562306a36Sopenharmony_ci            compatible = "mmio-sram";
47662306a36Sopenharmony_ci            reg = <0x0 0x51000000 0x0 0x10000>;
47762306a36Sopenharmony_ci
47862306a36Sopenharmony_ci            #address-cells = <1>;
47962306a36Sopenharmony_ci            #size-cells = <1>;
48062306a36Sopenharmony_ci            ranges = <0 0x0 0x51000000 0x10000>;
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_ci            cpu_optee_lpri0: optee-sram-section@0 {
48362306a36Sopenharmony_ci                compatible = "arm,scmi-shmem";
48462306a36Sopenharmony_ci                reg = <0x0 0x80>;
48562306a36Sopenharmony_ci            };
48662306a36Sopenharmony_ci        };
48762306a36Sopenharmony_ci    };
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_ci...
490