| 
    Zephyr Project API
    3.4.0
    
   A Scalable Open Source RTOS 
   | 
 
I3C In-Band Interrupts. More...
Data Structures | |
| struct | i3c_ibi | 
| Struct for IBI request.  More... | |
| struct | i3c_ibi_payload | 
| Structure of payload buffer for IBI.  More... | |
| struct | i3c_ibi_work | 
| Node about a queued IBI.  More... | |
Macros | |
| #define | CONFIG_I3C_IBI_MAX_PAYLOAD_SIZE 0 | 
Typedefs | |
| typedef int(* | i3c_target_ibi_cb_t) (struct i3c_device_desc *target, struct i3c_ibi_payload *payload) | 
| Function called when In-Band Interrupt received from target device.  More... | |
Enumerations | |
| enum | i3c_ibi_type {  I3C_IBI_TARGET_INTR , I3C_IBI_CONTROLLER_ROLE_REQUEST , I3C_IBI_HOTJOIN , I3C_IBI_TYPE_MAX = I3C_IBI_HOTJOIN , I3C_IBI_WORKQUEUE_CB }  | 
| IBI Types.  More... | |
Functions | |
| int | i3c_ibi_work_enqueue (struct i3c_ibi_work *ibi_work) | 
| Queue an IBI work item for future processing.  More... | |
| int | i3c_ibi_work_enqueue_target_irq (struct i3c_device_desc *target, uint8_t *payload, size_t payload_len) | 
| Queue a target interrupt IBI for future processing.  More... | |
| int | i3c_ibi_work_enqueue_hotjoin (const struct device *dev) | 
| Queue a hot join IBI for future processing.  More... | |
| int | i3c_ibi_work_enqueue_cb (const struct device *dev, k_work_handler_t work_cb) | 
| Queue a generic callback for future processing.  More... | |
I3C In-Band Interrupts.
| #define CONFIG_I3C_IBI_MAX_PAYLOAD_SIZE 0 | 
#include <include/zephyr/drivers/i3c/ibi.h>
| typedef int(* i3c_target_ibi_cb_t) (struct i3c_device_desc *target, struct i3c_ibi_payload *payload) | 
#include <include/zephyr/drivers/i3c/ibi.h>
Function called when In-Band Interrupt received from target device.
This function is invoked by the controller when the controller receives an In-Band Interrupt from the target device.
A success return shall cause the controller to ACK the next byte received. An error return shall cause the controller to NACK the next byte received.
| target | the device description structure associated with the device to which the operation is addressed. | 
| payload | Payload associated with the IBI. NULL if there is no payload. | 
| enum i3c_ibi_type | 
#include <include/zephyr/drivers/i3c/ibi.h>
IBI Types.
| Enumerator | |
|---|---|
| I3C_IBI_TARGET_INTR | Target interrupt  | 
| I3C_IBI_CONTROLLER_ROLE_REQUEST | Controller Role Request  | 
| I3C_IBI_HOTJOIN | Hot Join Request  | 
| I3C_IBI_TYPE_MAX | |
| I3C_IBI_WORKQUEUE_CB | |
| int i3c_ibi_work_enqueue | ( | struct i3c_ibi_work * | ibi_work | ) | 
#include <include/zephyr/drivers/i3c/ibi.h>
Queue an IBI work item for future processing.
This queues up an IBI work item in the IBI workqueue for future processing.
Note that this will copy the ibi_work struct into internal structure. If there is not enough space to copy the ibi_work struct, this returns -ENOMEM.
| ibi_work | Pointer to the IBI work item struct. | 
| 0 | If work item is successfully queued. | 
| -ENOMEM | If no more free internal node to store IBI work item. | 
| Others | 
| int i3c_ibi_work_enqueue_cb | ( | const struct device * | dev, | 
| k_work_handler_t | work_cb | ||
| ) | 
#include <include/zephyr/drivers/i3c/ibi.h>
Queue a generic callback for future processing.
This queues up a generic callback in the IBI workqueue for future processing.
| dev | Pointer to controller device driver instance. | 
| work_cb | Callback function. | 
| 0 | If work item is successfully queued. | 
| -ENOMEM | If no more free internal node to store IBI work item. | 
| Others | 
| int i3c_ibi_work_enqueue_hotjoin | ( | const struct device * | dev | ) | 
#include <include/zephyr/drivers/i3c/ibi.h>
Queue a hot join IBI for future processing.
This queues up a hot join IBI in the IBI workqueue for future processing.
| dev | Pointer to controller device driver instance. | 
| 0 | If work item is successfully queued. | 
| -ENOMEM | If no more free internal node to store IBI work item. | 
| Others | 
| int i3c_ibi_work_enqueue_target_irq | ( | struct i3c_device_desc * | target, | 
| uint8_t * | payload, | ||
| size_t | payload_len | ||
| ) | 
#include <include/zephyr/drivers/i3c/ibi.h>
Queue a target interrupt IBI for future processing.
This queues up a target interrupt IBI in the IBI workqueue for future processing.
| target | Pointer to target device descriptor. | 
| payload | Pointer to IBI payload byte array. | 
| payload_len | Length of payload byte array. | 
| 0 | If work item is successfully queued. | 
| -ENOMEM | If no more free internal node to store IBI work item. | 
| Others |