VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions
vsf_dw_apb_i2c.h File Reference
#include "hal/vsf_hal_cfg.h"
#include "./vsf_dw_apb_i2c_reg.h"
#include "utilities/ooc_class.h"
#include "hal/driver/common/template/vsf_template_i2c.h"

Go to the source code of this file.

Data Structures

class  vsf_dw_apb_i2c_t
 

Macros

#define VSF_DW_APB_I2C_CFG_MULTI_CLASS   VSF_I2C_CFG_MULTI_CLASS
 
#define VSF_I2C_CFG_REIMPLEMENT_TYPE_MODE   ENABLED
 
#define VSF_I2C_CFG_REIMPLEMENT_TYPE_CMD   ENABLED
 
#define VSF_I2C_CFG_REIMPLEMENT_TYPE_IRQ_MASK   ENABLED
 

Typedefs

typedef enum vsf_i2c_mode_t vsf_i2c_mode_t
 
typedef enum vsf_i2c_cmd_t vsf_i2c_cmd_t
 
typedef enum vsf_i2c_irq_mask_t vsf_i2c_irq_mask_t
 

Enumerations

enum  vsf_i2c_mode_t {
  VSF_I2C_MODE_MASTER = (0x1ul << 0) | (0x1ul << 6) ,
  VSF_I2C_MODE_SLAVE = (0x0ul << 0) ,
  VSF_I2C_SPEED_STANDARD_MODE = (0x1ul << 1) ,
  VSF_I2C_SPEED_FAST_MODE = (0x2ul << 1) ,
  VSF_I2C_SPEED_FAST_MODE_PLUS = (0x2ul << 1) ,
  VSF_I2C_SPEED_HIGH_SPEED_MODE = (0x3ul << 1) ,
  VSF_I2C_ADDR_7_BITS = (0x0ul << 3) ,
  VSF_I2C_ADDR_10_BITS = (0x3ul << 3) ,
  __VSF_DW_APB_I2C_MODE_MASK
}
 
enum  vsf_i2c_cmd_t {
  VSF_I2C_CMD_WRITE = (0x00ul << 8) ,
  VSF_I2C_CMD_READ = (0x01ul << 8) ,
  VSF_I2C_CMD_START = (0x01ul << 16) ,
  VSF_I2C_CMD_RESTART = (0x01ul << 10) ,
  VSF_I2C_CMD_STOP = (0x01ul << 9) ,
  VSF_I2C_CMD_7_BITS = (0x00ul << 17) ,
  VSF_I2C_CMD_10_BITS = (0x01ul << 17) ,
  __VSF_DW_APB_I2C_CMD_MASK ,
  VSF_I2C_CMD_NO_START = (0x01ul << 24) ,
  VSF_I2C_CMD_NO_STOP_RESTART = (0x01ul << 25)
}
 
enum  vsf_i2c_irq_mask_t {
  VSF_I2C_IRQ_MASK_MASTER_STARTED = (0x01ul << 16) ,
  VSF_I2C_IRQ_MASK_MASTER_STOPPED = (0x01ul << 17) ,
  VSF_I2C_IRQ_MASK_MASTER_STOP_DETECT = (0x01ul << 9) ,
  VSF_I2C_IRQ_MASK_MASTER_NACK_DETECT = (0x01ul << 3) ,
  VSF_I2C_IRQ_MASK_MASTER_TX_EMPTY = (0x01ul << 4) ,
  VSF_I2C_IRQ_MASK_MASTER_ARBITRATION_LOST = (0x01ul << 12) ,
  VSF_I2C_IRQ_MASK_MASTER_ERROR = (0x01ul << 24) ,
  VSF_I2C_IRQ_MASK_MASTER_TRANSFER_COMPLETE = (0x01ul << 18) ,
  VSF_I2C_IRQ_MASK_MASTER_ADDRESS_NACK = ((0x01ul << 0) | (0x01ul << 1) | (0x01ul << 2)) ,
  VSF_DW_APB_I2C_IRQ_MASK_ALL ,
  __VSF_DW_APB_I2C_IRQ_MASK ,
  __VSF_DW_APB_I2C_ABRT_MASK ,
  __VSF_DW_APB_I2C_ERROR_MASK
}
 

Functions

vsf_err_t vsf_dw_apb_i2c_init (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr, vsf_i2c_cfg_t *cfg_ptr, uint_fast32_t ic_clk_hz)
 
void vsf_dw_apb_i2c_fini (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 
fsm_rt_t vsf_dw_apb_i2c_enable (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 
fsm_rt_t vsf_dw_apb_i2c_disable (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 
vsf_i2c_irq_mask_t vsf_dw_apb_i2c_irq_enable (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr, vsf_i2c_irq_mask_t irq_mask)
 
vsf_i2c_irq_mask_t vsf_dw_apb_i2c_irq_disable (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr, vsf_i2c_irq_mask_t irq_mask)
 
vsf_i2c_status_t vsf_dw_apb_i2c_status (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 
void vsf_dw_apb_i2c_isrhandler (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 
vsf_err_t vsf_dw_apb_i2c_master_request (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr, uint16_t address, vsf_i2c_cmd_t cmd, uint16_t count, uint8_t *buffer)
 
uint_fast32_t vsf_dw_apb_i2c_get_transferred_count (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 
vsf_i2c_capability_t vsf_dw_apb_i2c_capability (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 
void vsf_dw_apb_i2c_irqhandler (vsf_dw_apb_i2c_t *dw_apb_i2c_ptr)
 

Macro Definition Documentation

◆ VSF_DW_APB_I2C_CFG_MULTI_CLASS

#define VSF_DW_APB_I2C_CFG_MULTI_CLASS   VSF_I2C_CFG_MULTI_CLASS

◆ VSF_I2C_CFG_REIMPLEMENT_TYPE_MODE

#define VSF_I2C_CFG_REIMPLEMENT_TYPE_MODE   ENABLED

◆ VSF_I2C_CFG_REIMPLEMENT_TYPE_CMD

#define VSF_I2C_CFG_REIMPLEMENT_TYPE_CMD   ENABLED

◆ VSF_I2C_CFG_REIMPLEMENT_TYPE_IRQ_MASK

#define VSF_I2C_CFG_REIMPLEMENT_TYPE_IRQ_MASK   ENABLED

Typedef Documentation

◆ vsf_i2c_mode_t

◆ vsf_i2c_cmd_t

◆ vsf_i2c_irq_mask_t

Enumeration Type Documentation

◆ vsf_i2c_mode_t

Enumerator
VSF_I2C_MODE_MASTER 
VSF_I2C_MODE_SLAVE 
VSF_I2C_SPEED_STANDARD_MODE 
VSF_I2C_SPEED_FAST_MODE 
VSF_I2C_SPEED_FAST_MODE_PLUS 
VSF_I2C_SPEED_HIGH_SPEED_MODE 
VSF_I2C_ADDR_7_BITS 
VSF_I2C_ADDR_10_BITS 
__VSF_DW_APB_I2C_MODE_MASK 

◆ vsf_i2c_cmd_t

Enumerator
VSF_I2C_CMD_WRITE 
VSF_I2C_CMD_READ 
VSF_I2C_CMD_START 
VSF_I2C_CMD_RESTART 
VSF_I2C_CMD_STOP 
VSF_I2C_CMD_7_BITS 
VSF_I2C_CMD_10_BITS 
__VSF_DW_APB_I2C_CMD_MASK 
VSF_I2C_CMD_NO_START 
VSF_I2C_CMD_NO_STOP_RESTART 

◆ vsf_i2c_irq_mask_t

Enumerator
VSF_I2C_IRQ_MASK_MASTER_STARTED 
VSF_I2C_IRQ_MASK_MASTER_STOPPED 
VSF_I2C_IRQ_MASK_MASTER_STOP_DETECT 
VSF_I2C_IRQ_MASK_MASTER_NACK_DETECT 
VSF_I2C_IRQ_MASK_MASTER_TX_EMPTY 
VSF_I2C_IRQ_MASK_MASTER_ARBITRATION_LOST 
VSF_I2C_IRQ_MASK_MASTER_ERROR 
VSF_I2C_IRQ_MASK_MASTER_TRANSFER_COMPLETE 
VSF_I2C_IRQ_MASK_MASTER_ADDRESS_NACK 
VSF_DW_APB_I2C_IRQ_MASK_ALL 
__VSF_DW_APB_I2C_IRQ_MASK 
__VSF_DW_APB_I2C_ABRT_MASK 
__VSF_DW_APB_I2C_ERROR_MASK 

Function Documentation

◆ vsf_dw_apb_i2c_init()

vsf_err_t vsf_dw_apb_i2c_init ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr,
vsf_i2c_cfg_t cfg_ptr,
uint_fast32_t  ic_clk_hz 
)
extern

◆ vsf_dw_apb_i2c_fini()

void vsf_dw_apb_i2c_fini ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern

◆ vsf_dw_apb_i2c_enable()

fsm_rt_t vsf_dw_apb_i2c_enable ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern

◆ vsf_dw_apb_i2c_disable()

fsm_rt_t vsf_dw_apb_i2c_disable ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern

◆ vsf_dw_apb_i2c_irq_enable()

vsf_i2c_irq_mask_t vsf_dw_apb_i2c_irq_enable ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr,
vsf_i2c_irq_mask_t  irq_mask 
)
extern

◆ vsf_dw_apb_i2c_irq_disable()

vsf_i2c_irq_mask_t vsf_dw_apb_i2c_irq_disable ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr,
vsf_i2c_irq_mask_t  irq_mask 
)
extern

◆ vsf_dw_apb_i2c_status()

vsf_i2c_status_t vsf_dw_apb_i2c_status ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern

◆ vsf_dw_apb_i2c_isrhandler()

void vsf_dw_apb_i2c_isrhandler ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern

◆ vsf_dw_apb_i2c_master_request()

vsf_err_t vsf_dw_apb_i2c_master_request ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr,
uint16_t  address,
vsf_i2c_cmd_t  cmd,
uint16_t  count,
uint8_t buffer 
)
extern

◆ vsf_dw_apb_i2c_get_transferred_count()

uint_fast32_t vsf_dw_apb_i2c_get_transferred_count ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern

◆ vsf_dw_apb_i2c_capability()

vsf_i2c_capability_t vsf_dw_apb_i2c_capability ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern

◆ vsf_dw_apb_i2c_irqhandler()

void vsf_dw_apb_i2c_irqhandler ( vsf_dw_apb_i2c_t dw_apb_i2c_ptr)
extern