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
1344 * @cinfo: SCMI channel info
1371 * @cinfo: SCMI channel info
1396 * @ph: Pointer to SCMI protocol handle
1494 * @ph: Pointer to SCMI protocol handle
1549 * @ph: Pointer to SCMI protocol handle
1605 * version_get() - command to get the revision of the SCMI entity
1607 * @ph: Pointer to SCMI protocol handle
1610 * Updates the SCMI information in the internal data structure.
2054 * A helper to grab the version memory area reference during SCMI Base protocol
2057 * Return: A reference to the version memory area associated to the SCMI
2109 * @info: The reference to the related SCMI instance.
2113 * description, against the specified SCMI instance @info, and initialize it;
2206 * @handle: A reference to the SCMI platform instance.
2245 * @handle: A reference to the SCMI platform instance.
2248 * Register a new user for the requested protocol on the specified SCMI
2260 * @handle: A reference to the SCMI platform instance.
2371 * released, and possibly de-initialized on last user, once the SCMI driver
2406 * released, and possibly de-initialized on last user, once the SCMI driver
2453 * SCMI instance is configured as atomic.
2455 * @handle: A reference to the SCMI platform instance.
2476 * scmi_handle_get() - Get the SCMI handle for a device
2478 * @dev: pointer to device for which we want SCMI handle
2481 * and is expected to be maintained by caller of SCMI protocol library.
2512 * and is expected to be maintained by caller of SCMI protocol library.
2709 "unable to allocate SCMI idr slot err %d\n", ret); in scmi_chan_setup()
2746 * @info: The SCMI instance descriptor.
2750 * borrowing devices from the SCMI drivers; this way channels are initialized
2751 * upfront during core SCMI stack probing and are no more coupled with SCMI
2752 * devices used by SCMI drivers.
2831 /* Skip transport devices and devices of different SCMI instances */ in scmi_bus_notifier()
3032 "SCMI RAW - Error enumerating channels\n"); in scmi_debugfs_raw_mode_setup()
3046 dev_err(info->dev, "Failed to initialize SCMI RAW Mode !\n"); in scmi_debugfs_raw_mode_setup()
3090 "SCMI max-rx-timeout: %dms / max-msg-size: %dbytes / max-msg: %d\n", in scmi_transport_setup()
3098 "SCMI System wide atomic threshold set to %u us\n", in scmi_transport_setup()
3181 dev_warn(dev, "Failed to setup SCMI debugfs.\n"); in scmi_probe()
3194 dev_info(dev, "SCMI RAW Mode COEX enabled !\n"); in scmi_probe()
3199 dev_err(dev, "SCMI Notifications NOT available.\n"); in scmi_probe()
3207 * Trigger SCMI Base protocol initialization. in scmi_probe()
3209 * SCMI stack is shutdown/unloaded as a whole. in scmi_probe()
3213 err_str = "unable to communicate with SCMI\n"; in scmi_probe()
3235 dev_err(dev, "SCMI protocol %d not implemented\n", in scmi_probe()
3242 * @active_protocols for this SCMI instance/ in scmi_probe()
3247 dev_err(dev, "SCMI protocol %d already activated. Skip\n", in scmi_probe()
3288 "Still active SCMI users will be forcibly unbound.\n"); in scmi_remove()
3360 .name = "arm-scmi",
3372 d = debugfs_create_dir("scmi", NULL); in scmi_debugfs_init()
3374 pr_err("Could NOT create SCMI top dentry.\n"); in scmi_debugfs_init()
3383 /* Bail out if no SCMI transport was configured */ in scmi_driver_init()
3432 MODULE_ALIAS("platform:arm-scmi");
3434 MODULE_DESCRIPTION("ARM SCMI protocol driver");