8 #ifndef HPM_I2C_COMPONENTS_H
9 #define HPM_I2C_COMPONENTS_H
12 #ifdef HPMSOC_HAS_HPMSDK_DMAV2
19 #include "hpm_l1c_drv.h"
21 #ifndef USE_I2C_DMA_MGR
22 #define USE_I2C_DMA_MGR (0U)
26 typedef void (*hpm_i2c_dma_complete_cb)(uint32_t channel);
117 uint8_t *buf, uint32_t buf_size, uint32_t timeout);
135 uint8_t *buf, uint32_t buf_size, uint32_t timeout);
153 uint8_t *buf, uint32_t
size, uint32_t timeout);
170 uint8_t *buf,
const uint32_t
size, uint32_t timeout);
211 hpm_stat_t hpm_i2c_dma_install_callback(
I2C_Type *ptr, hpm_i2c_dma_complete_cb complete);
227 hpm_stat_t hpm_i2c_master_addr_write_nonblocking(
I2C_Type *ptr,
const uint16_t device_address, uint32_t addr, uint8_t addr_size,
228 uint8_t *buf, uint32_t buf_size);
244 hpm_stat_t hpm_i2c_master_addr_read_nonblocking(
I2C_Type *ptr,
const uint16_t device_address, uint32_t addr, uint8_t addr_size,
245 uint8_t *buf, uint32_t buf_size);
260 uint8_t *buf, uint32_t
size);
274 hpm_stat_t hpm_i2c_master_read_nonblocking(
I2C_Type *ptr,
const uint16_t device_address,
275 uint8_t *buf,
const uint32_t
size);
uint32_t hpm_stat_t
Definition: hpm_common.h:123
static void size
Definition: hpm_math.h:6899
enum i2c_speed i2c_speed_t
hpm_stat_t hpm_i2c_slave_write_blocking(I2C_Type *ptr, uint8_t *buf, uint32_t size, uint32_t timeout)
I2C slave write operation in blocking mode.
Definition: hpm_i2c.c:558
hpm_stat_t hpm_i2c_slave_read_blocking(I2C_Type *ptr, uint8_t *buf, uint32_t size, uint32_t timeout)
I2C slave read operation in blocking mode.
Definition: hpm_i2c.c:605
hpm_stat_t hpm_i2c_master_probe_slave_address(I2C_Type *ptr, uint16_t device_address)
Probes an I2C slave address.
Definition: hpm_i2c.c:251
hpm_stat_t hpm_i2c_master_addr_write_blocking(I2C_Type *ptr, const uint16_t device_address, uint32_t addr, uint8_t addr_size, uint8_t *buf, uint32_t buf_size, uint32_t timeout)
Definition: hpm_i2c.c:271
hpm_stat_t hpm_i2c_master_addr_read_blocking(I2C_Type *ptr, 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:339
struct i2c_initialize_config i2c_initialize_config_t
i2c_speed
Definition: hpm_i2c.h:35
@ i2c_speed_100khz
Definition: hpm_i2c.h:36
@ i2c_speed_400khz
Definition: hpm_i2c.h:37
@ i2c_speed_1Mhz
Definition: hpm_i2c.h:38
void hpm_i2c_get_default_init_config(i2c_initialize_config_t *config)
Definition: hpm_i2c.c:208
i2c_communication_mode
Definition: hpm_i2c.h:46
@ i2c_master
Definition: hpm_i2c.h:47
@ i2c_slave
Definition: hpm_i2c.h:48
hpm_stat_t hpm_i2c_master_write_blocking(I2C_Type *ptr, 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:419
enum i2c_communication_mode i2c_communication_mode_t
hpm_stat_t hpm_i2c_initialize(I2C_Type *ptr, i2c_initialize_config_t *config)
Initialize the I2C interface.
Definition: hpm_i2c.c:215
hpm_stat_t hpm_i2c_master_read_blocking(I2C_Type *ptr, 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:489
Definition: hpm_i2c_regs.h:12
bool is_10bit_addressing
Definition: hpm_i2c.h:58
i2c_communication_mode_t communication_mode
Definition: hpm_i2c.h:56
i2c_speed_t speed
Definition: hpm_i2c.h:57
uint8_t slave_address
Definition: hpm_i2c.h:59