Home
last modified time | relevance | path

Searched full:scmi (Results 1 – 25 of 74) sorted by relevance

123

/Linux-v6.1/drivers/firmware/arm_scmi/
DKconfig5 tristate "ARM System Control and Management Interface (SCMI) Message Protocol"
8 ARM System Control and Management Interface (SCMI) protocol is a
10 used in system management. SCMI is extensible and currently provides
22 making use of the features offered by the SCMI.
29 This declares whether at least one SCMI transport has been configured.
30 Used to trigger a build bug when trying to build SCMI without any
36 This declares whether a shared memory based transport for SCMI is
42 This declares whether a message passing based transport for SCMI is
46 bool "SCMI transport based on Mailbox"
52 Enable mailbox based transport for SCMI.
[all …]
DMakefile2 scmi-bus-y = bus.o
3 scmi-driver-y = driver.o notify.o
4 scmi-transport-$(CONFIG_ARM_SCMI_HAVE_SHMEM) = shmem.o
5 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_MAILBOX) += mailbox.o
6 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_SMC) += smc.o
7 scmi-transport-$(CONFIG_ARM_SCMI_HAVE_MSG) += msg.o
8 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_VIRTIO) += virtio.o
9 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_OPTEE) += optee.o
10 scmi-protocols-y = base.o clock.o perf.o power.o reset.o sensors.o system.o voltage.o powercap.o
11 scmi-module-objs := $(scmi-bus-y) $(scmi-driver-y) $(scmi-protocols-y) \
[all …]
Doptee.c31 * PTA_SCMI_CMD_PROCESS_SMT_CHANNEL - Process SCMI message in SMT buffer
35 * Shared memory used for SCMI message/response exhange is expected
36 * already identified and bound to channel handle in both SCMI agent
37 * and SCMI server (OP-TEE) parts.
38 * The memory uses SMT header to carry SCMI meta-data (protocol ID and
44 * PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE - Process SMT/SCMI message
47 * [in/out] memref[1]: Message/response buffer (SMT and SCMI payload)
49 * Shared memory used for SCMI message/response is a SMT buffer
52 * The memory uses SMT header to carry SCMI meta-data (protocol ID and
60 * SCMI shm information are 0 if agent expects to use OP-TEE regular SHM
[all …]
Dscmi_power_control.c3 * SCMI Generic SystemPower Control driver.
8 * In order to handle platform originated SCMI SystemPower requests (like
9 * shutdowns or cold/warm resets) we register an SCMI Notification notifier
10 * block to react when such SCMI SystemPower events are emitted by platform.
20 * by the SCMI platform to an OSPM like Linux.
32 * Given the peculiar nature of SCMI SystemPower protocol, that is being in
34 * only one SCMI platform actively emitting SystemPower events.
35 * For this reason the SCMI core takes care to enforce the creation of one
36 * single unique device associated to the SCMI System Power protocol; no matter
37 * how many SCMI platforms are defined on the system, only one can be designated
[all …]
Ddriver.c3 * System Control and Management Interface (SCMI) Message Protocol driver
5 * SCMI Message Protocol is used between the System Control Processor(SCP)
38 #include <trace/events/scmi.h>
54 /* List of all SCMI devices active in system */
64 /* Track globally the creation of SCMI SystemPower related devices */
98 * @handle: Reference to the SCMI handle associated to this protocol instance.
106 * Each protocol is initialized independently once for each SCMI platform in
107 * which is defined by DT and implemented by the SCMI server fw.
121 * struct scmi_info - Structure representing a SCMI instance
125 * @version: SCMI revision information containing protocol version,
[all …]
Dprotocols.h3 * System Control and Management Interface (SCMI) Message Protocol
5 * and function prototypes used in all the different SCMI protocols.
71 * @type: The SCMI type for this message
149 * @dev: A reference to the associated SCMI instance device (handle->dev).
151 * can be used by the protocol implementation to generate SCMI messages.
155 * This structure represents a protocol initialized against specific SCMI
158 * that it can access the core xfer operations to build and generate SCMI
160 * - as an opaque handle fed by an SCMI driver user when it tries to access
163 * with the related protocol operations when the SCMI driver tries to access
200 * SCMI command request pointed by @message. @desc_index is
[all …]
Dcommon.h3 * System Control and Management Interface (SCMI) Message Protocol
5 * and function prototypes used in all the different SCMI protocols.
115 /* SCMI Transport */
117 * struct scmi_chan_info - Structure representing a SCMI channel information
119 * @dev: Reference to device in the SCMI hierarchy corresponding to this
122 * @handle: Pointer to SCMI entity handle
138 * struct scmi_transport_ops - Structure representing a SCMI transport ops
182 * initialize some transport-specific setup during SCMI core
183 * initialization, so ahead of SCMI core probing.
185 * de-initialize some transport-specific setup during SCMI core
[all …]
Dsmc.c3 * System Control and Management Interface (SCMI) Message SMC/HVC
24 * struct scmi_smc - Structure representing a SCMI smc transport
26 * @cinfo: SCMI channel info
119 if (!of_device_is_compatible(np, "arm,scmi-shmem")) in smc_chan_setup()
125 dev_err(cdev, "failed to get SCMI Tx shared memory\n"); in smc_chan_setup()
132 dev_err(dev, "failed to ioremap SCMI Tx shared memory\n"); in smc_chan_setup()
151 dev_err(dev, "failed to setup SCMI smc irq\n"); in smc_chan_setup()
237 * SCMI command would have been already fully processed by the SCMI
Dbase.c3 * System Control and Management Interface (SCMI) Base Protocol
8 #define pr_fmt(fmt) "SCMI Notifications BASE - " fmt
60 * @ph: SCMI protocol handle
62 * Return: 0 on success, else appropriate SCMI error.
91 * @ph: SCMI protocol handle
94 * Return: 0 on success, else appropriate SCMI error.
134 * @ph: SCMI protocol handle
136 * Return: 0 on success, else appropriate SCMI error.
166 * @ph: SCMI protocol handle
169 * Return: 0 on success, else appropriate SCMI error.
[all …]
Dmailbox.c3 * System Control and Management Interface (SCMI) Message Mailbox Transport
19 * struct scmi_mailbox - Structure representing a SCMI mailbox transport
23 * @cinfo: SCMI channel info
72 if (!of_device_is_compatible(shmem, "arm,scmi-shmem")) in mailbox_chan_setup()
78 dev_err(cdev, "failed to get SCMI %s shared memory\n", desc); in mailbox_chan_setup()
85 dev_err(dev, "failed to ioremap SCMI %s shared memory\n", desc); in mailbox_chan_setup()
100 dev_err(cdev, "failed to request SCMI %s mailbox\n", in mailbox_chan_setup()
Dbus.c3 * System Control and Management Interface (SCMI) Message Protocol bus layer
85 pr_warn("SCMI Protocol 0x%x not found!\n", protocol_id); in scmi_protocol_get()
89 pr_debug("Found SCMI Protocol 0x%x\n", protocol_id); in scmi_protocol_get()
149 pr_debug("registered new scmi driver %s\n", driver->name); in scmi_driver_register()
254 pr_err("unable to allocate SCMI idr slot for 0x%x - err %d\n", in scmi_protocol_register()
259 pr_debug("Registered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_register()
271 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_unregister()
296 pr_err("scmi protocol bus register failed (%d)\n", retval); in scmi_bus_init()
Dmsg.c18 * The SCMI specification requires all parameters, message headers, return
64 * msg_read_header() - Read SCMI header from transport SDU.
68 * Return: SCMI header
76 * msg_fetch_response() - Fetch response SCMI payload from transport SDU.
100 * @max_len: maximum SCMI payload size to fetch
Dvirtio.c4 * (SCMI).
13 * The scmi-virtio transport implements a driver for the virtio SCMI device.
42 * @cinfo: SCMI Tx or Rx channel
111 /* Only one SCMI VirtIO device can possibly exist */
376 "Deferring probe after not finding a bound scmi-virtio device\n"); in virtio_link_supplier()
579 * Note that in the SCMI VirtIO transport we never explicitly release still
586 * still effectively owned by the SCMI platform VirtIO device even after timeout
588 * explicitly by the SCMI platform could lead to subtle bugs due to message
590 * An SCMI platform VirtIO device which never returns message buffers is
605 * @cinfo: SCMI channel info
[all …]
Dscmi_pm_domain.c3 * SCMI Generic power domain support.
141 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
144 .name = "scmi-power-domain",
152 MODULE_DESCRIPTION("ARM SCMI power domain driver");
/Linux-v6.1/Documentation/devicetree/bindings/firmware/
Darm,scmi.yaml5 $id: http://devicetree.org/schemas/firmware/arm,scmi.yaml#
8 title: System Control and Management Interface (SCMI) Message Protocol bindings
14 The SCMI is intended to allow agents such as OSPM to manage various functions
19 the SCMI as described in ARM document number ARM DEN 0056 ("ARM System Control
27 const: scmi
31 - description: SCMI compliant firmware with mailbox transport
33 - const: arm,scmi
34 - description: SCMI compliant firmware with ARM SMC/HVC transport
36 - const: arm,scmi-smc
37 - description: SCMI compliant firmware with SCMI Virtio transport.
[all …]
/Linux-v6.1/drivers/iio/common/scmi_sensors/
DKconfig2 # IIO over SCMI
6 menu "IIO SCMI Sensors"
9 tristate "IIO SCMI"
14 Say yes here to build support for IIO SCMI Driver.
15 This provides ARM SCMI Protocol based IIO device.
17 sensors available on SCMI based platforms.
/Linux-v6.1/drivers/regulator/
Dscmi-regulator.c3 // System Control and Management Interface (SCMI) based regulator driver
7 // Implements a regulator driver on top of the SCMI Voltage Protocol.
9 // The ARM SCMI Protocol aims in general to hide as much as possible all the
15 // The supported SCMI regulator ops are restricted to the bare minimum:
21 // Each SCMI regulator instance is associated, through the means of a proper DT
22 // entry description, to a specific SCMI Voltage Domain.
145 * Note that SCMI voltage domains describable by linear ranges in scmi_config_linear_regulator_mappings()
147 * triplet by the SCMI Voltage Domain protocol support itself. in scmi_config_linear_regulator_mappings()
164 /* Just one fixed voltage exposed by SCMI */ in scmi_config_linear_regulator_mappings()
244 * Using the scmi device here to have DT searched from Voltage in scmi_regulator_common_init()
[all …]
/Linux-v6.1/include/linux/
Dscmi_protocol.h3 * SCMI Message Protocol driver header
75 * by SCMI Clock Protocol
77 * @count_get: get the count of clocks provided by SCMI
102 * by SCMI Performance Protocol
108 * @device_domain_id: gets the scmi domain id for a given device
149 * by SCMI Power Protocol
151 * @num_domains_get: get the count of power domains provided by SCMI
180 * SCMI platform. Set to zero when not available.
203 * SCMI platform.
234 * the SCMI specification: it can be accessed using the accompanying
[all …]
/Linux-v6.1/drivers/reset/
Dreset-scmi.c3 * ARM System Control and Management Interface (ARM SCMI) reset driver
19 * @ph: ARM SCMI protocol handle used for communication with system controller
35 * using the ARM SCMI protocol.
53 * using the ARM SCMI protocol.
71 * reset signal using the ARM SCMI protocol.
121 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
124 .name = "scmi-reset",
131 MODULE_DESCRIPTION("ARM SCMI reset controller driver");
/Linux-v6.1/drivers/clk/
Dclk-scmi.c3 * System Control and Power Interface (SCMI) Protocol based clock driver
106 * We can provide enable/disable atomic callbacks only if the underlying SCMI
107 * transport for an SCMI instance is configured to handle SCMI commands in an
110 * When no SCMI atomic transport support is available we instead provide only
114 * Two distinct sets of clk_ops are provided since we could have multiple SCMI
223 * Note that when transport is atomic but SCMI protocol did not in scmi_clocks_probe()
255 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
258 .name = "scmi-clocks",
265 MODULE_DESCRIPTION("ARM SCMI clock driver");
/Linux-v6.1/arch/arm/boot/dts/
Dstm32mp15-scmi.dtsi14 scmi: scmi { label
15 compatible = "linaro,scmi-optee";
72 scmi_shm: scmi-sram@0 {
73 compatible = "arm,scmi-shmem";
Dstm32mp157a-dk1-scmi.dts10 #include "stm32mp15-scmi.dtsi"
13 model = "STMicroelectronics STM32MP157A-DK1 SCMI Discovery Board";
14 compatible = "st,stm32mp157a-dk1-scmi", "st,stm32mp157a-dk1", "st,stm32mp157";
/Linux-v6.1/drivers/cpufreq/
Dscmi-cpufreq.c3 * System Control and Power Interface (SCMI) based CPUFreq Interface driver
50 * subscribed for by the SCMI firmware
150 /* Obtain CPUs that share SCMI performance controls */ in scmi_cpufreq_init()
166 * Use the CPU mask from SCMI to designate CPUs sharing an OPP in scmi_cpufreq_init()
217 /* SCMI allows DVFS request for any domain from any CPU */ in scmi_cpufreq_init()
282 .name = "scmi",
335 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
338 .name = "scmi-cpufreq",
346 MODULE_DESCRIPTION("ARM SCMI CPUFreq interface driver");
/Linux-v6.1/arch/arm64/boot/dts/arm/
Djuno-scmi.dtsi45 scmi {
46 compatible = "arm,scmi";
205 compatible = "arm,scmi-shmem";
210 compatible = "arm,scmi-shmem";
215 compatible = "arm,scmi-shmem";
220 compatible = "arm,scmi-shmem";
DMakefile5 …_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb juno-scmi.dtb juno-r1-scmi.dtb juno-r2-scmi.dtb

123