/Linux-v5.15/drivers/firmware/arm_scmi/ |
D | Kconfig | 5 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 …]
|
D | Makefile | 2 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 …]
|
D | driver.c | 3 * 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 …]
|
D | common.h | 3 * 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 …]
|
D | base.c | 3 * 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 …]
|
D | mailbox.c | 3 * 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()
|
D | smc.c | 3 * 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()
|
D | bus.c | 3 * 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()
|
D | msg.c | 18 * 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
|
D | virtio.c | 4 * (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",
|
D | scmi_pm_domain.c | 3 * 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");
|
D | notify.h | 3 * 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
|
D | notify.c | 3 * 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/ |
D | arm,scmi.yaml | 5 $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/ |
D | Kconfig | 2 # 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.
|
D | scmi_iio.c | 4 * 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/ |
D | scmi-regulator.c | 3 // 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/ |
D | scmi_protocol.h | 3 * 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/ |
D | reset-scmi.c | 3 * 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");
|
D | Kconfig | 192 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/ |
D | scmi-cpufreq.c | 3 * 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/ |
D | virtio_scmi.h | 12 /* Device implements some SCMI notifications, or delayed responses. */ 15 /* Device implements any SCMI statistics shared memory region */
|
/Linux-v5.15/drivers/clk/ |
D | clk-scmi.c | 3 * 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");
|
D | Kconfig | 94 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/ |
D | scmi-hwmon.c | 3 * 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");
|