| /kernel/linux/linux-6.6/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 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 …]
|
| D | Makefile | 2 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 …]
|
| D | optee.c | 31 * 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 …]
|
| D | bus.c | 3 * 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. 58 pr_debug("Requesting SCMI device (%s) for protocol %x\n", in scmi_protocol_device_request() 63 pr_warn("SCMI Raw mode active. Rejecting '%s'/0x%02X\n", in scmi_protocol_device_request() 116 pr_err("Failed to save SCMI device - ret:%d\n", ret); in scmi_protocol_device_request() 151 pr_debug("Unrequesting SCMI device (%s) for protocol %x\n", in scmi_protocol_device_unrequest() 289 pr_debug("Registered new scmi driver %s\n", driver->name); in scmi_driver_register() 312 pr_debug("(%s) Destroying SCMI device '%s' for protocol 0x%x (%s)\n", in __scmi_device_destroy() [all …]
|
| D | scmi_power_control.c | 3 * 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 …]
|
| D | raw_mode.c | 3 * 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 …]
|
| D | smc.c | 3 * System Control and Management Interface (SCMI) Message SMC/HVC 30 * scmi instances that are using the same smc-id. 41 * struct scmi_smc - Structure representing a SCMI smc transport 44 * @cinfo: SCMI channel info 142 if (!of_device_is_compatible(np, "arm,scmi-shmem")) { in smc_chan_setup() 150 dev_err(cdev, "failed to get SCMI Tx shared memory\n"); in smc_chan_setup() 157 dev_err(dev, "failed to ioremap SCMI Tx shared memory\n"); in smc_chan_setup() 165 if (of_device_is_compatible(dev->of_node, "arm,scmi-smc-param")) { in smc_chan_setup() 179 dev_err(dev, "failed to setup SCMI smc irq\n"); in smc_chan_setup() 277 * SCMI command would have been already fully processed by the SCMI
|
| 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) 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. 91 * Each protocol is initialized independently once for each SCMI platform in 92 * which is defined by DT and implemented by the SCMI server fw. 108 * @name: Name of this SCMI instance 109 * @type: Type of this SCMI instance 122 * struct scmi_info - Structure representing a SCMI instance [all …]
|
| D | base.c | 3 * 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 …]
|
| D | protocols.h | 3 * System Control and Management Interface (SCMI) Message Protocol 5 * and function prototypes used in all the different SCMI protocols. 73 * @type: The SCMI type for this message 158 * @dev: A reference to the associated SCMI instance device (handle->dev). 160 * can be used by the protocol implementation to generate SCMI messages. 164 * This structure represents a protocol initialized against specific SCMI 167 * that it can access the core xfer operations to build and generate SCMI 169 * - as an opaque handle fed by an SCMI driver user when it tries to access 172 * with the related protocol operations when the SCMI driver tries to access 209 * SCMI command request pointed by @message. @desc_index is [all …]
|
| /kernel/linux/linux-6.6/Documentation/ABI/testing/ |
| D | debugfs-scmi | 1 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 …]
|
| D | debugfs-scmi-raw | 1 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 …]
|
| /kernel/linux/linux-6.6/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 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 …]
|
| /kernel/linux/linux-5.10/drivers/firmware/arm_scmi/ |
| D | Makefile | 2 scmi-bus-y = bus.o 3 scmi-driver-y = driver.o notify.o 4 scmi-transport-y = shmem.o 5 scmi-transport-$(CONFIG_MAILBOX) += mailbox.o 6 scmi-transport-$(CONFIG_HAVE_ARM_SMCCC_DISCOVERY) += smc.o 7 scmi-protocols-y = base.o clock.o perf.o power.o reset.o sensors.o system.o 8 scmi-module-objs := $(scmi-bus-y) $(scmi-driver-y) $(scmi-protocols-y) \ 9 $(scmi-transport-y) 10 obj-$(CONFIG_ARM_SCMI_PROTOCOL) += scmi-module.o
|
| 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) 32 #include <trace/events/scmi.h> 48 /* List of all SCMI devices active in system */ 71 * struct scmi_info - Structure representing a SCMI instance 75 * @version: SCMI revision information containing protocol version, 77 * @handle: Instance of SCMI handle to send to clients 130 * @dev: Device pointer corresponding to the SCMI entity 143 * @handle: Pointer to SCMI entity handle 150 * for the SCMI entity. Further, this also holds a spinlock to maintain [all …]
|
| D | base.c | 3 * System Control and Management Interface (SCMI) Base Protocol 8 #define pr_fmt(fmt) "SCMI Notifications BASE - " fmt 53 * @handle: SCMI entity handle 55 * Return: 0 on success, else appropriate SCMI error. 84 * @handle: SCMI entity handle 87 * Return: 0 on success, else appropriate SCMI error. 126 * @handle: SCMI entity handle 128 * Return: 0 on success, else appropriate SCMI error. 158 * @handle: SCMI entity handle 161 * Return: 0 on success, else appropriate SCMI error. [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/ |
| D | arm,scmi.txt | 1 System Control and Management Interface (SCMI) Message Protocol 4 The SCMI is intended to allow agents such as OSPM to manage various functions 9 the SCMI as described in ARM document number ARM DEN 0056A ("ARM System Control 15 The scmi node with the following properties shall be under the /firmware/ node. 17 - compatible : shall be "arm,scmi" or "arm,scmi-smc" for smc/hvc transports 37 The mailbox is the only permitted method of calling the SCMI firmware. 47 Clock/Performance bindings for the clocks/OPPs based on SCMI Message Protocol 53 - #clock-cells : Should be 1. Contains the Clock ID value used by SCMI commands. 55 Power domain bindings for the power domains based on SCMI Message Protocol 58 This binding for the SCMI power domain providers uses the generic power [all …]
|
| /kernel/linux/linux-6.6/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.
|
| /kernel/linux/linux-6.6/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 …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | scmi_protocol.h | 3 * SCMI Message Protocol driver header 62 * by SCMI Clock Protocol 64 * @count_get: get the count of clocks provided by SCMI 86 * by SCMI Performance Protocol 92 * @device_domain_id: gets the scmi domain id for a given device 128 * by SCMI Power Protocol 130 * @num_domains_get: get the count of power domains provided by SCMI 175 * by SCMI Sensor Protocol 177 * @count_get: get the count of sensors provided by SCMI 194 * by SCMI Reset Protocol [all …]
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | scmi_protocol.h | 3 * SCMI Message Protocol driver header 75 * by SCMI Clock Protocol 77 * @count_get: get the count of clocks provided by SCMI 107 * by SCMI Performance Protocol 115 * @device_domain_id: gets the scmi domain id for a given device 159 * by SCMI Power Protocol 161 * @num_domains_get: get the count of power domains provided by SCMI 190 * SCMI platform. Set to zero when not available. 213 * SCMI platform. 244 * the SCMI specification: it can be accessed using the accompanying [all …]
|
| /kernel/linux/linux-6.6/drivers/powercap/ |
| D | arm_scmi_powercap.c | 3 * 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 …]
|
| /kernel/linux/linux-5.10/drivers/reset/ |
| D | reset-scmi.c | 3 * ARM System Control and Management Interface (ARM SCMI) reset driver 17 * @handle: ARM SCMI handle used for communication with system controller 33 * using the ARM SCMI protocol. 51 * using the ARM SCMI protocol. 69 * reset signal using the ARM SCMI protocol. 114 MODULE_DEVICE_TABLE(scmi, scmi_id_table); 117 .name = "scmi-reset", 124 MODULE_DESCRIPTION("ARM SCMI reset controller driver");
|
| /kernel/linux/linux-6.6/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");
|
| /kernel/linux/linux-6.6/drivers/clk/ |
| D | clk-scmi.c | 3 * 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 224 * Note that when transport is atomic but SCMI protocol did not in scmi_clocks_probe() 256 MODULE_DEVICE_TABLE(scmi, scmi_id_table); 259 .name = "scmi-clocks", 266 MODULE_DESCRIPTION("ARM SCMI clock driver");
|