Lines Matching +full:scmi +full:- +full:clock
9 What is SCMI?
12 System Control and Management Interface (SCMI) is a specification developed by
13 ARM, which describes a set of OS-agnostic software interfaces used to perform
14 system management (e.g: clock control, pinctrl, etc...).
20 The SCMI specification defines **four** key terms, which will also be used throughout
24 Entity that performs SCMI requests (e.g: gating a clock or configuring
35 The SCMI specification defines ten standard protocols:
41 #. **Clock management** (0x14)
51 Apart from the standard protocols, the SCMI specification reserves the
52 **0x80-0xFF** protocol ID range for vendor-specific protocols.
83 The SCMI specification defines **four** types of messages:
100 The Zephyr support for SCMI is based on the documentation provided by ARM:
104 SCMI support in Zephyr
107 Shared memory and doorbell-based transport
112 memory area is performed using a driver (:file:`drivers/firmware/scmi/shmem.c`),
117 transport API, which is implemented by the shared memory and doorbell-based
118 transport driver (:file:`drivers/firmware/scmi/mailbox.c`).
138 #. **Clock management**
142 Clock management protocol
145 This protocol is used to perform clock management operations. This is done
147 implements the Zephyr clock control subsystem API. As such, from the user's
148 perspective, using this driver is no different than using any other clock
152 This driver is vendor-agnostic. As such, it may be used on any
153 system that uses SCMI for clock management operations.
166 call into the SCMI pin control protocol function implementing the
170 Enabling the SCMI support
173 To use the SCMI support, each vendor is required to add an ``scmi`` DT
174 node (used for transport driver binding) and a ``protocol`` node under the ``scmi``
183 SCMI support. It's assumed that the only protocol required is the clock
186 .. code-block:: devicetree
194 compatible = "arm,scmi-shmem";
198 scmi {
199 /* compatible for shared memory and doorbell-based transport */
200 compatible = "arm,scmi";
202 /* one SCMI channel => A2P/transmit channel */
207 mbox-names = "tx", "tx_reply";
210 compatible = "arm,scmi-clock";
212 /* matches the clock management protocol ID */
215 /* vendor-agnostic - always 1 */
216 #clock-cells = <1>;
221 compatible = "vnd,mbox-ip";
223 #mbox-cells = <1>;
227 compatible = "vnd,consumer-ip";
229 /* clock ID is vendor specific */