Home
last modified time | relevance | path

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

123

/Linux-v5.15/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-protocols-y = base.o clock.o perf.o power.o reset.o sensors.o system.o voltage.o
10 scmi-module-objs := $(scmi-bus-y) $(scmi-driver-y) $(scmi-protocols-y) \
11 $(scmi-transport-y)
[all …]
Ddriver.c3 * System Control and Management Interface (SCMI) Message Protocol driver
5 * SCMI Message Protocol is used between the System Control Processor(SCP)
37 #include <trace/events/scmi.h>
53 /* List of all SCMI devices active in system */
92 * @handle: Reference to the SCMI handle associated to this protocol instance.
100 * Each protocol is initialized independently once for each SCMI platform in
101 * which is defined by DT and implemented by the SCMI server fw.
115 * struct scmi_info - Structure representing a SCMI instance
119 * @version: SCMI revision information containing protocol version,
121 * @handle: Instance of SCMI handle to send to clients
[all …]
Dcommon.h3 * System Control and Management Interface (SCMI) Message Protocol
5 * and function prototypes used in all the different SCMI protocols.
87 * @type: The SCMI type for this message
219 * @dev: A reference to the associated SCMI instance device (handle->dev).
221 * can be used by the protocol implementation to generate SCMI messages.
225 * This structure represents a protocol initialized against specific SCMI
228 * that it can access the core xfer operations to build and generate SCMI
230 * - as an opaque handle fed by an SCMI driver user when it tries to access
233 * with the related protocol operations when the SCMI driver tries to access
244 * struct scmi_xfer_ops - References to the core SCMI xfer operations.
[all …]
Dbase.c3 * System Control and Management Interface (SCMI) Base Protocol
8 #define pr_fmt(fmt) "SCMI Notifications BASE - " fmt
54 * @ph: SCMI protocol handle
56 * Return: 0 on success, else appropriate SCMI error.
85 * @ph: SCMI protocol handle
88 * Return: 0 on success, else appropriate SCMI error.
128 * @ph: SCMI protocol handle
130 * Return: 0 on success, else appropriate SCMI error.
160 * @ph: SCMI protocol handle
163 * 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()
Dsmc.c3 * System Control and Management Interface (SCMI) Message SMC/HVC
22 * struct scmi_smc - Structure representing a SCMI smc transport
24 * @cinfo: SCMI channel info
79 if (!of_device_is_compatible(np, "arm,scmi-shmem")) in smc_chan_setup()
85 dev_err(cdev, "failed to get SCMI Tx shared memory\n"); in smc_chan_setup()
92 dev_err(dev, "failed to ioremap SCMI Tx shared memory\n"); in smc_chan_setup()
111 dev_err(dev, "failed to setup SCMI smc irq\n"); in smc_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()
243 pr_err("unable to allocate SCMI idr slot for 0x%x - err %d\n", in scmi_protocol_register()
248 pr_debug("Registered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_register()
260 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_unregister()
285 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.
39 * @cinfo: SCMI Tx or Rx channel
76 /* Only one SCMI VirtIO device can possibly exist */
197 "Deferring probe after not finding a bound scmi-virtio device\n"); in virtio_link_supplier()
392 /* Only one SCMI VirtiO device allowed */ in scmi_vio_probe()
395 "One SCMI Virtio device was already initialized: only one allowed.\n"); in scmi_vio_probe()
450 * the SCMI core for any existing channel and, as a consequence, all the in scmi_vio_remove()
482 .driver.name = "scmi-virtio",
Dscmi_pm_domain.c3 * SCMI Generic power domain support.
150 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
153 .name = "scmi-power-domain",
160 MODULE_DESCRIPTION("ARM SCMI power domain driver");
Dnotify.h3 * System Control and Management Interface (SCMI) Message Protocol
5 * and function prototypes related to SCMI Notification handling.
24 * Each SCMI protocol, during its initialization phase, can describe the events
Dnotify.c3 * System Control and Management Interface (SCMI) Notification support
10 * SCMI Protocol specification allows the platform to signal events to
15 * An SCMI Notification core instance is initialized for each active platform
18 * Each SCMI Protocol implementation, during its initialization, registers with
27 * Given the number of possible events defined by SCMI and the extensibility
28 * of the SCMI Protocol itself, the underlying notification chains are created
47 * as described in the SCMI Protocol specification, while src_id represents an
51 * Upon reception of a notification message from the platform the SCMI RX ISR
64 * Events' information is then extracted from the SCMI Notification messages and
73 #define dev_fmt(fmt) "SCMI Notifications - " fmt
[all …]
/Linux-v5.15/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-v5.15/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.
Dscmi_iio.c4 * System Control and Management Interface(SCMI) based IIO sensor driver
63 * Timestamp returned by SCMI is in seconds and is equal to in scmi_iio_sensor_update_cb()
151 * The seconds field in the sensor interval in SCMI is 16 bits long in scmi_iio_set_odr_val()
597 dev_err(dev, "SCMI device has no sensor interface\n"); in scmi_iio_dev_probe()
603 dev_dbg(dev, "0 sensors found via SCMI bus\n"); in scmi_iio_dev_probe()
610 dev_err(dev, "SCMI sensor %d has missing info\n", i); in scmi_iio_dev_probe()
659 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
662 .name = "scmi-sensor-iiodev",
670 MODULE_DESCRIPTION("SCMI IIO Driver");
/Linux-v5.15/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-v5.15/include/linux/
Dscmi_protocol.h3 * SCMI Message Protocol driver header
65 * by SCMI Clock Protocol
67 * @count_get: get the count of clocks provided by SCMI
89 * by SCMI Performance Protocol
95 * @device_domain_id: gets the scmi domain id for a given device
136 * by SCMI Power Protocol
138 * @num_domains_get: get the count of power domains provided by SCMI
166 * SCMI platform. Set to zero when not available.
189 * SCMI platform.
220 * the SCMI specification: it can be accessed using the accompanying
[all …]
/Linux-v5.15/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");
DKconfig192 tristate "Reset driver controlled via ARM SCMI interface"
197 controlled by firmware that implements the SCMI interface.
199 This driver uses SCMI Message Protocol to interact with the
/Linux-v5.15/drivers/cpufreq/
Dscmi-cpufreq.c3 * System Control and Power Interface (SCMI) based CPUFreq Interface driver
49 * subscribed for by the SCMI firmware
144 /* Obtain CPUs that share SCMI performance controls */ in scmi_cpufreq_init()
160 * Use the CPU mask from SCMI to designate CPUs sharing an OPP in scmi_cpufreq_init()
211 /* SCMI allows DVFS request for any domain from any CPU */ in scmi_cpufreq_init()
271 .name = "scmi",
324 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
327 .name = "scmi-cpufreq",
335 MODULE_DESCRIPTION("ARM SCMI CPUFreq interface driver");
/Linux-v5.15/include/uapi/linux/
Dvirtio_scmi.h12 /* Device implements some SCMI notifications, or delayed responses. */
15 /* Device implements any SCMI statistics shared memory region */
/Linux-v5.15/drivers/clk/
Dclk-scmi.c3 * System Control and Power Interface (SCMI) Protocol based clock driver
206 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
209 .name = "scmi-clocks",
216 MODULE_DESCRIPTION("ARM SCMI clock driver");
DKconfig94 tristate "Clock driver controlled via SCMI interface"
98 by firmware that implements the SCMI interface.
100 This driver uses SCMI Message Protocol to interact with the
350 SCMI protocol.
/Linux-v5.15/drivers/hwmon/
Dscmi-hwmon.c3 * System Control and Management Interface(SCMI) based hwmon sensor driver
273 MODULE_DEVICE_TABLE(scmi, scmi_id_table);
276 .name = "scmi-hwmon",
283 MODULE_DESCRIPTION("ARM SCMI HWMON interface driver");

123