xref: /linux/Documentation/devicetree/bindings/firmware/arm,scmi.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
161b8ac9bSSudeep Holla# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
261b8ac9bSSudeep Holla# Copyright 2021 ARM Ltd.
361b8ac9bSSudeep Holla%YAML 1.2
461b8ac9bSSudeep Holla---
561b8ac9bSSudeep Holla$id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
661b8ac9bSSudeep Holla$schema: http://devicetree.org/meta-schemas/core.yaml#
761b8ac9bSSudeep Holla
884e85359SKrzysztof Kozlowskititle: System Control and Management Interface (SCMI) Message Protocol
961b8ac9bSSudeep Holla
1061b8ac9bSSudeep Hollamaintainers:
1161b8ac9bSSudeep Holla  - Sudeep Holla <sudeep.holla@arm.com>
1261b8ac9bSSudeep Holla
1361b8ac9bSSudeep Holladescription: |
1461b8ac9bSSudeep Holla  The SCMI is intended to allow agents such as OSPM to manage various functions
1561b8ac9bSSudeep Holla  that are provided by the hardware platform it is running on, including power
1661b8ac9bSSudeep Holla  and performance functions.
1761b8ac9bSSudeep Holla
1861b8ac9bSSudeep Holla  This binding is intended to define the interface the firmware implementing
1961b8ac9bSSudeep Holla  the SCMI as described in ARM document number ARM DEN 0056 ("ARM System Control
2061b8ac9bSSudeep Holla  and Management Interface Platform Design Document")[0] provide for OSPM in
2161b8ac9bSSudeep Holla  the device tree.
2261b8ac9bSSudeep Holla
2361b8ac9bSSudeep Holla  [0] https://developer.arm.com/documentation/den0056/latest
2461b8ac9bSSudeep Holla
257d2b23fdSPeng FananyOf:
267d2b23fdSPeng Fan  - $ref: /schemas/firmware/nxp,imx95-scmi.yaml
277d2b23fdSPeng Fan
2861b8ac9bSSudeep Hollaproperties:
2961b8ac9bSSudeep Holla  $nodename:
3061b8ac9bSSudeep Holla    const: scmi
3161b8ac9bSSudeep Holla
3261b8ac9bSSudeep Holla  compatible:
3361b8ac9bSSudeep Holla    oneOf:
3461b8ac9bSSudeep Holla      - description: SCMI compliant firmware with mailbox transport
3561b8ac9bSSudeep Holla        items:
3661b8ac9bSSudeep Holla          - const: arm,scmi
3761b8ac9bSSudeep Holla      - description: SCMI compliant firmware with ARM SMC/HVC transport
3861b8ac9bSSudeep Holla        items:
3961b8ac9bSSudeep Holla          - const: arm,scmi-smc
408f9d530cSNikunj Kela      - description: SCMI compliant firmware with ARM SMC/HVC transport
418f9d530cSNikunj Kela                     with shmem address(4KB-page, offset) as parameters
428f9d530cSNikunj Kela        items:
438f9d530cSNikunj Kela          - const: arm,scmi-smc-param
446979f88fSNikunj Kela      - description: SCMI compliant firmware with Qualcomm SMC/HVC transport
456979f88fSNikunj Kela        items:
466979f88fSNikunj Kela          - const: qcom,scmi-smc
4760625667SIgor Skalkin      - description: SCMI compliant firmware with SCMI Virtio transport.
4860625667SIgor Skalkin                     The virtio transport only supports a single device.
4960625667SIgor Skalkin        items:
5060625667SIgor Skalkin          - const: arm,scmi-virtio
51b7d2cf7cSEtienne Carriere      - description: SCMI compliant firmware with OP-TEE transport
52b7d2cf7cSEtienne Carriere        items:
53b7d2cf7cSEtienne Carriere          - const: linaro,scmi-optee
5461b8ac9bSSudeep Holla
5561b8ac9bSSudeep Holla  interrupts:
5661b8ac9bSSudeep Holla    description:
5761b8ac9bSSudeep Holla      The interrupt that indicates message completion by the platform
5861b8ac9bSSudeep Holla      rather than by the return of the smc call. This should not be used
5961b8ac9bSSudeep Holla      except when the platform requires such behavior.
6061b8ac9bSSudeep Holla    maxItems: 1
6161b8ac9bSSudeep Holla
6261b8ac9bSSudeep Holla  interrupt-names:
6361b8ac9bSSudeep Holla    const: a2p
6461b8ac9bSSudeep Holla
6561b8ac9bSSudeep Holla  mbox-names:
6661b8ac9bSSudeep Holla    description:
6761b8ac9bSSudeep Holla      Specifies the mailboxes used to communicate with SCMI compliant
6861b8ac9bSSudeep Holla      firmware.
6992ac94f7SCristian Marussi    oneOf:
7092ac94f7SCristian Marussi      - items:
7161b8ac9bSSudeep Holla          - const: tx
7261b8ac9bSSudeep Holla          - const: rx
7392ac94f7SCristian Marussi        minItems: 1
7492ac94f7SCristian Marussi      - items:
7592ac94f7SCristian Marussi          - const: tx
7692ac94f7SCristian Marussi          - const: tx_reply
7792ac94f7SCristian Marussi          - const: rx
78d0398f51SPeng Fan          - const: rx_reply
7992ac94f7SCristian Marussi        minItems: 2
8061b8ac9bSSudeep Holla
8161b8ac9bSSudeep Holla  mboxes:
8261b8ac9bSSudeep Holla    description:
8361b8ac9bSSudeep Holla      List of phandle and mailbox channel specifiers. It should contain
84d0398f51SPeng Fan      exactly one, two, three or four mailboxes; the first one or two for
85d0398f51SPeng Fan      transmitting messages ("tx") and another optional ("rx") for receiving
86d0398f51SPeng Fan      notifications and delayed responses, if supported by the platform.
87d0398f51SPeng Fan      The optional ("rx_reply") is for notifications completion interrupt,
88d0398f51SPeng Fan      if supported by the platform.
8992ac94f7SCristian Marussi      The number of mailboxes needed for transmitting messages depends on the
9092ac94f7SCristian Marussi      type of channels exposed by the specific underlying mailbox controller;
9192ac94f7SCristian Marussi      one single channel descriptor is enough if such channel is bidirectional,
9292ac94f7SCristian Marussi      while two channel descriptors are needed to represent the SCMI ("tx")
9392ac94f7SCristian Marussi      channel if the underlying mailbox channels are of unidirectional type.
9492ac94f7SCristian Marussi      The effective combination in numbers of mboxes and shmem descriptors let
9592ac94f7SCristian Marussi      the SCMI subsystem determine unambiguosly which type of SCMI channels are
9692ac94f7SCristian Marussi      made available by the underlying mailbox controller and how to use them.
9792ac94f7SCristian Marussi       1 mbox / 1 shmem => SCMI TX over 1 mailbox bidirectional channel
9892ac94f7SCristian Marussi       2 mbox / 2 shmem => SCMI TX and RX over 2 mailbox bidirectional channels
9992ac94f7SCristian Marussi       2 mbox / 1 shmem => SCMI TX over 2 mailbox unidirectional channels
10092ac94f7SCristian Marussi       3 mbox / 2 shmem => SCMI TX and RX over 3 mailbox unidirectional channels
101d0398f51SPeng Fan       4 mbox / 2 shmem => SCMI TX and RX over 4 mailbox unidirectional channels
10292ac94f7SCristian Marussi      Any other combination of mboxes and shmem is invalid.
10361b8ac9bSSudeep Holla    minItems: 1
104d0398f51SPeng Fan    maxItems: 4
10561b8ac9bSSudeep Holla
10661b8ac9bSSudeep Holla  shmem:
10761b8ac9bSSudeep Holla    description:
10861b8ac9bSSudeep Holla      List of phandle pointing to the shared memory(SHM) area, for each
10961b8ac9bSSudeep Holla      transport channel specified.
11061b8ac9bSSudeep Holla    minItems: 1
11161b8ac9bSSudeep Holla    maxItems: 2
11261b8ac9bSSudeep Holla
11361b8ac9bSSudeep Holla  '#address-cells':
11461b8ac9bSSudeep Holla    const: 1
11561b8ac9bSSudeep Holla
11661b8ac9bSSudeep Holla  '#size-cells':
11761b8ac9bSSudeep Holla    const: 0
11861b8ac9bSSudeep Holla
1190539884cSCristian Marussi  atomic-threshold-us:
1200539884cSCristian Marussi    description:
1210539884cSCristian Marussi      An optional time value, expressed in microseconds, representing, on this
1220539884cSCristian Marussi      platform, the threshold above which any SCMI command, advertised to have
1230539884cSCristian Marussi      an higher-than-threshold execution latency, should not be considered for
1240539884cSCristian Marussi      atomic mode of operation, even if requested.
1250539884cSCristian Marussi    default: 0
1260539884cSCristian Marussi
1277bf46ec0SCristian Marussi  arm,max-rx-timeout-ms:
1283a5e6ab0SPeng Fan    description:
1293a5e6ab0SPeng Fan      An optional time value, expressed in milliseconds, representing the
1303a5e6ab0SPeng Fan      transport maximum timeout value for the receive channel. The value should
1313a5e6ab0SPeng Fan      be a non-zero value if set.
1323a5e6ab0SPeng Fan    minimum: 1
1333a5e6ab0SPeng Fan
134*5654d372SCristian Marussi  arm,max-msg-size:
135*5654d372SCristian Marussi    $ref: /schemas/types.yaml#/definitions/uint32
136*5654d372SCristian Marussi    description:
137*5654d372SCristian Marussi      An optional value, expressed in bytes, representing the maximum size
138*5654d372SCristian Marussi      allowed for the payload of messages transmitted on this transport.
139*5654d372SCristian Marussi
140*5654d372SCristian Marussi  arm,max-msg:
141*5654d372SCristian Marussi    $ref: /schemas/types.yaml#/definitions/uint32
142*5654d372SCristian Marussi    description:
143*5654d372SCristian Marussi      An optional value representing the maximum number of concurrent in-flight
144*5654d372SCristian Marussi      messages allowed by this transport; this number represents the maximum
145*5654d372SCristian Marussi      number of concurrently outstanding messages that the server can handle on
146*5654d372SCristian Marussi      this platform. If set, the value should be non-zero.
147*5654d372SCristian Marussi    minimum: 1
148*5654d372SCristian Marussi
14961b8ac9bSSudeep Holla  arm,smc-id:
15061b8ac9bSSudeep Holla    $ref: /schemas/types.yaml#/definitions/uint32
15161b8ac9bSSudeep Holla    description:
15261b8ac9bSSudeep Holla      SMC id required when using smc or hvc transports
15361b8ac9bSSudeep Holla
154b7d2cf7cSEtienne Carriere  linaro,optee-channel-id:
155b7d2cf7cSEtienne Carriere    $ref: /schemas/types.yaml#/definitions/uint32
156b7d2cf7cSEtienne Carriere    description:
157b7d2cf7cSEtienne Carriere      Channel specifier required when using OP-TEE transport.
158b7d2cf7cSEtienne Carriere
15961b8ac9bSSudeep Holla  protocol@11:
160df4fdd0dSRob Herring    $ref: '#/$defs/protocol-node'
161df4fdd0dSRob Herring    unevaluatedProperties: false
162df4fdd0dSRob Herring
16361b8ac9bSSudeep Holla    properties:
16461b8ac9bSSudeep Holla      reg:
16561b8ac9bSSudeep Holla        const: 0x11
16661b8ac9bSSudeep Holla
16761b8ac9bSSudeep Holla      '#power-domain-cells':
16861b8ac9bSSudeep Holla        const: 1
16961b8ac9bSSudeep Holla
17061b8ac9bSSudeep Holla    required:
17161b8ac9bSSudeep Holla      - '#power-domain-cells'
17261b8ac9bSSudeep Holla
1734d5921a3SPeng Fan  protocol@12:
1744d5921a3SPeng Fan    $ref: '#/$defs/protocol-node'
1754d5921a3SPeng Fan    unevaluatedProperties: false
1764d5921a3SPeng Fan
1774d5921a3SPeng Fan    properties:
1784d5921a3SPeng Fan      reg:
1794d5921a3SPeng Fan        const: 0x12
1804d5921a3SPeng Fan
18161b8ac9bSSudeep Holla  protocol@13:
182df4fdd0dSRob Herring    $ref: '#/$defs/protocol-node'
183df4fdd0dSRob Herring    unevaluatedProperties: false
184df4fdd0dSRob Herring
18561b8ac9bSSudeep Holla    properties:
18661b8ac9bSSudeep Holla      reg:
18761b8ac9bSSudeep Holla        const: 0x13
18861b8ac9bSSudeep Holla
18961b8ac9bSSudeep Holla      '#clock-cells':
19061b8ac9bSSudeep Holla        const: 1
19161b8ac9bSSudeep Holla
192e11c480bSUlf Hansson      '#power-domain-cells':
193e11c480bSUlf Hansson        const: 1
194e11c480bSUlf Hansson
195e11c480bSUlf Hansson    oneOf:
196e11c480bSUlf Hansson      - required:
19761b8ac9bSSudeep Holla          - '#clock-cells'
19861b8ac9bSSudeep Holla
199e11c480bSUlf Hansson      - required:
200e11c480bSUlf Hansson          - '#power-domain-cells'
201e11c480bSUlf Hansson
20261b8ac9bSSudeep Holla  protocol@14:
203df4fdd0dSRob Herring    $ref: '#/$defs/protocol-node'
204df4fdd0dSRob Herring    unevaluatedProperties: false
205df4fdd0dSRob Herring
20661b8ac9bSSudeep Holla    properties:
20761b8ac9bSSudeep Holla      reg:
20861b8ac9bSSudeep Holla        const: 0x14
20961b8ac9bSSudeep Holla
21061b8ac9bSSudeep Holla      '#clock-cells':
21161b8ac9bSSudeep Holla        const: 1
21261b8ac9bSSudeep Holla
21361b8ac9bSSudeep Holla    required:
21461b8ac9bSSudeep Holla      - '#clock-cells'
21561b8ac9bSSudeep Holla
21661b8ac9bSSudeep Holla  protocol@15:
217df4fdd0dSRob Herring    $ref: '#/$defs/protocol-node'
218df4fdd0dSRob Herring    unevaluatedProperties: false
219df4fdd0dSRob Herring
22061b8ac9bSSudeep Holla    properties:
22161b8ac9bSSudeep Holla      reg:
22261b8ac9bSSudeep Holla        const: 0x15
22361b8ac9bSSudeep Holla
22461b8ac9bSSudeep Holla      '#thermal-sensor-cells':
22561b8ac9bSSudeep Holla        const: 1
22661b8ac9bSSudeep Holla
22761b8ac9bSSudeep Holla    required:
22861b8ac9bSSudeep Holla      - '#thermal-sensor-cells'
22961b8ac9bSSudeep Holla
23061b8ac9bSSudeep Holla  protocol@16:
231df4fdd0dSRob Herring    $ref: '#/$defs/protocol-node'
232df4fdd0dSRob Herring    unevaluatedProperties: false
233df4fdd0dSRob Herring
23461b8ac9bSSudeep Holla    properties:
23561b8ac9bSSudeep Holla      reg:
23661b8ac9bSSudeep Holla        const: 0x16
23761b8ac9bSSudeep Holla
23861b8ac9bSSudeep Holla      '#reset-cells':
23961b8ac9bSSudeep Holla        const: 1
24061b8ac9bSSudeep Holla
24161b8ac9bSSudeep Holla    required:
24261b8ac9bSSudeep Holla      - '#reset-cells'
24361b8ac9bSSudeep Holla
24461b8ac9bSSudeep Holla  protocol@17:
245df4fdd0dSRob Herring    $ref: '#/$defs/protocol-node'
246df4fdd0dSRob Herring    unevaluatedProperties: false
247df4fdd0dSRob Herring
24861b8ac9bSSudeep Holla    properties:
24961b8ac9bSSudeep Holla      reg:
25061b8ac9bSSudeep Holla        const: 0x17
25161b8ac9bSSudeep Holla
25261b8ac9bSSudeep Holla      regulators:
25361b8ac9bSSudeep Holla        type: object
254df4fdd0dSRob Herring        additionalProperties: false
25561b8ac9bSSudeep Holla        description:
25661b8ac9bSSudeep Holla          The list of all regulators provided by this SCMI controller.
25761b8ac9bSSudeep Holla
258df4fdd0dSRob Herring        properties:
259df4fdd0dSRob Herring          '#address-cells':
260df4fdd0dSRob Herring            const: 1
261df4fdd0dSRob Herring
262df4fdd0dSRob Herring          '#size-cells':
263df4fdd0dSRob Herring            const: 0
264df4fdd0dSRob Herring
26561b8ac9bSSudeep Holla        patternProperties:
266df4fdd0dSRob Herring          '^regulator@[0-9a-f]+$':
26761b8ac9bSSudeep Holla            type: object
2687123c05cSKrzysztof Kozlowski            $ref: /schemas/regulator/regulator.yaml#
269df4fdd0dSRob Herring            unevaluatedProperties: false
27061b8ac9bSSudeep Holla
27161b8ac9bSSudeep Holla            properties:
27261b8ac9bSSudeep Holla              reg:
27361b8ac9bSSudeep Holla                maxItems: 1
27461b8ac9bSSudeep Holla                description: Identifier for the voltage regulator.
27561b8ac9bSSudeep Holla
27661b8ac9bSSudeep Holla            required:
27761b8ac9bSSudeep Holla              - reg
27861b8ac9bSSudeep Holla
279451d8457SCristian Marussi  protocol@18:
280df4fdd0dSRob Herring    $ref: '#/$defs/protocol-node'
281df4fdd0dSRob Herring    unevaluatedProperties: false
282df4fdd0dSRob Herring
283451d8457SCristian Marussi    properties:
284451d8457SCristian Marussi      reg:
285451d8457SCristian Marussi        const: 0x18
286451d8457SCristian Marussi
2871b403075SPeng Fan  protocol@19:
2881b403075SPeng Fan    type: object
2891b403075SPeng Fan    allOf:
2901b403075SPeng Fan      - $ref: '#/$defs/protocol-node'
291997f2cdeSPeng Fan      - anyOf:
2921b403075SPeng Fan          - $ref: /schemas/pinctrl/pinctrl.yaml
293997f2cdeSPeng Fan          - $ref: /schemas/firmware/nxp,imx95-scmi-pinctrl.yaml
2941b403075SPeng Fan
2951b403075SPeng Fan    unevaluatedProperties: false
2961b403075SPeng Fan
2971b403075SPeng Fan    properties:
2981b403075SPeng Fan      reg:
2991b403075SPeng Fan        const: 0x19
3001b403075SPeng Fan
3011b403075SPeng Fan    patternProperties:
3021b403075SPeng Fan      '-pins$':
3031b403075SPeng Fan        type: object
3041b403075SPeng Fan        allOf:
3051b403075SPeng Fan          - $ref: /schemas/pinctrl/pincfg-node.yaml#
3061b403075SPeng Fan          - $ref: /schemas/pinctrl/pinmux-node.yaml#
3071b403075SPeng Fan        unevaluatedProperties: false
3081b403075SPeng Fan
3091b403075SPeng Fan        description:
3101b403075SPeng Fan          A pin multiplexing sub-node describes how to configure a
3111b403075SPeng Fan          set of pins in some desired function.
3121b403075SPeng Fan          A single sub-node may define several pin configurations.
3131b403075SPeng Fan          This sub-node is using the default pinctrl bindings to configure
3141b403075SPeng Fan          pin multiplexing and using SCMI protocol to apply a specified
3151b403075SPeng Fan          configuration.
3161b403075SPeng Fan
3171b403075SPeng Fan    required:
3181b403075SPeng Fan      - reg
3191b403075SPeng Fan
3207d2b23fdSPeng FanunevaluatedProperties: false
32161b8ac9bSSudeep Holla
322df4fdd0dSRob Herring$defs:
323df4fdd0dSRob Herring  protocol-node:
32461b8ac9bSSudeep Holla    type: object
32561b8ac9bSSudeep Holla    description:
32661b8ac9bSSudeep Holla      Each sub-node represents a protocol supported. If the platform
32761b8ac9bSSudeep Holla      supports a dedicated communication channel for a particular protocol,
32861b8ac9bSSudeep Holla      then the corresponding transport properties must be present.
32960625667SIgor Skalkin      The virtio transport does not support a dedicated communication channel.
33061b8ac9bSSudeep Holla
33161b8ac9bSSudeep Holla    properties:
33261b8ac9bSSudeep Holla      reg:
33361b8ac9bSSudeep Holla        maxItems: 1
33461b8ac9bSSudeep Holla
33561b8ac9bSSudeep Holla      mbox-names:
33692ac94f7SCristian Marussi        oneOf:
33792ac94f7SCristian Marussi          - items:
33861b8ac9bSSudeep Holla              - const: tx
33961b8ac9bSSudeep Holla              - const: rx
34092ac94f7SCristian Marussi            minItems: 1
34192ac94f7SCristian Marussi          - items:
34292ac94f7SCristian Marussi              - const: tx
34392ac94f7SCristian Marussi              - const: tx_reply
34492ac94f7SCristian Marussi              - const: rx
34592ac94f7SCristian Marussi            minItems: 2
34661b8ac9bSSudeep Holla
34761b8ac9bSSudeep Holla      mboxes:
34861b8ac9bSSudeep Holla        minItems: 1
34992ac94f7SCristian Marussi        maxItems: 3
35061b8ac9bSSudeep Holla
35161b8ac9bSSudeep Holla      shmem:
35261b8ac9bSSudeep Holla        minItems: 1
35361b8ac9bSSudeep Holla        maxItems: 2
35461b8ac9bSSudeep Holla
355b7d2cf7cSEtienne Carriere      linaro,optee-channel-id:
356b7d2cf7cSEtienne Carriere        $ref: /schemas/types.yaml#/definitions/uint32
357b7d2cf7cSEtienne Carriere        description:
358b7d2cf7cSEtienne Carriere          Channel specifier required when using OP-TEE transport and
359b7d2cf7cSEtienne Carriere          protocol has a dedicated communication channel.
360b7d2cf7cSEtienne Carriere
36161b8ac9bSSudeep Holla    required:
36261b8ac9bSSudeep Holla      - reg
36361b8ac9bSSudeep Holla
36461b8ac9bSSudeep Hollarequired:
36561b8ac9bSSudeep Holla  - compatible
36661b8ac9bSSudeep Holla
36761b8ac9bSSudeep Hollaif:
36861b8ac9bSSudeep Holla  properties:
36961b8ac9bSSudeep Holla    compatible:
37061b8ac9bSSudeep Holla      contains:
37161b8ac9bSSudeep Holla        const: arm,scmi
37261b8ac9bSSudeep Hollathen:
37361b8ac9bSSudeep Holla  properties:
37461b8ac9bSSudeep Holla    interrupts: false
37561b8ac9bSSudeep Holla    interrupt-names: false
37661b8ac9bSSudeep Holla
37761b8ac9bSSudeep Holla  required:
37861b8ac9bSSudeep Holla    - mboxes
37960625667SIgor Skalkin    - shmem
38061b8ac9bSSudeep Holla
38161b8ac9bSSudeep Hollaelse:
38261b8ac9bSSudeep Holla  if:
38361b8ac9bSSudeep Holla    properties:
38461b8ac9bSSudeep Holla      compatible:
38561b8ac9bSSudeep Holla        contains:
3868f9d530cSNikunj Kela          enum:
3878f9d530cSNikunj Kela            - arm,scmi-smc
3888f9d530cSNikunj Kela            - arm,scmi-smc-param
3896979f88fSNikunj Kela            - qcom,scmi-smc
39061b8ac9bSSudeep Holla  then:
39161b8ac9bSSudeep Holla    required:
39261b8ac9bSSudeep Holla      - arm,smc-id
39360625667SIgor Skalkin      - shmem
39461b8ac9bSSudeep Holla
395b7d2cf7cSEtienne Carriere  else:
396b7d2cf7cSEtienne Carriere    if:
397b7d2cf7cSEtienne Carriere      properties:
398b7d2cf7cSEtienne Carriere        compatible:
399b7d2cf7cSEtienne Carriere          contains:
400b7d2cf7cSEtienne Carriere            const: linaro,scmi-optee
401b7d2cf7cSEtienne Carriere    then:
402b7d2cf7cSEtienne Carriere      required:
403b7d2cf7cSEtienne Carriere        - linaro,optee-channel-id
404b7d2cf7cSEtienne Carriere
40561b8ac9bSSudeep Hollaexamples:
40661b8ac9bSSudeep Holla  - |
40761b8ac9bSSudeep Holla    firmware {
40861b8ac9bSSudeep Holla        scmi {
40961b8ac9bSSudeep Holla            compatible = "arm,scmi";
41061b8ac9bSSudeep Holla            mboxes = <&mhuB 0 0>,
41161b8ac9bSSudeep Holla                     <&mhuB 0 1>;
41261b8ac9bSSudeep Holla            mbox-names = "tx", "rx";
41361b8ac9bSSudeep Holla            shmem = <&cpu_scp_lpri0>,
41461b8ac9bSSudeep Holla                    <&cpu_scp_lpri1>;
41561b8ac9bSSudeep Holla
41661b8ac9bSSudeep Holla            #address-cells = <1>;
41761b8ac9bSSudeep Holla            #size-cells = <0>;
41861b8ac9bSSudeep Holla
4190539884cSCristian Marussi            atomic-threshold-us = <10000>;
4200539884cSCristian Marussi
42161b8ac9bSSudeep Holla            scmi_devpd: protocol@11 {
42261b8ac9bSSudeep Holla                reg = <0x11>;
42361b8ac9bSSudeep Holla                #power-domain-cells = <1>;
42461b8ac9bSSudeep Holla            };
42561b8ac9bSSudeep Holla
42661b8ac9bSSudeep Holla            scmi_dvfs: protocol@13 {
42761b8ac9bSSudeep Holla                reg = <0x13>;
42846258103SUlf Hansson                #power-domain-cells = <1>;
42961b8ac9bSSudeep Holla
43061b8ac9bSSudeep Holla                mboxes = <&mhuB 1 0>,
43161b8ac9bSSudeep Holla                         <&mhuB 1 1>;
43261b8ac9bSSudeep Holla                mbox-names = "tx", "rx";
43361b8ac9bSSudeep Holla                shmem = <&cpu_scp_hpri0>,
43461b8ac9bSSudeep Holla                        <&cpu_scp_hpri1>;
43561b8ac9bSSudeep Holla            };
43661b8ac9bSSudeep Holla
43761b8ac9bSSudeep Holla            scmi_clk: protocol@14 {
43861b8ac9bSSudeep Holla                reg = <0x14>;
43961b8ac9bSSudeep Holla                #clock-cells = <1>;
44061b8ac9bSSudeep Holla            };
44161b8ac9bSSudeep Holla
44261b8ac9bSSudeep Holla            scmi_sensors: protocol@15 {
44361b8ac9bSSudeep Holla                reg = <0x15>;
44461b8ac9bSSudeep Holla                #thermal-sensor-cells = <1>;
44561b8ac9bSSudeep Holla            };
44661b8ac9bSSudeep Holla
44761b8ac9bSSudeep Holla            scmi_reset: protocol@16 {
44861b8ac9bSSudeep Holla                reg = <0x16>;
44961b8ac9bSSudeep Holla                #reset-cells = <1>;
45061b8ac9bSSudeep Holla            };
45161b8ac9bSSudeep Holla
45261b8ac9bSSudeep Holla            scmi_voltage: protocol@17 {
45361b8ac9bSSudeep Holla                reg = <0x17>;
45461b8ac9bSSudeep Holla                regulators {
45561b8ac9bSSudeep Holla                    #address-cells = <1>;
45661b8ac9bSSudeep Holla                    #size-cells = <0>;
45761b8ac9bSSudeep Holla
45861b8ac9bSSudeep Holla                    regulator_devX: regulator@0 {
45961b8ac9bSSudeep Holla                        reg = <0x0>;
46061b8ac9bSSudeep Holla                        regulator-max-microvolt = <3300000>;
46161b8ac9bSSudeep Holla                    };
46261b8ac9bSSudeep Holla
46361b8ac9bSSudeep Holla                    regulator_devY: regulator@9 {
46461b8ac9bSSudeep Holla                        reg = <0x9>;
46561b8ac9bSSudeep Holla                        regulator-min-microvolt = <500000>;
46661b8ac9bSSudeep Holla                        regulator-max-microvolt = <4200000>;
46761b8ac9bSSudeep Holla                    };
46861b8ac9bSSudeep Holla                };
46961b8ac9bSSudeep Holla            };
470451d8457SCristian Marussi
471451d8457SCristian Marussi            scmi_powercap: protocol@18 {
472451d8457SCristian Marussi                reg = <0x18>;
473451d8457SCristian Marussi            };
4741b403075SPeng Fan
4751b403075SPeng Fan            scmi_pinctrl: protocol@19 {
4761b403075SPeng Fan                reg = <0x19>;
4771b403075SPeng Fan
4781b403075SPeng Fan                i2c2-pins {
4791b403075SPeng Fan                    groups = "g_i2c2_a", "g_i2c2_b";
4801b403075SPeng Fan                    function = "f_i2c2";
4811b403075SPeng Fan                };
4821b403075SPeng Fan
4831b403075SPeng Fan                mdio-pins {
4841b403075SPeng Fan                    groups = "g_avb_mdio";
4851b403075SPeng Fan                    drive-strength = <24>;
4861b403075SPeng Fan                };
4871b403075SPeng Fan
4881b403075SPeng Fan                keys_pins: keys-pins {
4891b403075SPeng Fan                    pins = "gpio_5_17", "gpio_5_20", "gpio_5_22", "gpio_2_1";
4901b403075SPeng Fan                    bias-pull-up;
4911b403075SPeng Fan                };
4921b403075SPeng Fan            };
49361b8ac9bSSudeep Holla        };
49461b8ac9bSSudeep Holla    };
49561b8ac9bSSudeep Holla
49661b8ac9bSSudeep Holla    soc {
49761b8ac9bSSudeep Holla        #address-cells = <2>;
49861b8ac9bSSudeep Holla        #size-cells = <2>;
49961b8ac9bSSudeep Holla
50061b8ac9bSSudeep Holla        sram@50000000 {
50161b8ac9bSSudeep Holla            compatible = "mmio-sram";
50261b8ac9bSSudeep Holla            reg = <0x0 0x50000000 0x0 0x10000>;
50361b8ac9bSSudeep Holla
50461b8ac9bSSudeep Holla            #address-cells = <1>;
50561b8ac9bSSudeep Holla            #size-cells = <1>;
50661b8ac9bSSudeep Holla            ranges = <0 0x0 0x50000000 0x10000>;
50761b8ac9bSSudeep Holla
50861b8ac9bSSudeep Holla            cpu_scp_lpri0: scp-sram-section@0 {
50961b8ac9bSSudeep Holla                compatible = "arm,scmi-shmem";
51061b8ac9bSSudeep Holla                reg = <0x0 0x80>;
51161b8ac9bSSudeep Holla            };
51261b8ac9bSSudeep Holla
51361b8ac9bSSudeep Holla            cpu_scp_lpri1: scp-sram-section@80 {
51461b8ac9bSSudeep Holla                compatible = "arm,scmi-shmem";
51561b8ac9bSSudeep Holla                reg = <0x80 0x80>;
51661b8ac9bSSudeep Holla            };
51761b8ac9bSSudeep Holla
51861b8ac9bSSudeep Holla            cpu_scp_hpri0: scp-sram-section@100 {
51961b8ac9bSSudeep Holla                compatible = "arm,scmi-shmem";
52061b8ac9bSSudeep Holla                reg = <0x100 0x80>;
52161b8ac9bSSudeep Holla            };
52261b8ac9bSSudeep Holla
52361b8ac9bSSudeep Holla            cpu_scp_hpri2: scp-sram-section@180 {
52461b8ac9bSSudeep Holla                compatible = "arm,scmi-shmem";
52561b8ac9bSSudeep Holla                reg = <0x180 0x80>;
52661b8ac9bSSudeep Holla            };
52761b8ac9bSSudeep Holla        };
52861b8ac9bSSudeep Holla    };
52961b8ac9bSSudeep Holla
53061b8ac9bSSudeep Holla  - |
53161b8ac9bSSudeep Holla    firmware {
53261b8ac9bSSudeep Holla        scmi {
53361b8ac9bSSudeep Holla            compatible = "arm,scmi-smc";
53439bd2b6aSRob Herring            shmem = <&cpu_scp_lpri0>, <&cpu_scp_lpri1>;
53561b8ac9bSSudeep Holla            arm,smc-id = <0xc3000001>;
53661b8ac9bSSudeep Holla
53761b8ac9bSSudeep Holla            #address-cells = <1>;
53861b8ac9bSSudeep Holla            #size-cells = <0>;
53961b8ac9bSSudeep Holla
54061b8ac9bSSudeep Holla            scmi_devpd1: protocol@11 {
54161b8ac9bSSudeep Holla                reg = <0x11>;
54261b8ac9bSSudeep Holla                #power-domain-cells = <1>;
54361b8ac9bSSudeep Holla            };
544b7d2cf7cSEtienne Carriere        };
545b7d2cf7cSEtienne Carriere    };
54661b8ac9bSSudeep Holla
547b7d2cf7cSEtienne Carriere  - |
548b7d2cf7cSEtienne Carriere    firmware {
549b7d2cf7cSEtienne Carriere        scmi {
550b7d2cf7cSEtienne Carriere            compatible = "linaro,scmi-optee";
551b7d2cf7cSEtienne Carriere            linaro,optee-channel-id = <0>;
552b7d2cf7cSEtienne Carriere
553b7d2cf7cSEtienne Carriere            #address-cells = <1>;
554b7d2cf7cSEtienne Carriere            #size-cells = <0>;
555b7d2cf7cSEtienne Carriere
556b7d2cf7cSEtienne Carriere            scmi_dvfs1: protocol@13 {
557b7d2cf7cSEtienne Carriere                reg = <0x13>;
558b7d2cf7cSEtienne Carriere                linaro,optee-channel-id = <1>;
559b7d2cf7cSEtienne Carriere                shmem = <&cpu_optee_lpri0>;
56046258103SUlf Hansson                #power-domain-cells = <1>;
561b7d2cf7cSEtienne Carriere            };
562b7d2cf7cSEtienne Carriere
563b7d2cf7cSEtienne Carriere            scmi_clk0: protocol@14 {
564b7d2cf7cSEtienne Carriere                reg = <0x14>;
565b7d2cf7cSEtienne Carriere                #clock-cells = <1>;
566b7d2cf7cSEtienne Carriere            };
567b7d2cf7cSEtienne Carriere        };
568b7d2cf7cSEtienne Carriere    };
569b7d2cf7cSEtienne Carriere
570b7d2cf7cSEtienne Carriere    soc {
571b7d2cf7cSEtienne Carriere        #address-cells = <2>;
572b7d2cf7cSEtienne Carriere        #size-cells = <2>;
573b7d2cf7cSEtienne Carriere
574b7d2cf7cSEtienne Carriere        sram@51000000 {
575b7d2cf7cSEtienne Carriere            compatible = "mmio-sram";
576b7d2cf7cSEtienne Carriere            reg = <0x0 0x51000000 0x0 0x10000>;
577b7d2cf7cSEtienne Carriere
578b7d2cf7cSEtienne Carriere            #address-cells = <1>;
579b7d2cf7cSEtienne Carriere            #size-cells = <1>;
580b7d2cf7cSEtienne Carriere            ranges = <0 0x0 0x51000000 0x10000>;
581b7d2cf7cSEtienne Carriere
582b7d2cf7cSEtienne Carriere            cpu_optee_lpri0: optee-sram-section@0 {
583b7d2cf7cSEtienne Carriere                compatible = "arm,scmi-shmem";
584b7d2cf7cSEtienne Carriere                reg = <0x0 0x80>;
585b7d2cf7cSEtienne Carriere            };
58661b8ac9bSSudeep Holla        };
58761b8ac9bSSudeep Holla    };
58861b8ac9bSSudeep Holla
58961b8ac9bSSudeep Holla...
590