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
37 - description: SCMI compliant firmware with SCMI Virtio transport.
38 The virtio transport only supports a single device.
40 - const: arm,scmi-virtio
44 The interrupt that indicates message completion by the platform
45 rather than by the return of the smc call. This should not be used
46 except when the platform requires such behavior.
54 Specifies the mailboxes used to communicate with SCMI compliant
62 List of phandle and mailbox channel specifiers. It should contain
63 exactly one or two mailboxes, one for transmitting messages("tx")
64 and another optional for receiving the notifications("rx") if supported.
70 List of phandle pointing to the shared memory(SHM) area, for each
71 transport channel specified.
82 $ref: /schemas/types.yaml#/definitions/uint32
84 SMC id required when using smc or hvc transports
92 '#power-domain-cells':
96 - '#power-domain-cells'
128 '#thermal-sensor-cells':
132 - '#thermal-sensor-cells'
155 The list of all regulators provided by this SCMI controller.
158 '^regulators@[0-9a-f]+$':
160 $ref: "../regulator/regulator.yaml#"
165 description: Identifier for the voltage regulator.
170 additionalProperties: false
173 '^protocol@[0-9a-f]+$':
176 Each sub-node represents a protocol supported. If the platform
177 supports a dedicated communication channel for a particular protocol,
178 then the corresponding transport properties must be present.
179 The virtio transport does not support a dedicated communication channel.
212 interrupt-names: false
233 compatible = "arm,scmi";
234 mboxes = <&mhuB 0 0>,
236 mbox-names = "tx", "rx";
237 shmem = <&cpu_scp_lpri0>,
240 #address-cells = <1>;
243 scmi_devpd: protocol@11 {
245 #power-domain-cells = <1>;
248 scmi_dvfs: protocol@13 {
252 mboxes = <&mhuB 1 0>,
254 mbox-names = "tx", "rx";
255 shmem = <&cpu_scp_hpri0>,
259 scmi_clk: protocol@14 {
264 scmi_sensors: protocol@15 {
266 #thermal-sensor-cells = <1>;
269 scmi_reset: protocol@16 {
274 scmi_voltage: protocol@17 {
277 #address-cells = <1>;
280 regulator_devX: regulator@0 {
282 regulator-max-microvolt = <3300000>;
285 regulator_devY: regulator@9 {
287 regulator-min-microvolt = <500000>;
288 regulator-max-microvolt = <4200000>;
296 #address-cells = <2>;
300 compatible = "mmio-sram";
301 reg = <0x0 0x50000000 0x0 0x10000>;
303 #address-cells = <1>;
305 ranges = <0 0x0 0x50000000 0x10000>;
307 cpu_scp_lpri0: scp-sram-section@0 {
308 compatible = "arm,scmi-shmem";
312 cpu_scp_lpri1: scp-sram-section@80 {
313 compatible = "arm,scmi-shmem";
317 cpu_scp_hpri0: scp-sram-section@100 {
318 compatible = "arm,scmi-shmem";
322 cpu_scp_hpri2: scp-sram-section@180 {
323 compatible = "arm,scmi-shmem";
332 compatible = "arm,scmi-smc";
333 shmem = <&cpu_scp_lpri0 &cpu_scp_lpri1>;
334 arm,smc-id = <0xc3000001>;
336 #address-cells = <1>;
339 scmi_devpd1: protocol@11 {
341 #power-domain-cells = <1>;