Lines Matching full:scmi
3 * System Control and Management Interface (SCMI) Message Protocol driver
5 * SCMI Message Protocol is used between the System Control Processor(SCP)
45 #include <trace/events/scmi.h>
47 #define SCMI_VENDOR_MODULE_ALIAS_FMT "scmi-protocol-0x%02x-%s"
53 /* List of all SCMI devices active in system */
86 * @handle: Reference to the SCMI handle associated to this protocol instance.
101 * Each protocol is initialized independently once for each SCMI platform in
102 * which is defined by DT and implemented by the SCMI server fw.
120 * @name: Name of this SCMI instance
121 * @type: Type of this SCMI instance
134 * struct scmi_info - Structure representing a SCMI instance
139 * @version: SCMI revision information containing protocol version,
141 * @handle: Instance of SCMI handle to send to clients
147 * this SCMI instance: populated on protocol's first attempted
158 * @bus_nb: A notifier to listen for device bind/unbind on the scmi bus
159 * @dev_req_nb: A notifier to listen for device request/unrequest on the scmi
161 * @devreq_mtx: A mutex to serialize device creation for this SCMI instance
163 * @raw: An opaque reference handle used by SCMI Raw mode.
312 pr_info("Loaded SCMI Vendor Protocol 0x%x - %s %s %X\n", in scmi_vendor_protocol_get()
330 pr_warn("SCMI Protocol 0x%x not found!\n", protocol_id); in scmi_protocol_get()
334 pr_debug("Found SCMI Protocol 0x%x\n", protocol_id); in scmi_protocol_get()
398 pr_err("unable to allocate SCMI protocol slot for 0x%x - err %d\n", in scmi_protocol_register()
403 pr_debug("Registered SCMI Protocol 0x%x - %s %s 0x%08X\n", in scmi_protocol_register()
423 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_unregister()
429 * this SCMI instance.
432 * @info: The SCMI instance descriptor
651 * @handle: Pointer to SCMI entity handle
692 * @handle: Pointer to SCMI entity handle
742 * @handle: Pointer to SCMI entity handle
764 * @handle: Pointer to SCMI entity handle
767 * Note that in a regular SCMI stack, usually, a protocol has to be defined in
827 * @handle: Pointer to SCMI entity handle
917 * SCMI transport can deliver such out-of-order responses.
1205 * @cinfo: SCMI channel info
1238 * @ph: Pointer to SCMI protocol handle
1341 * @cinfo: SCMI channel info
1368 * @cinfo: SCMI channel info
1393 * @ph: Pointer to SCMI protocol handle
1491 * @ph: Pointer to SCMI protocol handle
1546 * @ph: Pointer to SCMI protocol handle
1602 * version_get() - command to get the revision of the SCMI entity
1604 * @ph: Pointer to SCMI protocol handle
1607 * Updates the SCMI information in the internal data structure.
2051 * A helper to grab the version memory area reference during SCMI Base protocol
2054 * Return: A reference to the version memory area associated to the SCMI
2106 * @info: The reference to the related SCMI instance.
2110 * description, against the specified SCMI instance @info, and initialize it;
2203 * @handle: A reference to the SCMI platform instance.
2242 * @handle: A reference to the SCMI platform instance.
2245 * Register a new user for the requested protocol on the specified SCMI
2257 * @handle: A reference to the SCMI platform instance.
2368 * released, and possibly de-initialized on last user, once the SCMI driver
2403 * released, and possibly de-initialized on last user, once the SCMI driver
2450 * SCMI instance is configured as atomic.
2452 * @handle: A reference to the SCMI platform instance.
2473 * scmi_handle_get() - Get the SCMI handle for a device
2475 * @dev: pointer to device for which we want SCMI handle
2478 * and is expected to be maintained by caller of SCMI protocol library.
2509 * and is expected to be maintained by caller of SCMI protocol library.
2706 "unable to allocate SCMI idr slot err %d\n", ret); in scmi_chan_setup()
2743 * @info: The SCMI instance descriptor.
2747 * borrowing devices from the SCMI drivers; this way channels are initialized
2748 * upfront during core SCMI stack probing and are no more coupled with SCMI
2749 * devices used by SCMI drivers.
2828 /* Skip transport devices and devices of different SCMI instances */ in scmi_bus_notifier()
3029 "SCMI RAW - Error enumerating channels\n"); in scmi_debugfs_raw_mode_setup()
3043 dev_err(info->dev, "Failed to initialize SCMI RAW Mode !\n"); in scmi_debugfs_raw_mode_setup()
3087 "SCMI max-rx-timeout: %dms / max-msg-size: %dbytes / max-msg: %d\n", in scmi_transport_setup()
3095 "SCMI System wide atomic threshold set to %u us\n", in scmi_transport_setup()
3178 dev_warn(dev, "Failed to setup SCMI debugfs.\n"); in scmi_probe()
3191 dev_info(dev, "SCMI RAW Mode COEX enabled !\n"); in scmi_probe()
3196 dev_err(dev, "SCMI Notifications NOT available.\n"); in scmi_probe()
3204 * Trigger SCMI Base protocol initialization. in scmi_probe()
3206 * SCMI stack is shutdown/unloaded as a whole. in scmi_probe()
3210 err_str = "unable to communicate with SCMI\n"; in scmi_probe()
3232 dev_err(dev, "SCMI protocol %d not implemented\n", in scmi_probe()
3239 * @active_protocols for this SCMI instance/ in scmi_probe()
3244 dev_err(dev, "SCMI protocol %d already activated. Skip\n", in scmi_probe()
3285 "Still active SCMI users will be forcibly unbound.\n"); in scmi_remove()
3357 .name = "arm-scmi",
3369 d = debugfs_create_dir("scmi", NULL); in scmi_debugfs_init()
3371 pr_err("Could NOT create SCMI top dentry.\n"); in scmi_debugfs_init()
3380 /* Bail out if no SCMI transport was configured */ in scmi_driver_init()
3429 MODULE_ALIAS("platform:arm-scmi");
3431 MODULE_DESCRIPTION("ARM SCMI protocol driver");