/Linux-v6.1/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-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 …]
|
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 | 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 | driver.c | 3 * 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 …]
|
D | protocols.h | 3 * 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 …]
|
D | common.h | 3 * 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 …]
|
D | smc.c | 3 * 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
|
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 | 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 | 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() 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()
|
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. 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 …]
|
D | scmi_pm_domain.c | 3 * 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/ |
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-v6.1/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.
|
/Linux-v6.1/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-v6.1/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 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/ |
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");
|
/Linux-v6.1/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 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/ |
D | stm32mp15-scmi.dtsi | 14 scmi: scmi { label 15 compatible = "linaro,scmi-optee"; 72 scmi_shm: scmi-sram@0 { 73 compatible = "arm,scmi-shmem";
|
D | stm32mp157a-dk1-scmi.dts | 10 #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/ |
D | scmi-cpufreq.c | 3 * 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/ |
D | juno-scmi.dtsi | 45 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";
|
D | Makefile | 5 …_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb juno-scmi.dtb juno-r1-scmi.dtb juno-r2-scmi.dtb
|