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)
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.
92 * Each protocol is initialized independently once for each SCMI platform in
93 * which is defined by DT and implemented by the SCMI server fw.
110 * @name: Name of this SCMI instance
111 * @type: Type of this SCMI instance
122 * struct scmi_info - Structure representing a SCMI instance
127 * @version: SCMI revision information containing protocol version,
129 * @handle: Instance of SCMI handle to send to clients
135 * this SCMI instance: populated on protocol's first attempted
145 * Only SCMI synchronous commands reported by the platform
148 * decision is finally left up to the SCMI drivers.
152 * @bus_nb: A notifier to listen for device bind/unbind on the scmi bus
153 * @dev_req_nb: A notifier to listen for device request/unrequest on the scmi
155 * @devreq_mtx: A mutex to serialize device creation for this SCMI instance
157 * @raw: An opaque reference handle used by SCMI Raw mode.
196 pr_warn("SCMI Protocol 0x%x not found!\n", protocol_id); in scmi_protocol_get()
200 pr_debug("Found SCMI Protocol 0x%x\n", protocol_id); in scmi_protocol_get()
233 pr_err("unable to allocate SCMI idr slot for 0x%x - err %d\n", in scmi_protocol_register()
238 pr_debug("Registered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_register()
250 pr_debug("Unregistered SCMI Protocol 0x%x\n", proto->id); in scmi_protocol_unregister()
256 * this SCMI instance.
259 * @info: The SCMI instance descriptor
478 * @handle: Pointer to SCMI entity handle
519 * @handle: Pointer to SCMI entity handle
569 * @handle: Pointer to SCMI entity handle
591 * @handle: Pointer to SCMI entity handle
594 * Note that in a regular SCMI stack, usually, a protocol has to be defined in
654 * @handle: Pointer to SCMI entity handle
705 * SCMI transport can deliver such out-of-order responses.
973 * @cinfo: SCMI channel info
1004 * @ph: Pointer to SCMI protocol handle
1108 * @cinfo: SCMI channel info
1135 * @cinfo: SCMI channel info
1160 * @ph: Pointer to SCMI protocol handle
1252 * @ph: Pointer to SCMI protocol handle
1307 * @ph: Pointer to SCMI protocol handle
1363 * version_get() - command to get the revision of the SCMI entity
1365 * @ph: Pointer to SCMI protocol handle
1368 * Updates the SCMI information in the internal data structure.
1770 * A helper to grab the version memory area reference during SCMI Base protocol
1773 * Return: A reference to the version memory area associated to the SCMI
1787 * @info: The reference to the related SCMI instance.
1791 * description, against the specified SCMI instance @info, and initialize it;
1874 * @handle: A reference to the SCMI platform instance.
1913 * @handle: A reference to the SCMI platform instance.
1916 * Register a new user for the requested protocol on the specified SCMI
1928 * @handle: A reference to the SCMI platform instance.
2039 * released, and possibly de-initialized on last user, once the SCMI driver
2074 * released, and possibly de-initialized on last user, once the SCMI driver
2121 * SCMI instance is configured as atomic.
2123 * @handle: A reference to the SCMI platform instance.
2144 * scmi_handle_get() - Get the SCMI handle for a device
2146 * @dev: pointer to device for which we want SCMI handle
2149 * and is expected to be maintained by caller of SCMI protocol library.
2180 * and is expected to be maintained by caller of SCMI protocol library.
2375 "unable to allocate SCMI idr slot err %d\n", ret); in scmi_chan_setup()
2408 * @info: The SCMI instance descriptor.
2412 * borrowing devices from the SCMI drivers; this way channels are initialized
2413 * upfront during core SCMI stack probing and are no more coupled with SCMI
2414 * devices used by SCMI drivers.
2495 /* Skip transport devices and devices of different SCMI instances */ in scmi_bus_notifier()
2646 "SCMI RAW - Error enumerating channels\n"); in scmi_debugfs_raw_mode_setup()
2660 dev_err(info->dev, "Failed to initialize SCMI RAW Mode !\n"); in scmi_debugfs_raw_mode_setup()
2715 "SCMI System wide atomic threshold set to %d us\n", in scmi_probe()
2746 dev_warn(dev, "Failed to setup SCMI debugfs.\n"); in scmi_probe()
2759 dev_info(dev, "SCMI RAW Mode COEX enabled !\n"); in scmi_probe()
2764 dev_err(dev, "SCMI Notifications NOT available.\n"); in scmi_probe()
2772 * Trigger SCMI Base protocol initialization. in scmi_probe()
2774 * SCMI stack is shutdown/unloaded as a whole. in scmi_probe()
2778 dev_err(dev, "unable to communicate with SCMI\n"); in scmi_probe()
2798 dev_err(dev, "SCMI protocol %d not implemented\n", in scmi_probe()
2805 * @active_protocols for this SCMI instance/ in scmi_probe()
2810 dev_err(dev, "SCMI protocol %d already activated. Skip\n", in scmi_probe()
2849 "Still active SCMI users will be forcibly unbound.\n"); in scmi_remove()
2922 { .compatible = "arm,scmi", .data = &scmi_mailbox_desc },
2925 { .compatible = "linaro,scmi-optee", .data = &scmi_optee_desc },
2928 { .compatible = "arm,scmi-smc", .data = &scmi_smc_desc},
2929 { .compatible = "arm,scmi-smc-param", .data = &scmi_smc_desc},
2930 { .compatible = "qcom,scmi-smc", .data = &scmi_smc_desc},
2933 { .compatible = "arm,scmi-virtio", .data = &scmi_virtio_desc},
2942 .name = "arm-scmi",
2980 pr_err("SCMI transport %s FAILED initialization!\n", in __scmi_transports_setup()
3003 d = debugfs_create_dir("scmi", NULL); in scmi_debugfs_init()
3005 pr_err("Could NOT create SCMI top dentry.\n"); in scmi_debugfs_init()
3016 /* Bail out if no SCMI transport was configured */ in scmi_driver_init()
3064 MODULE_ALIAS("platform:arm-scmi");
3066 MODULE_DESCRIPTION("ARM SCMI protocol driver");