Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
|
Go to the source code of this file.
Data Structures | |
struct | i3c_rtio |
Driver context for implementing i3c with rtio. More... | |
Macros | |
#define | I3C_RTIO_DEFINE(_name, _sq_sz, _cq_sz) |
Statically define an i3c_rtio context. | |
Functions | |
struct rtio_sqe * | i3c_rtio_copy (struct rtio *r, struct rtio_iodev *iodev, const struct i3c_msg *msgs, uint8_t num_msgs) |
Copy an array of i3c_msgs to rtio submissions and a transaction. | |
void | i3c_rtio_init (struct i3c_rtio *ctx) |
Initialize an i3c rtio context. | |
bool | i3c_rtio_complete (struct i3c_rtio *ctx, int status) |
Signal that the current (ctx->txn_curr) submission has been completed. | |
bool | i3c_rtio_submit (struct i3c_rtio *ctx, struct rtio_iodev_sqe *iodev_sqe) |
Submit, atomically, a submission to work on at some point. | |
int | i3c_rtio_configure (struct i3c_rtio *ctx, enum i3c_config_type type, void *config) |
Configure the I3C bus controller. | |
int | i3c_rtio_transfer (struct i3c_rtio *ctx, struct i3c_msg *msgs, uint8_t num_msgs, struct i3c_device_desc *desc) |
Transfer i3c messages in a blocking call. | |
int | i3c_rtio_recover (struct i3c_rtio *ctx) |
Perform an I3C bus recovery in a blocking call. | |
int | i3c_rtio_ccc (struct i3c_rtio *ctx, struct i3c_ccc_payload *payload) |
Perform an I3C CCC in a blocking call. | |
#define I3C_RTIO_DEFINE | ( | _name, | |
_sq_sz, | |||
_cq_sz ) |
Statically define an i3c_rtio context.
_name | Symbolic name of the context |
_sq_sz | Submission queue entry pool size |
_cq_sz | Completion queue entry pool size |
int i3c_rtio_ccc | ( | struct i3c_rtio * | ctx, |
struct i3c_ccc_payload * | payload ) |
Perform an I3C CCC in a blocking call.
Provides a compatible API for the existing i3c_do_ccc API, and blocks the caller until the process completes.
See i3c_do_ccc().
Signal that the current (ctx->txn_curr) submission has been completed.
ctx | I3C RTIO driver context |
status | Completion status, negative values are errors |
true | Next submission is ready to start |
false | No more submissions to work on |
int i3c_rtio_configure | ( | struct i3c_rtio * | ctx, |
enum i3c_config_type | type, | ||
void * | config ) |
Configure the I3C bus controller.
Provides a compatible API for the existing i3c_configure API, and blocks the caller until the transfer completes.
See i3c_configure().
struct rtio_sqe * i3c_rtio_copy | ( | struct rtio * | r, |
struct rtio_iodev * | iodev, | ||
const struct i3c_msg * | msgs, | ||
uint8_t | num_msgs ) |
Copy an array of i3c_msgs to rtio submissions and a transaction.
sqe | Last sqe setup in the copy |
NULL | Not enough memory to copy the transaction |
void i3c_rtio_init | ( | struct i3c_rtio * | ctx | ) |
Initialize an i3c rtio context.
ctx | I3C RTIO driver context |
int i3c_rtio_recover | ( | struct i3c_rtio * | ctx | ) |
Perform an I3C bus recovery in a blocking call.
Provides a compatible API for the existing i3c_recover API, and blocks the caller until the process completes.
See i3c_recover().
bool i3c_rtio_submit | ( | struct i3c_rtio * | ctx, |
struct rtio_iodev_sqe * | iodev_sqe ) |
Submit, atomically, a submission to work on at some point.
true | Next submission is ready to start |
false | No new submission to start or submissions are in progress already |
int i3c_rtio_transfer | ( | struct i3c_rtio * | ctx, |
struct i3c_msg * | msgs, | ||
uint8_t | num_msgs, | ||
struct i3c_device_desc * | desc ) |
Transfer i3c messages in a blocking call.
Provides a compatible API for the existing i3c_transfer API, and blocks the caller until the transfer completes.
See i3c_transfer().