8 #ifndef HPM_I2C_COMPONENTS_H
9 #define HPM_I2C_COMPONENTS_H
12 #ifdef HPMSOC_HAS_HPMSDK_DMAV2
21 #ifndef USE_I2C_DMA_MGR
22 #define USE_I2C_DMA_MGR (0U)
27 typedef void (*hpm_i2c_dma_complete_cb)(uint32_t channel);
131 uint8_t *buf, uint32_t buf_size, uint32_t timeout);
149 uint8_t *buf, uint32_t buf_size, uint32_t timeout);
167 uint8_t *buf, uint32_t
size, uint32_t timeout);
184 uint8_t *buf,
const uint32_t
size, uint32_t timeout);
241 hpm_stat_t hpm_i2c_master_addr_write_nonblocking(
hpm_i2c_context_t *context,
const uint16_t device_address, uint32_t addr, uint8_t addr_size,
242 uint8_t *buf, uint32_t buf_size);
258 hpm_stat_t hpm_i2c_master_addr_read_nonblocking(
hpm_i2c_context_t *context,
const uint16_t device_address, uint32_t addr, uint8_t addr_size,
259 uint8_t *buf, uint32_t buf_size);
274 uint8_t *buf, uint32_t
size);
289 uint8_t *buf,
const uint32_t
size);
uint32_t hpm_stat_t
Definition: hpm_common.h:126
static void size
Definition: hpm_math.h:6938
struct _dma_resource dma_resource_t
DMA Resource Structure.
void hpm_i2c_get_default_init_context(hpm_i2c_context_t *context)
Definition: hpm_i2c.c:211
enum i2c_master_addr_endianness hpm_i2c_master_addr_endianness_t
hpm_stat_t hpm_i2c_master_addr_write_blocking(hpm_i2c_context_t *context, const uint16_t device_address, uint32_t addr, uint8_t addr_size, uint8_t *buf, uint32_t buf_size, uint32_t timeout)
I2C master write data to a device's address over I2C in blocking mode.
Definition: hpm_i2c.c:276
hpm_stat_t hpm_i2c_master_addr_read_blocking(hpm_i2c_context_t *context, const uint16_t device_address, uint32_t addr, uint8_t addr_size, uint8_t *buf, uint32_t buf_size, uint32_t timeout)
I2C master read data from a specified address of an I2C slave device in blocking mode.
Definition: hpm_i2c.c:349
enum i2c_speed hpm_i2c_speed_t
struct i2c_initialize_config hpm_i2c_initialize_config_t
hpm_stat_t hpm_i2c_master_write_blocking(hpm_i2c_context_t *context, uint16_t device_address, uint8_t *buf, uint32_t size, uint32_t timeout)
I2C master write data to an I2C slave device in blocking mode.
Definition: hpm_i2c.c:434
hpm_stat_t hpm_i2c_master_probe_slave_address(hpm_i2c_context_t *context, uint16_t device_address)
Probes an I2C slave address.
Definition: hpm_i2c.c:255
i2c_speed
Definition: hpm_i2c.h:36
@ i2c_speed_100khz
Definition: hpm_i2c.h:37
@ i2c_speed_400khz
Definition: hpm_i2c.h:38
@ i2c_speed_1Mhz
Definition: hpm_i2c.h:39
hpm_stat_t hpm_i2c_master_read_blocking(hpm_i2c_context_t *context, const uint16_t device_address, uint8_t *buf, const uint32_t size, uint32_t timeout)
I2C master read data from an I2C device in blocking mode.
Definition: hpm_i2c.c:505
i2c_master_addr_endianness
Definition: hpm_i2c.h:52
@ i2c_master_addr_big_endian
Definition: hpm_i2c.h:54
@ i2c_master_addr_little_endian
Definition: hpm_i2c.h:53
hpm_stat_t hpm_i2c_slave_write_blocking(hpm_i2c_context_t *context, uint8_t *buf, uint32_t size, uint32_t timeout)
I2C slave write operation in blocking mode.
Definition: hpm_i2c.c:575
enum i2c_communication_mode hpm_i2c_communication_mode_t
hpm_stat_t hpm_i2c_slave_read_blocking(hpm_i2c_context_t *context, uint8_t *buf, uint32_t size, uint32_t timeout)
I2C slave read operation in blocking mode.
Definition: hpm_i2c.c:623
i2c_communication_mode
Definition: hpm_i2c.h:47
@ i2c_master
Definition: hpm_i2c.h:48
@ i2c_slave
Definition: hpm_i2c.h:49
struct i2c_context_t hpm_i2c_context_t
hpm_stat_t hpm_i2c_initialize(hpm_i2c_context_t *context)
Initialize the I2C interface.
Definition: hpm_i2c.c:217
Definition: hpm_i2c_regs.h:12
hpm_i2c_master_addr_endianness_t addr_endianness
Definition: hpm_i2c.h:71
I2C_Type * base
Definition: hpm_i2c.h:69
hpm_i2c_initialize_config_t init_config
Definition: hpm_i2c.h:70
bool is_10bit_addressing
Definition: hpm_i2c.h:64
hpm_i2c_speed_t speed
Definition: hpm_i2c.h:63
hpm_i2c_communication_mode_t communication_mode
Definition: hpm_i2c.h:62
uint8_t slave_address
Definition: hpm_i2c.h:65