FreeRTOS port on GAP8/RISC-V
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gap9/pmsis/include/pmsis/implem/drivers/udma/i2c/i2c_internal.h File Reference

Data Structures

struct  i2c_slave_data
 
struct  i2c_itf_data
 

Macros

#define I2C_DRIVER_DATA_IMPLEM_SPECIFC
 
#define i2c_req_t
 UART request structure. More...
 
#define I2C_READ
 
#define I2C_WRITE
 
#define I2C_WRITE_READ
 
#define I2C_WRITE_DUAL
 
#define CMD_BUF_SIZE
 
#define I2C_WRITE_BUF_SIZE
 
#define I2C_READ_BUF_SIZE
 
#define I2C_W_R_BUF_SIZE
 
#define I2C_BUF_START_POS
 
#define I2C_BUF_WRITE_RPT_POS
 
#define I2C_W_R_BUF_WR_POS
 
#define I2C_W_R_BUF_RESTART_POS
 
#define RD_BUF_RPT(bits)
 
#define W_R_BUF_RD(bits)
 
#define RD_BUF_STOP_ID(bits)
 
#define WR_BUF_STOP_ID
 
#define I2C_SLAVE_GET_ITF(slave)
 

Typedefs

typedef uint32_t i2c_cmd_t
 

Functions

int __pi_i2c_open (struct i2c_slave_data **slave_data, struct pi_i2c_conf *conf)
 
void __pi_i2c_close (struct i2c_slave_data *slave_data)
 
void __pi_i2c_ioctl (struct i2c_slave_data *slave_data, uint32_t cmd, void *arg)
 
static void __i2c_drv_fifo_enqueue (struct i2c_itf_data *data, pi_task_t *pi_task)
 
static pi_task_t__i2c_drv_fifo_pop (struct i2c_itf_data *data)
 
static struct i2c_slave_data___i2c_drv_get_slave (struct i2c_itf_data *itf_data, uint16_t slave_addr, uint8_t ref_cnt)
 
static void __i2c_drv_add_slave (struct i2c_itf_data *itf_data, struct i2c_slave_data *slave_data)
 
static void __i2c_drv_remove_slave (struct i2c_itf_data *itf_data, struct i2c_slave_data *slave_data)
 
static uint32_t __i2c_prepare_timing (uint32_t max_baudrate, uint32_t periph_clock)
 
static void * __i2c_prepare_read_cmd_buffer (uint16_t slave_addr, void *cmd_buf, uint32_t read_size, void *read_buf, int *buf_size_out, pi_i2c_xfer_flags_e flags, int8_t bits)
 
static void * __i2c_prepare_write_cmd_buffer (uint16_t slave_addr, void *cmd_buf, uint32_t write_size, void *write_buf, int *buf_size_out, pi_i2c_xfer_flags_e flags)
 
void __pi_i2c_timeout_abort (void *arg)
 
static void __pi_i2c_timeout_config_set (pi_task_t *task, uint8_t timeout_id, uint8_t udma_chan_id, uint32_t timeout_us, pi_callback_func_t abort_func, void *arg)
 
static void __pi_i2c_read (struct i2c_slave_data *slave_data, void *buffer, uint32_t size, pi_i2c_xfer_flags_e flags, pi_task_t *callback)
 
static void __pi_i2c_write (struct i2c_slave_data *slave_data, void *buffer, uint32_t size, pi_i2c_xfer_flags_e flags, pi_task_t *callback)
 
static void __pi_i2c_write_read (struct i2c_slave_data *slave_data, void *tx_buffer, void *rx_buffer, uint32_t tx_size, uint32_t rx_size, pi_task_t *callback)
 
static void __pi_i2c_write_dual (struct i2c_slave_data *slave_data, void *tx_buffer0, void *tx_buffer1, uint32_t tx_size0, uint32_t tx_size1, pi_task_t *callback)
 

Macro Definition Documentation

#define CMD_BUF_SIZE
#define I2C_BUF_WRITE_RPT_POS

Referenced by __pi_i2c_write_dual().

#define I2C_DRIVER_DATA_IMPLEM_SPECIFC
#define I2C_READ
#define I2C_READ_BUF_SIZE
#define i2c_req_t
#define I2C_SLAVE_GET_ITF (   slave)
#define I2C_W_R_BUF_RESTART_POS
#define I2C_W_R_BUF_SIZE

Referenced by __pi_i2c_write_read().

#define I2C_W_R_BUF_WR_POS
#define I2C_WRITE
#define I2C_WRITE_BUF_SIZE
#define I2C_WRITE_DUAL
#define I2C_WRITE_READ
#define RD_BUF_RPT (   bits)
#define RD_BUF_STOP_ID (   bits)
#define W_R_BUF_RD (   bits)

Typedef Documentation

typedef uint32_t i2c_cmd_t

Function Documentation

static struct i2c_slave_data* ___i2c_drv_get_slave ( struct i2c_itf_data itf_data,
uint16_t  slave_addr,
uint8_t  ref_cnt 
)
static
static void __i2c_drv_add_slave ( struct i2c_itf_data itf_data,
struct i2c_slave_data slave_data 
)
inlinestatic
static void __i2c_drv_fifo_enqueue ( struct i2c_itf_data data,
pi_task_t pi_task 
)
inlinestatic
static pi_task_t* __i2c_drv_fifo_pop ( struct i2c_itf_data data)
inlinestatic
static void __i2c_drv_remove_slave ( struct i2c_itf_data itf_data,
struct i2c_slave_data slave_data 
)
inlinestatic
static void* __i2c_prepare_read_cmd_buffer ( uint16_t  slave_addr,
void *  cmd_buf,
uint32_t  read_size,
void *  read_buf,
int *  buf_size_out,
pi_i2c_xfer_flags_e  flags,
int8_t  bits 
)
inlinestatic
static uint32_t __i2c_prepare_timing ( uint32_t  max_baudrate,
uint32_t  periph_clock 
)
inlinestatic
static void* __i2c_prepare_write_cmd_buffer ( uint16_t  slave_addr,
void *  cmd_buf,
uint32_t  write_size,
void *  write_buf,
int *  buf_size_out,
pi_i2c_xfer_flags_e  flags 
)
inlinestatic
static void __pi_i2c_timeout_config_set ( pi_task_t task,
uint8_t  timeout_id,
uint8_t  udma_chan_id,
uint32_t  timeout_us,
pi_callback_func_t  abort_func,
void *  arg 
)
inlinestatic
static void __pi_i2c_write_dual ( struct i2c_slave_data slave_data,
void *  tx_buffer0,
void *  tx_buffer1,
uint32_t  tx_size0,
uint32_t  tx_size1,
pi_task_t callback 
)
inlinestatic
static void __pi_i2c_write_read ( struct i2c_slave_data slave_data,
void *  tx_buffer,
void *  rx_buffer,
uint32_t  tx_size,
uint32_t  rx_size,
pi_task_t callback 
)
inlinestatic