Home
last modified time | relevance | path

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

1234

/linux-6.8/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 facility is configured
31 of a common SCMI debugfs root directory.
34 bool "Enable support for SCMI Raw transmission mode"
38 Enable support for SCMI Raw transmission mode.
40 If enabled allows the direct injection and snooping of SCMI bare
42 It is meant to be used by SCMI compliance/testing suites.
[all …]
DMakefile2 scmi-bus-y = bus.o
3 scmi-core-objs := $(scmi-bus-y)
5 scmi-driver-y = driver.o notify.o
6 scmi-driver-$(CONFIG_ARM_SCMI_RAW_MODE_SUPPORT) += raw_mode.o
7 scmi-transport-$(CONFIG_ARM_SCMI_HAVE_SHMEM) = shmem.o
8 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_MAILBOX) += mailbox.o
9 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_SMC) += smc.o
10 scmi-transport-$(CONFIG_ARM_SCMI_HAVE_MSG) += msg.o
11 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_VIRTIO) += virtio.o
12 scmi-transport-$(CONFIG_ARM_SCMI_TRANSPORT_OPTEE) += optee.o
[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 …]
Dbus.c3 * System Control and Management Interface (SCMI) Message Protocol bus layer
34 /* Track globally the creation of SCMI SystemPower related devices */
42 * This helper let an SCMI driver request specific devices identified by the
43 * @id_table to be created for each active SCMI instance.
59 pr_debug("Requesting SCMI device (%s) for protocol %x\n", in scmi_protocol_device_request()
64 pr_warn("SCMI Raw mode active. Rejecting '%s'/0x%02X\n", in scmi_protocol_device_request()
123 pr_err("Failed to save SCMI device - ret:%d\n", ret); in scmi_protocol_device_request()
158 pr_debug("Unrequesting SCMI device (%s) for protocol %x\n", in scmi_protocol_device_unrequest()
293 pr_debug("Registered new scmi driver %s\n", driver->name); in scmi_driver_register()
313 pr_debug("(%s) Destroying SCMI device '%s' for protocol 0x%x (%s)\n", in __scmi_device_destroy()
[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 …]
Draw_mode.c3 * System Control and Management Interface (SCMI) Raw mode support
10 * When enabled the SCMI Raw mode support exposes a userspace API which allows
11 * to send and receive SCMI commands, replies and notifications from a user
12 * application through injection and snooping of bare SCMI messages in binary
15 * Such injected SCMI transactions will then be routed through the SCMI core
16 * stack towards the SCMI backend server using whatever SCMI transport is
19 * It is meant to help in running any sort of SCMI backend server testing, no
26 * In order to avoid possible interferences between the SCMI Raw transactions
27 * originated from a test-suite and the normal operations of the SCMI drivers,
28 * when Raw mode is enabled, by default, all the regular SCMI drivers are
[all …]
Ddriver.c3 * System Control and Management Interface (SCMI) Message Protocol driver
5 * SCMI Message Protocol is used between the System Control Processor(SCP)
43 #include <trace/events/scmi.h>
50 /* List of all SCMI devices active in system */
83 * @handle: Reference to the SCMI handle associated to this protocol instance.
92 * Each protocol is initialized independently once for each SCMI platform in
93 * which is defined by DT and implemented by the SCMI server fw.
110 * @name: Name of this SCMI instance
111 * @type: Type of this SCMI instance
122 * struct scmi_info - Structure representing a SCMI instance
[all …]
Dsmc.c3 * System Control and Management Interface (SCMI) Message SMC/HVC
31 * scmi instances that are using the same smc-id.
42 * struct scmi_smc - Structure representing a SCMI smc transport
45 * @cinfo: SCMI channel info
147 if (!of_device_is_compatible(np, "arm,scmi-shmem")) { in smc_chan_setup()
155 dev_err(cdev, "failed to get SCMI Tx shared memory\n"); in smc_chan_setup()
162 dev_err(dev, "failed to ioremap SCMI Tx shared memory\n"); in smc_chan_setup()
170 if (of_device_is_compatible(dev->of_node, "qcom,scmi-smc")) { in smc_chan_setup()
182 if (of_device_is_compatible(dev->of_node, "arm,scmi-smc-param")) { in smc_chan_setup()
196 dev_err(dev, "failed to setup SCMI smc irq\n"); in smc_chan_setup()
[all …]
Dbase.c3 * System Control and Management Interface (SCMI) Base Protocol
8 #define pr_fmt(fmt) "SCMI Notifications BASE - " fmt
63 * @ph: SCMI protocol handle
65 * Return: 0 on success, else appropriate SCMI error.
94 * @ph: SCMI protocol handle
97 * Return: 0 on success, else appropriate SCMI error.
137 * @ph: SCMI protocol handle
139 * Return: 0 on success, else appropriate SCMI error.
169 * @ph: SCMI protocol handle
172 * Return: 0 on success, else appropriate SCMI error.
[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
156 * @dev: A reference to the associated SCMI instance device (handle->dev).
158 * can be used by the protocol implementation to generate SCMI messages.
162 * This structure represents a protocol initialized against specific SCMI
165 * that it can access the core xfer operations to build and generate SCMI
167 * - as an opaque handle fed by an SCMI driver user when it tries to access
170 * with the related protocol operations when the SCMI driver tries to access
208 * 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.
158 /* SCMI Transport */
160 * struct scmi_chan_info - Structure representing a SCMI channel information
164 * @dev: Reference to device in the SCMI hierarchy corresponding to this
167 * @handle: Pointer to SCMI entity handle
184 * struct scmi_transport_ops - Structure representing a SCMI transport ops
223 * initialize some transport-specific setup during SCMI core
224 * initialization, so ahead of SCMI core probing.
226 * de-initialize some transport-specific setup during SCMI core
[all …]
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
/linux-6.8/Documentation/ABI/testing/
Ddebugfs-scmi1 What: /sys/kernel/debug/scmi/<n>/instance_name
5 Description: The name of the underlying SCMI instance <n> described by
6 all the debugfs accessors rooted at /sys/kernel/debug/scmi/<n>,
7 expressed as the full name of the top DT SCMI node under which
8 this SCMI instance is rooted.
11 What: /sys/kernel/debug/scmi/<n>/atomic_threshold_us
16 on this SCMI instance <n>, the threshold above which any SCMI
22 What: /sys/kernel/debug/scmi/<n>/transport/type
27 SCMI instance <n>.
30 What: /sys/kernel/debug/scmi/<n>/transport/is_atomic
[all …]
Ddebugfs-scmi-raw1 What: /sys/kernel/debug/scmi/<n>/raw/message
5 Description: SCMI Raw synchronous message injection/snooping facility; write
6 a complete SCMI synchronous command message (header included)
8 backend SCMI server for instance <n>.
16 What: /sys/kernel/debug/scmi/<n>/raw/message_async
20 Description: SCMI Raw asynchronous message injection/snooping facility; write
21 a complete SCMI asynchronous command message (header included)
23 backend SCMI server for instance <n>.
34 What: /sys/kernel/debug/scmi/<n>/raw/errors
38 Description: SCMI Raw message errors facility; any kind of timed-out or
[all …]
/linux-6.8/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
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 ARM SMC/HVC transport
[all …]
/linux-6.8/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-6.8/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-6.8/include/linux/
Dscmi_protocol.h3 * SCMI Message Protocol driver header
77 * by SCMI Clock Protocol
79 * @count_get: get the count of clocks provided by SCMI
122 * by SCMI Performance Protocol
172 * by SCMI Power Protocol
174 * @num_domains_get: get the count of power domains provided by SCMI
203 * SCMI platform. Set to zero when not available.
226 * SCMI platform.
257 * the SCMI specification: it can be accessed using the accompanying
299 * detailed in the SCMI specification: it can accessed and
[all …]
/linux-6.8/drivers/powercap/
Darm_scmi_powercap.c3 * SCMI Powercap support.
247 return "SCMI power-cap"; in scmi_powercap_get_name()
332 * scmi_zones_register- Register SCMI powercap zones starting from parent zones
334 * @dev: A reference to the SCMI device
337 * When registering SCMI powercap zones with the powercap framework we should
341 * Unfortunately we cannot assume that the array of available SCMI powercap
342 * zones provided by the SCMI platform firmware is built to comply with such
345 * This function, given the set of SCMI powercap zones to register, takes care
346 * to walk the SCMI powercap zones trees up to the root registering any
355 * sporting an SCMI abstract power scale) as long as they are positioned as
[all …]
DKconfig64 tristate "ARM SCMI Powercap driver"
67 This enables support for the ARM Powercap based on ARM SCMI
70 ARM SCMI Powercap protocol allows power limits to be enforced
71 and monitored against the SCMI Powercap domains advertised as
72 available by the SCMI platform firmware.
/linux-6.8/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-6.8/drivers/pmdomain/arm/
DKconfig3 tristate "SCMI performance domain driver"
8 This enables support for the SCMI performance domains which can be
15 tristate "SCMI power domain driver"
20 This enables support for the SCMI power domains which can be
/linux-6.8/drivers/clk/
Dclk-scmi.c3 * System Control and Power Interface (SCMI) Protocol based clock driver
163 * underlying SCMI transport for an SCMI instance is configured to handle
164 * SCMI commands in an atomic manner.
166 * When no SCMI atomic transport support is available we instead provide only
170 * Two distinct sets of clk_ops are provided since we could have multiple SCMI
289 * Note that when transport is atomic but SCMI protocol did not in scmi_clocks_probe()
335 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
338 .name = "scmi-clocks",
345 MODULE_DESCRIPTION("ARM SCMI clock driver");
/linux-6.8/drivers/cpufreq/
Dscmi-cpufreq.c3 * System Control and Power Interface (SCMI) based CPUFreq Interface driver
50 * subscribed for by the SCMI firmware
174 /* Obtain CPUs that share SCMI performance controls */ in scmi_cpufreq_init()
190 * Use the CPU mask from SCMI to designate CPUs sharing an OPP in scmi_cpufreq_init()
241 /* SCMI allows DVFS request for any domain from any CPU */ in scmi_cpufreq_init()
306 .name = "scmi",
362 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
365 .name = "scmi-cpufreq",
373 MODULE_DESCRIPTION("ARM SCMI CPUFreq interface driver");
/linux-6.8/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";

1234