1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 # Copyright 2021 ARM Ltd.
5 $id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
8 title: System Control and Management Interface (SCMI) Message Protocol bindings
11 - Sudeep Holla <sudeep.holla@arm.com>
14 The SCMI is intended to allow agents such as OSPM to manage various functions
15 that are provided by the hardware platform it is running on, including power
16 and performance functions.
18 This binding is intended to define the interface the firmware implementing
19 the SCMI as described in ARM document number ARM DEN 0056 ("ARM System Control
20 and Management Interface Platform Design Document")[0] provide for OSPM in
23 [0] https://developer.arm.com/documentation/den0056/latest
31 - description: SCMI compliant firmware with mailbox transport
34 - description: SCMI compliant firmware with ARM SMC/HVC transport
40 The interrupt that indicates message completion by the platform
41 rather than by the return of the smc call. This should not be used
42 except when the platform requires such behavior.
50 Specifies the mailboxes used to communicate with SCMI compliant
58 List of phandle and mailbox channel specifiers. It should contain
59 exactly one or two mailboxes, one for transmitting messages("tx")
60 and another optional for receiving the notifications("rx") if supported.
66 List of phandle pointing to the shared memory(SHM) area, for each
67 transport channel specified.
78 $ref: /schemas/types.yaml#/definitions/uint32
80 SMC id required when using smc or hvc transports
88 '#power-domain-cells':
92 - '#power-domain-cells'
124 '#thermal-sensor-cells':
128 - '#thermal-sensor-cells'
151 The list of all regulators provided by this SCMI controller.
154 '^regulators@[0-9a-f]+$':
156 $ref: "../regulator/regulator.yaml#"
161 description: Identifier for the voltage regulator.
166 additionalProperties: false
169 '^protocol@[0-9a-f]+$':
172 Each sub-node represents a protocol supported. If the platform
173 supports a dedicated communication channel for a particular protocol,
174 then the corresponding transport properties must be present.
208 interrupt-names: false
227 compatible = "arm,scmi";
228 mboxes = <&mhuB 0 0>,
230 mbox-names = "tx", "rx";
231 shmem = <&cpu_scp_lpri0>,
234 #address-cells = <1>;
237 scmi_devpd: protocol@11 {
239 #power-domain-cells = <1>;
242 scmi_dvfs: protocol@13 {
246 mboxes = <&mhuB 1 0>,
248 mbox-names = "tx", "rx";
249 shmem = <&cpu_scp_hpri0>,
253 scmi_clk: protocol@14 {
258 scmi_sensors: protocol@15 {
260 #thermal-sensor-cells = <1>;
263 scmi_reset: protocol@16 {
268 scmi_voltage: protocol@17 {
271 #address-cells = <1>;
274 regulator_devX: regulator@0 {
276 regulator-max-microvolt = <3300000>;
279 regulator_devY: regulator@9 {
281 regulator-min-microvolt = <500000>;
282 regulator-max-microvolt = <4200000>;
290 #address-cells = <2>;
294 compatible = "mmio-sram";
295 reg = <0x0 0x50000000 0x0 0x10000>;
297 #address-cells = <1>;
299 ranges = <0 0x0 0x50000000 0x10000>;
301 cpu_scp_lpri0: scp-sram-section@0 {
302 compatible = "arm,scmi-shmem";
306 cpu_scp_lpri1: scp-sram-section@80 {
307 compatible = "arm,scmi-shmem";
311 cpu_scp_hpri0: scp-sram-section@100 {
312 compatible = "arm,scmi-shmem";
316 cpu_scp_hpri2: scp-sram-section@180 {
317 compatible = "arm,scmi-shmem";
326 compatible = "arm,scmi-smc";
327 shmem = <&cpu_scp_lpri0 &cpu_scp_lpri1>;
328 arm,smc-id = <0xc3000001>;
330 #address-cells = <1>;
333 scmi_devpd1: protocol@11 {
335 #power-domain-cells = <1>;