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