37#include "ove_config.h"
147 size_t rx_len, uint64_t timeout_ns);
152#define OVE_I2C_REG_WRITE_MAX 32
171 uint64_t timeout_ns);
188 uint64_t timeout_ns);
270 size_t rl, uint64_t t)
int ove_i2c_read(ove_i2c_t i2c, uint16_t addr, void *buf, size_t len, uint64_t timeout_ns)
Read data from an I2C device.
int ove_i2c_reg_read(ove_i2c_t i2c, uint16_t addr, uint8_t reg, void *buf, size_t len, uint64_t timeout_ns)
Read from a single-byte-addressed register.
ove_i2c_speed_t
I2C bus speed grade.
Definition i2c.h:49
int ove_i2c_write_read(ove_i2c_t i2c, uint16_t addr, const void *tx, size_t tx_len, void *rx, size_t rx_len, uint64_t timeout_ns)
Combined write-then-read with I2C repeated start.
void ove_i2c_destroy(ove_i2c_t i2c)
Destroy a heap-allocated I2C bus controller.
void ove_i2c_deinit(ove_i2c_t i2c)
Deinitialise a statically-allocated I2C bus.
int ove_i2c_write(ove_i2c_t i2c, uint16_t addr, const void *data, size_t len, uint64_t timeout_ns)
Write data to an I2C device.
int ove_i2c_create(ove_i2c_t *i2c, const struct ove_i2c_cfg *cfg)
Create a heap-allocated I2C bus controller.
int ove_i2c_reg_write(ove_i2c_t i2c, uint16_t addr, uint8_t reg, const void *data, size_t len, uint64_t timeout_ns)
Write to a single-byte-addressed register.
int ove_i2c_init(ove_i2c_t *i2c, ove_i2c_storage_t *storage, const struct ove_i2c_cfg *cfg)
Initialise an I2C bus using caller-provided static storage.
int ove_i2c_write_read_async(ove_i2c_t i2c, uint16_t addr, const void *tx, size_t tx_len, void *rx, size_t rx_len, ove_dma_complete_cb cb, void *user_data)
Submit an I2C write-then-read transaction asynchronously.
int ove_i2c_probe(ove_i2c_t i2c, uint16_t addr, uint64_t timeout_ns)
Probe for a device at the given address.
@ OVE_I2C_SPEED_FAST
Definition i2c.h:51
@ OVE_I2C_SPEED_STANDARD
Definition i2c.h:50
@ OVE_I2C_SPEED_FAST_PLUS
Definition i2c.h:52
void(* ove_dma_complete_cb)(int result, void *user_data)
DMA / async transfer completion callback signature.
Definition types.h:312
struct ove_i2c * ove_i2c_t
Opaque handle for an I2C bus controller.
Definition types.h:268
@ OVE_ERR_NOT_SUPPORTED
Definition types.h:98
I2C bus configuration descriptor.
Definition i2c.h:60
unsigned int instance
Definition i2c.h:61
ove_i2c_speed_t speed
Definition i2c.h:62