|
Zephyr API Documentation 4.3.0-rc1
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().