xref: /freebsd/sys/contrib/device-tree/Bindings/firmware/arm,scmi.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
25956d97fSEmmanuel Vadot# Copyright 2021 ARM Ltd.
35956d97fSEmmanuel Vadot%YAML 1.2
45956d97fSEmmanuel Vadot---
55956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
65956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
75956d97fSEmmanuel Vadot
88bab661aSEmmanuel Vadottitle: System Control and Management Interface (SCMI) Message Protocol
95956d97fSEmmanuel Vadot
105956d97fSEmmanuel Vadotmaintainers:
115956d97fSEmmanuel Vadot  - Sudeep Holla <sudeep.holla@arm.com>
125956d97fSEmmanuel Vadot
135956d97fSEmmanuel Vadotdescription: |
145956d97fSEmmanuel Vadot  The SCMI is intended to allow agents such as OSPM to manage various functions
155956d97fSEmmanuel Vadot  that are provided by the hardware platform it is running on, including power
165956d97fSEmmanuel Vadot  and performance functions.
175956d97fSEmmanuel Vadot
185956d97fSEmmanuel Vadot  This binding is intended to define the interface the firmware implementing
195956d97fSEmmanuel Vadot  the SCMI as described in ARM document number ARM DEN 0056 ("ARM System Control
205956d97fSEmmanuel Vadot  and Management Interface Platform Design Document")[0] provide for OSPM in
215956d97fSEmmanuel Vadot  the device tree.
225956d97fSEmmanuel Vadot
235956d97fSEmmanuel Vadot  [0] https://developer.arm.com/documentation/den0056/latest
245956d97fSEmmanuel Vadot
255956d97fSEmmanuel Vadotproperties:
265956d97fSEmmanuel Vadot  $nodename:
275956d97fSEmmanuel Vadot    const: scmi
285956d97fSEmmanuel Vadot
295956d97fSEmmanuel Vadot  compatible:
305956d97fSEmmanuel Vadot    oneOf:
315956d97fSEmmanuel Vadot      - description: SCMI compliant firmware with mailbox transport
325956d97fSEmmanuel Vadot        items:
335956d97fSEmmanuel Vadot          - const: arm,scmi
345956d97fSEmmanuel Vadot      - description: SCMI compliant firmware with ARM SMC/HVC transport
355956d97fSEmmanuel Vadot        items:
365956d97fSEmmanuel Vadot          - const: arm,scmi-smc
37f126890aSEmmanuel Vadot      - description: SCMI compliant firmware with ARM SMC/HVC transport
38f126890aSEmmanuel Vadot                     with shmem address(4KB-page, offset) as parameters
39f126890aSEmmanuel Vadot        items:
40f126890aSEmmanuel Vadot          - const: arm,scmi-smc-param
41*84943d6fSEmmanuel Vadot      - description: SCMI compliant firmware with Qualcomm SMC/HVC transport
42*84943d6fSEmmanuel Vadot        items:
43*84943d6fSEmmanuel Vadot          - const: qcom,scmi-smc
44354d7675SEmmanuel Vadot      - description: SCMI compliant firmware with SCMI Virtio transport.
45354d7675SEmmanuel Vadot                     The virtio transport only supports a single device.
46354d7675SEmmanuel Vadot        items:
47354d7675SEmmanuel Vadot          - const: arm,scmi-virtio
48c9ccf3a3SEmmanuel Vadot      - description: SCMI compliant firmware with OP-TEE transport
49c9ccf3a3SEmmanuel Vadot        items:
50c9ccf3a3SEmmanuel Vadot          - const: linaro,scmi-optee
515956d97fSEmmanuel Vadot
525956d97fSEmmanuel Vadot  interrupts:
535956d97fSEmmanuel Vadot    description:
545956d97fSEmmanuel Vadot      The interrupt that indicates message completion by the platform
555956d97fSEmmanuel Vadot      rather than by the return of the smc call. This should not be used
565956d97fSEmmanuel Vadot      except when the platform requires such behavior.
575956d97fSEmmanuel Vadot    maxItems: 1
585956d97fSEmmanuel Vadot
595956d97fSEmmanuel Vadot  interrupt-names:
605956d97fSEmmanuel Vadot    const: a2p
615956d97fSEmmanuel Vadot
625956d97fSEmmanuel Vadot  mbox-names:
635956d97fSEmmanuel Vadot    description:
645956d97fSEmmanuel Vadot      Specifies the mailboxes used to communicate with SCMI compliant
655956d97fSEmmanuel Vadot      firmware.
66fac71e4eSEmmanuel Vadot    oneOf:
67fac71e4eSEmmanuel Vadot      - items:
685956d97fSEmmanuel Vadot          - const: tx
695956d97fSEmmanuel Vadot          - const: rx
70fac71e4eSEmmanuel Vadot        minItems: 1
71fac71e4eSEmmanuel Vadot      - items:
72fac71e4eSEmmanuel Vadot          - const: tx
73fac71e4eSEmmanuel Vadot          - const: tx_reply
74fac71e4eSEmmanuel Vadot          - const: rx
75fac71e4eSEmmanuel Vadot        minItems: 2
765956d97fSEmmanuel Vadot
775956d97fSEmmanuel Vadot  mboxes:
785956d97fSEmmanuel Vadot    description:
795956d97fSEmmanuel Vadot      List of phandle and mailbox channel specifiers. It should contain
80fac71e4eSEmmanuel Vadot      exactly one, two or three mailboxes; the first one or two for transmitting
81fac71e4eSEmmanuel Vadot      messages ("tx") and another optional ("rx") for receiving notifications
82fac71e4eSEmmanuel Vadot      and delayed responses, if supported by the platform.
83fac71e4eSEmmanuel Vadot      The number of mailboxes needed for transmitting messages depends on the
84fac71e4eSEmmanuel Vadot      type of channels exposed by the specific underlying mailbox controller;
85fac71e4eSEmmanuel Vadot      one single channel descriptor is enough if such channel is bidirectional,
86fac71e4eSEmmanuel Vadot      while two channel descriptors are needed to represent the SCMI ("tx")
87fac71e4eSEmmanuel Vadot      channel if the underlying mailbox channels are of unidirectional type.
88fac71e4eSEmmanuel Vadot      The effective combination in numbers of mboxes and shmem descriptors let
89fac71e4eSEmmanuel Vadot      the SCMI subsystem determine unambiguosly which type of SCMI channels are
90fac71e4eSEmmanuel Vadot      made available by the underlying mailbox controller and how to use them.
91fac71e4eSEmmanuel Vadot       1 mbox / 1 shmem => SCMI TX over 1 mailbox bidirectional channel
92fac71e4eSEmmanuel Vadot       2 mbox / 2 shmem => SCMI TX and RX over 2 mailbox bidirectional channels
93fac71e4eSEmmanuel Vadot       2 mbox / 1 shmem => SCMI TX over 2 mailbox unidirectional channels
94fac71e4eSEmmanuel Vadot       3 mbox / 2 shmem => SCMI TX and RX over 3 mailbox unidirectional channels
95fac71e4eSEmmanuel Vadot      Any other combination of mboxes and shmem is invalid.
965956d97fSEmmanuel Vadot    minItems: 1
97fac71e4eSEmmanuel Vadot    maxItems: 3
985956d97fSEmmanuel Vadot
995956d97fSEmmanuel Vadot  shmem:
1005956d97fSEmmanuel Vadot    description:
1015956d97fSEmmanuel Vadot      List of phandle pointing to the shared memory(SHM) area, for each
1025956d97fSEmmanuel Vadot      transport channel specified.
1035956d97fSEmmanuel Vadot    minItems: 1
1045956d97fSEmmanuel Vadot    maxItems: 2
1055956d97fSEmmanuel Vadot
1065956d97fSEmmanuel Vadot  '#address-cells':
1075956d97fSEmmanuel Vadot    const: 1
1085956d97fSEmmanuel Vadot
1095956d97fSEmmanuel Vadot  '#size-cells':
1105956d97fSEmmanuel Vadot    const: 0
1115956d97fSEmmanuel Vadot
112c9ccf3a3SEmmanuel Vadot  atomic-threshold-us:
113c9ccf3a3SEmmanuel Vadot    description:
114c9ccf3a3SEmmanuel Vadot      An optional time value, expressed in microseconds, representing, on this
115c9ccf3a3SEmmanuel Vadot      platform, the threshold above which any SCMI command, advertised to have
116c9ccf3a3SEmmanuel Vadot      an higher-than-threshold execution latency, should not be considered for
117c9ccf3a3SEmmanuel Vadot      atomic mode of operation, even if requested.
118c9ccf3a3SEmmanuel Vadot    default: 0
119c9ccf3a3SEmmanuel Vadot
1205956d97fSEmmanuel Vadot  arm,smc-id:
1215956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1225956d97fSEmmanuel Vadot    description:
1235956d97fSEmmanuel Vadot      SMC id required when using smc or hvc transports
1245956d97fSEmmanuel Vadot
125c9ccf3a3SEmmanuel Vadot  linaro,optee-channel-id:
126c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
127c9ccf3a3SEmmanuel Vadot    description:
128c9ccf3a3SEmmanuel Vadot      Channel specifier required when using OP-TEE transport.
129c9ccf3a3SEmmanuel Vadot
1305956d97fSEmmanuel Vadot  protocol@11:
131cb7aa33aSEmmanuel Vadot    $ref: '#/$defs/protocol-node'
132cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
133cb7aa33aSEmmanuel Vadot
1345956d97fSEmmanuel Vadot    properties:
1355956d97fSEmmanuel Vadot      reg:
1365956d97fSEmmanuel Vadot        const: 0x11
1375956d97fSEmmanuel Vadot
1385956d97fSEmmanuel Vadot      '#power-domain-cells':
1395956d97fSEmmanuel Vadot        const: 1
1405956d97fSEmmanuel Vadot
1415956d97fSEmmanuel Vadot    required:
1425956d97fSEmmanuel Vadot      - '#power-domain-cells'
1435956d97fSEmmanuel Vadot
1445956d97fSEmmanuel Vadot  protocol@13:
145cb7aa33aSEmmanuel Vadot    $ref: '#/$defs/protocol-node'
146cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
147cb7aa33aSEmmanuel Vadot
1485956d97fSEmmanuel Vadot    properties:
1495956d97fSEmmanuel Vadot      reg:
1505956d97fSEmmanuel Vadot        const: 0x13
1515956d97fSEmmanuel Vadot
1525956d97fSEmmanuel Vadot      '#clock-cells':
1535956d97fSEmmanuel Vadot        const: 1
1545956d97fSEmmanuel Vadot
155*84943d6fSEmmanuel Vadot      '#power-domain-cells':
156*84943d6fSEmmanuel Vadot        const: 1
157*84943d6fSEmmanuel Vadot
158*84943d6fSEmmanuel Vadot    oneOf:
159*84943d6fSEmmanuel Vadot      - required:
1605956d97fSEmmanuel Vadot          - '#clock-cells'
1615956d97fSEmmanuel Vadot
162*84943d6fSEmmanuel Vadot      - required:
163*84943d6fSEmmanuel Vadot          - '#power-domain-cells'
164*84943d6fSEmmanuel Vadot
1655956d97fSEmmanuel Vadot  protocol@14:
166cb7aa33aSEmmanuel Vadot    $ref: '#/$defs/protocol-node'
167cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
168cb7aa33aSEmmanuel Vadot
1695956d97fSEmmanuel Vadot    properties:
1705956d97fSEmmanuel Vadot      reg:
1715956d97fSEmmanuel Vadot        const: 0x14
1725956d97fSEmmanuel Vadot
1735956d97fSEmmanuel Vadot      '#clock-cells':
1745956d97fSEmmanuel Vadot        const: 1
1755956d97fSEmmanuel Vadot
1765956d97fSEmmanuel Vadot    required:
1775956d97fSEmmanuel Vadot      - '#clock-cells'
1785956d97fSEmmanuel Vadot
1795956d97fSEmmanuel Vadot  protocol@15:
180cb7aa33aSEmmanuel Vadot    $ref: '#/$defs/protocol-node'
181cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
182cb7aa33aSEmmanuel Vadot
1835956d97fSEmmanuel Vadot    properties:
1845956d97fSEmmanuel Vadot      reg:
1855956d97fSEmmanuel Vadot        const: 0x15
1865956d97fSEmmanuel Vadot
1875956d97fSEmmanuel Vadot      '#thermal-sensor-cells':
1885956d97fSEmmanuel Vadot        const: 1
1895956d97fSEmmanuel Vadot
1905956d97fSEmmanuel Vadot    required:
1915956d97fSEmmanuel Vadot      - '#thermal-sensor-cells'
1925956d97fSEmmanuel Vadot
1935956d97fSEmmanuel Vadot  protocol@16:
194cb7aa33aSEmmanuel Vadot    $ref: '#/$defs/protocol-node'
195cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
196cb7aa33aSEmmanuel Vadot
1975956d97fSEmmanuel Vadot    properties:
1985956d97fSEmmanuel Vadot      reg:
1995956d97fSEmmanuel Vadot        const: 0x16
2005956d97fSEmmanuel Vadot
2015956d97fSEmmanuel Vadot      '#reset-cells':
2025956d97fSEmmanuel Vadot        const: 1
2035956d97fSEmmanuel Vadot
2045956d97fSEmmanuel Vadot    required:
2055956d97fSEmmanuel Vadot      - '#reset-cells'
2065956d97fSEmmanuel Vadot
2075956d97fSEmmanuel Vadot  protocol@17:
208cb7aa33aSEmmanuel Vadot    $ref: '#/$defs/protocol-node'
209cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
210cb7aa33aSEmmanuel Vadot
2115956d97fSEmmanuel Vadot    properties:
2125956d97fSEmmanuel Vadot      reg:
2135956d97fSEmmanuel Vadot        const: 0x17
2145956d97fSEmmanuel Vadot
2155956d97fSEmmanuel Vadot      regulators:
2165956d97fSEmmanuel Vadot        type: object
217cb7aa33aSEmmanuel Vadot        additionalProperties: false
2185956d97fSEmmanuel Vadot        description:
2195956d97fSEmmanuel Vadot          The list of all regulators provided by this SCMI controller.
2205956d97fSEmmanuel Vadot
221cb7aa33aSEmmanuel Vadot        properties:
222cb7aa33aSEmmanuel Vadot          '#address-cells':
223cb7aa33aSEmmanuel Vadot            const: 1
224cb7aa33aSEmmanuel Vadot
225cb7aa33aSEmmanuel Vadot          '#size-cells':
226cb7aa33aSEmmanuel Vadot            const: 0
227cb7aa33aSEmmanuel Vadot
2285956d97fSEmmanuel Vadot        patternProperties:
229cb7aa33aSEmmanuel Vadot          '^regulator@[0-9a-f]+$':
2305956d97fSEmmanuel Vadot            type: object
231f126890aSEmmanuel Vadot            $ref: /schemas/regulator/regulator.yaml#
232cb7aa33aSEmmanuel Vadot            unevaluatedProperties: false
2335956d97fSEmmanuel Vadot
2345956d97fSEmmanuel Vadot            properties:
2355956d97fSEmmanuel Vadot              reg:
2365956d97fSEmmanuel Vadot                maxItems: 1
2375956d97fSEmmanuel Vadot                description: Identifier for the voltage regulator.
2385956d97fSEmmanuel Vadot
2395956d97fSEmmanuel Vadot            required:
2405956d97fSEmmanuel Vadot              - reg
2415956d97fSEmmanuel Vadot
242b97ee269SEmmanuel Vadot  protocol@18:
243cb7aa33aSEmmanuel Vadot    $ref: '#/$defs/protocol-node'
244cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
245cb7aa33aSEmmanuel Vadot
246b97ee269SEmmanuel Vadot    properties:
247b97ee269SEmmanuel Vadot      reg:
248b97ee269SEmmanuel Vadot        const: 0x18
249b97ee269SEmmanuel Vadot
2505956d97fSEmmanuel VadotadditionalProperties: false
2515956d97fSEmmanuel Vadot
252cb7aa33aSEmmanuel Vadot$defs:
253cb7aa33aSEmmanuel Vadot  protocol-node:
2545956d97fSEmmanuel Vadot    type: object
2555956d97fSEmmanuel Vadot    description:
2565956d97fSEmmanuel Vadot      Each sub-node represents a protocol supported. If the platform
2575956d97fSEmmanuel Vadot      supports a dedicated communication channel for a particular protocol,
2585956d97fSEmmanuel Vadot      then the corresponding transport properties must be present.
259354d7675SEmmanuel Vadot      The virtio transport does not support a dedicated communication channel.
2605956d97fSEmmanuel Vadot
2615956d97fSEmmanuel Vadot    properties:
2625956d97fSEmmanuel Vadot      reg:
2635956d97fSEmmanuel Vadot        maxItems: 1
2645956d97fSEmmanuel Vadot
2655956d97fSEmmanuel Vadot      mbox-names:
266fac71e4eSEmmanuel Vadot        oneOf:
267fac71e4eSEmmanuel Vadot          - items:
2685956d97fSEmmanuel Vadot              - const: tx
2695956d97fSEmmanuel Vadot              - const: rx
270fac71e4eSEmmanuel Vadot            minItems: 1
271fac71e4eSEmmanuel Vadot          - items:
272fac71e4eSEmmanuel Vadot              - const: tx
273fac71e4eSEmmanuel Vadot              - const: tx_reply
274fac71e4eSEmmanuel Vadot              - const: rx
275fac71e4eSEmmanuel Vadot            minItems: 2
2765956d97fSEmmanuel Vadot
2775956d97fSEmmanuel Vadot      mboxes:
2785956d97fSEmmanuel Vadot        minItems: 1
279fac71e4eSEmmanuel Vadot        maxItems: 3
2805956d97fSEmmanuel Vadot
2815956d97fSEmmanuel Vadot      shmem:
2825956d97fSEmmanuel Vadot        minItems: 1
2835956d97fSEmmanuel Vadot        maxItems: 2
2845956d97fSEmmanuel Vadot
285c9ccf3a3SEmmanuel Vadot      linaro,optee-channel-id:
286c9ccf3a3SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
287c9ccf3a3SEmmanuel Vadot        description:
288c9ccf3a3SEmmanuel Vadot          Channel specifier required when using OP-TEE transport and
289c9ccf3a3SEmmanuel Vadot          protocol has a dedicated communication channel.
290c9ccf3a3SEmmanuel Vadot
2915956d97fSEmmanuel Vadot    required:
2925956d97fSEmmanuel Vadot      - reg
2935956d97fSEmmanuel Vadot
2945956d97fSEmmanuel Vadotrequired:
2955956d97fSEmmanuel Vadot  - compatible
2965956d97fSEmmanuel Vadot
2975956d97fSEmmanuel Vadotif:
2985956d97fSEmmanuel Vadot  properties:
2995956d97fSEmmanuel Vadot    compatible:
3005956d97fSEmmanuel Vadot      contains:
3015956d97fSEmmanuel Vadot        const: arm,scmi
3025956d97fSEmmanuel Vadotthen:
3035956d97fSEmmanuel Vadot  properties:
3045956d97fSEmmanuel Vadot    interrupts: false
3055956d97fSEmmanuel Vadot    interrupt-names: false
3065956d97fSEmmanuel Vadot
3075956d97fSEmmanuel Vadot  required:
3085956d97fSEmmanuel Vadot    - mboxes
309354d7675SEmmanuel Vadot    - shmem
3105956d97fSEmmanuel Vadot
3115956d97fSEmmanuel Vadotelse:
3125956d97fSEmmanuel Vadot  if:
3135956d97fSEmmanuel Vadot    properties:
3145956d97fSEmmanuel Vadot      compatible:
3155956d97fSEmmanuel Vadot        contains:
316f126890aSEmmanuel Vadot          enum:
317f126890aSEmmanuel Vadot            - arm,scmi-smc
318f126890aSEmmanuel Vadot            - arm,scmi-smc-param
319*84943d6fSEmmanuel Vadot            - qcom,scmi-smc
3205956d97fSEmmanuel Vadot  then:
3215956d97fSEmmanuel Vadot    required:
3225956d97fSEmmanuel Vadot      - arm,smc-id
323354d7675SEmmanuel Vadot      - shmem
3245956d97fSEmmanuel Vadot
325c9ccf3a3SEmmanuel Vadot  else:
326c9ccf3a3SEmmanuel Vadot    if:
327c9ccf3a3SEmmanuel Vadot      properties:
328c9ccf3a3SEmmanuel Vadot        compatible:
329c9ccf3a3SEmmanuel Vadot          contains:
330c9ccf3a3SEmmanuel Vadot            const: linaro,scmi-optee
331c9ccf3a3SEmmanuel Vadot    then:
332c9ccf3a3SEmmanuel Vadot      required:
333c9ccf3a3SEmmanuel Vadot        - linaro,optee-channel-id
334c9ccf3a3SEmmanuel Vadot
3355956d97fSEmmanuel Vadotexamples:
3365956d97fSEmmanuel Vadot  - |
3375956d97fSEmmanuel Vadot    firmware {
3385956d97fSEmmanuel Vadot        scmi {
3395956d97fSEmmanuel Vadot            compatible = "arm,scmi";
3405956d97fSEmmanuel Vadot            mboxes = <&mhuB 0 0>,
3415956d97fSEmmanuel Vadot                     <&mhuB 0 1>;
3425956d97fSEmmanuel Vadot            mbox-names = "tx", "rx";
3435956d97fSEmmanuel Vadot            shmem = <&cpu_scp_lpri0>,
3445956d97fSEmmanuel Vadot                    <&cpu_scp_lpri1>;
3455956d97fSEmmanuel Vadot
3465956d97fSEmmanuel Vadot            #address-cells = <1>;
3475956d97fSEmmanuel Vadot            #size-cells = <0>;
3485956d97fSEmmanuel Vadot
349c9ccf3a3SEmmanuel Vadot            atomic-threshold-us = <10000>;
350c9ccf3a3SEmmanuel Vadot
3515956d97fSEmmanuel Vadot            scmi_devpd: protocol@11 {
3525956d97fSEmmanuel Vadot                reg = <0x11>;
3535956d97fSEmmanuel Vadot                #power-domain-cells = <1>;
3545956d97fSEmmanuel Vadot            };
3555956d97fSEmmanuel Vadot
3565956d97fSEmmanuel Vadot            scmi_dvfs: protocol@13 {
3575956d97fSEmmanuel Vadot                reg = <0x13>;
3585956d97fSEmmanuel Vadot                #clock-cells = <1>;
3595956d97fSEmmanuel Vadot
3605956d97fSEmmanuel Vadot                mboxes = <&mhuB 1 0>,
3615956d97fSEmmanuel Vadot                         <&mhuB 1 1>;
3625956d97fSEmmanuel Vadot                mbox-names = "tx", "rx";
3635956d97fSEmmanuel Vadot                shmem = <&cpu_scp_hpri0>,
3645956d97fSEmmanuel Vadot                        <&cpu_scp_hpri1>;
3655956d97fSEmmanuel Vadot            };
3665956d97fSEmmanuel Vadot
3675956d97fSEmmanuel Vadot            scmi_clk: protocol@14 {
3685956d97fSEmmanuel Vadot                reg = <0x14>;
3695956d97fSEmmanuel Vadot                #clock-cells = <1>;
3705956d97fSEmmanuel Vadot            };
3715956d97fSEmmanuel Vadot
3725956d97fSEmmanuel Vadot            scmi_sensors: protocol@15 {
3735956d97fSEmmanuel Vadot                reg = <0x15>;
3745956d97fSEmmanuel Vadot                #thermal-sensor-cells = <1>;
3755956d97fSEmmanuel Vadot            };
3765956d97fSEmmanuel Vadot
3775956d97fSEmmanuel Vadot            scmi_reset: protocol@16 {
3785956d97fSEmmanuel Vadot                reg = <0x16>;
3795956d97fSEmmanuel Vadot                #reset-cells = <1>;
3805956d97fSEmmanuel Vadot            };
3815956d97fSEmmanuel Vadot
3825956d97fSEmmanuel Vadot            scmi_voltage: protocol@17 {
3835956d97fSEmmanuel Vadot                reg = <0x17>;
3845956d97fSEmmanuel Vadot                regulators {
3855956d97fSEmmanuel Vadot                    #address-cells = <1>;
3865956d97fSEmmanuel Vadot                    #size-cells = <0>;
3875956d97fSEmmanuel Vadot
3885956d97fSEmmanuel Vadot                    regulator_devX: regulator@0 {
3895956d97fSEmmanuel Vadot                        reg = <0x0>;
3905956d97fSEmmanuel Vadot                        regulator-max-microvolt = <3300000>;
3915956d97fSEmmanuel Vadot                    };
3925956d97fSEmmanuel Vadot
3935956d97fSEmmanuel Vadot                    regulator_devY: regulator@9 {
3945956d97fSEmmanuel Vadot                        reg = <0x9>;
3955956d97fSEmmanuel Vadot                        regulator-min-microvolt = <500000>;
3965956d97fSEmmanuel Vadot                        regulator-max-microvolt = <4200000>;
3975956d97fSEmmanuel Vadot                    };
3985956d97fSEmmanuel Vadot                };
3995956d97fSEmmanuel Vadot            };
400b97ee269SEmmanuel Vadot
401b97ee269SEmmanuel Vadot            scmi_powercap: protocol@18 {
402b97ee269SEmmanuel Vadot                reg = <0x18>;
403b97ee269SEmmanuel Vadot            };
4045956d97fSEmmanuel Vadot        };
4055956d97fSEmmanuel Vadot    };
4065956d97fSEmmanuel Vadot
4075956d97fSEmmanuel Vadot    soc {
4085956d97fSEmmanuel Vadot        #address-cells = <2>;
4095956d97fSEmmanuel Vadot        #size-cells = <2>;
4105956d97fSEmmanuel Vadot
4115956d97fSEmmanuel Vadot        sram@50000000 {
4125956d97fSEmmanuel Vadot            compatible = "mmio-sram";
4135956d97fSEmmanuel Vadot            reg = <0x0 0x50000000 0x0 0x10000>;
4145956d97fSEmmanuel Vadot
4155956d97fSEmmanuel Vadot            #address-cells = <1>;
4165956d97fSEmmanuel Vadot            #size-cells = <1>;
4175956d97fSEmmanuel Vadot            ranges = <0 0x0 0x50000000 0x10000>;
4185956d97fSEmmanuel Vadot
4195956d97fSEmmanuel Vadot            cpu_scp_lpri0: scp-sram-section@0 {
4205956d97fSEmmanuel Vadot                compatible = "arm,scmi-shmem";
4215956d97fSEmmanuel Vadot                reg = <0x0 0x80>;
4225956d97fSEmmanuel Vadot            };
4235956d97fSEmmanuel Vadot
4245956d97fSEmmanuel Vadot            cpu_scp_lpri1: scp-sram-section@80 {
4255956d97fSEmmanuel Vadot                compatible = "arm,scmi-shmem";
4265956d97fSEmmanuel Vadot                reg = <0x80 0x80>;
4275956d97fSEmmanuel Vadot            };
4285956d97fSEmmanuel Vadot
4295956d97fSEmmanuel Vadot            cpu_scp_hpri0: scp-sram-section@100 {
4305956d97fSEmmanuel Vadot                compatible = "arm,scmi-shmem";
4315956d97fSEmmanuel Vadot                reg = <0x100 0x80>;
4325956d97fSEmmanuel Vadot            };
4335956d97fSEmmanuel Vadot
4345956d97fSEmmanuel Vadot            cpu_scp_hpri2: scp-sram-section@180 {
4355956d97fSEmmanuel Vadot                compatible = "arm,scmi-shmem";
4365956d97fSEmmanuel Vadot                reg = <0x180 0x80>;
4375956d97fSEmmanuel Vadot            };
4385956d97fSEmmanuel Vadot        };
4395956d97fSEmmanuel Vadot    };
4405956d97fSEmmanuel Vadot
4415956d97fSEmmanuel Vadot  - |
4425956d97fSEmmanuel Vadot    firmware {
4435956d97fSEmmanuel Vadot        scmi {
4445956d97fSEmmanuel Vadot            compatible = "arm,scmi-smc";
445c9ccf3a3SEmmanuel Vadot            shmem = <&cpu_scp_lpri0>, <&cpu_scp_lpri1>;
4465956d97fSEmmanuel Vadot            arm,smc-id = <0xc3000001>;
4475956d97fSEmmanuel Vadot
4485956d97fSEmmanuel Vadot            #address-cells = <1>;
4495956d97fSEmmanuel Vadot            #size-cells = <0>;
4505956d97fSEmmanuel Vadot
4515956d97fSEmmanuel Vadot            scmi_devpd1: protocol@11 {
4525956d97fSEmmanuel Vadot                reg = <0x11>;
4535956d97fSEmmanuel Vadot                #power-domain-cells = <1>;
4545956d97fSEmmanuel Vadot            };
455c9ccf3a3SEmmanuel Vadot        };
456c9ccf3a3SEmmanuel Vadot    };
4575956d97fSEmmanuel Vadot
458c9ccf3a3SEmmanuel Vadot  - |
459c9ccf3a3SEmmanuel Vadot    firmware {
460c9ccf3a3SEmmanuel Vadot        scmi {
461c9ccf3a3SEmmanuel Vadot            compatible = "linaro,scmi-optee";
462c9ccf3a3SEmmanuel Vadot            linaro,optee-channel-id = <0>;
463c9ccf3a3SEmmanuel Vadot
464c9ccf3a3SEmmanuel Vadot            #address-cells = <1>;
465c9ccf3a3SEmmanuel Vadot            #size-cells = <0>;
466c9ccf3a3SEmmanuel Vadot
467c9ccf3a3SEmmanuel Vadot            scmi_dvfs1: protocol@13 {
468c9ccf3a3SEmmanuel Vadot                reg = <0x13>;
469c9ccf3a3SEmmanuel Vadot                linaro,optee-channel-id = <1>;
470c9ccf3a3SEmmanuel Vadot                shmem = <&cpu_optee_lpri0>;
471c9ccf3a3SEmmanuel Vadot                #clock-cells = <1>;
472c9ccf3a3SEmmanuel Vadot            };
473c9ccf3a3SEmmanuel Vadot
474c9ccf3a3SEmmanuel Vadot            scmi_clk0: protocol@14 {
475c9ccf3a3SEmmanuel Vadot                reg = <0x14>;
476c9ccf3a3SEmmanuel Vadot                #clock-cells = <1>;
477c9ccf3a3SEmmanuel Vadot            };
478c9ccf3a3SEmmanuel Vadot        };
479c9ccf3a3SEmmanuel Vadot    };
480c9ccf3a3SEmmanuel Vadot
481c9ccf3a3SEmmanuel Vadot    soc {
482c9ccf3a3SEmmanuel Vadot        #address-cells = <2>;
483c9ccf3a3SEmmanuel Vadot        #size-cells = <2>;
484c9ccf3a3SEmmanuel Vadot
485c9ccf3a3SEmmanuel Vadot        sram@51000000 {
486c9ccf3a3SEmmanuel Vadot            compatible = "mmio-sram";
487c9ccf3a3SEmmanuel Vadot            reg = <0x0 0x51000000 0x0 0x10000>;
488c9ccf3a3SEmmanuel Vadot
489c9ccf3a3SEmmanuel Vadot            #address-cells = <1>;
490c9ccf3a3SEmmanuel Vadot            #size-cells = <1>;
491c9ccf3a3SEmmanuel Vadot            ranges = <0 0x0 0x51000000 0x10000>;
492c9ccf3a3SEmmanuel Vadot
493c9ccf3a3SEmmanuel Vadot            cpu_optee_lpri0: optee-sram-section@0 {
494c9ccf3a3SEmmanuel Vadot                compatible = "arm,scmi-shmem";
495c9ccf3a3SEmmanuel Vadot                reg = <0x0 0x80>;
496c9ccf3a3SEmmanuel Vadot            };
4975956d97fSEmmanuel Vadot        };
4985956d97fSEmmanuel Vadot    };
4995956d97fSEmmanuel Vadot
5005956d97fSEmmanuel Vadot...
501