18#ifndef __VSF_TEMPLATE_I2C_H__
19#define __VSF_TEMPLATE_I2C_H__
38#ifndef VSF_I2C_CFG_MULTI_CLASS
39# define VSF_I2C_CFG_MULTI_CLASS ENABLED
50#if defined(VSF_HW_I2C_COUNT) && !defined(VSF_HW_I2C_MASK)
51# define VSF_HW_I2C_MASK VSF_HAL_COUNT_TO_MASK(VSF_HW_I2C_COUNT)
62#if !defined(VSF_HW_I2C_COUNT) && defined(VSF_HW_I2C_MASK)
63# define VSF_HW_I2C_COUNT VSF_HAL_MASK_TO_COUNT(VSF_HW_I2C_MASK)
76#ifndef VSF_I2C_CFG_PREFIX
77# if VSF_I2C_CFG_MULTI_CLASS == ENABLED
78# define VSF_I2C_CFG_PREFIX vsf
79# elif defined(VSF_HW_I2C_COUNT) && (VSF_HW_I2C_COUNT != 0)
80# define VSF_I2C_CFG_PREFIX vsf_hw
82# define VSF_I2C_CFG_PREFIX vsf
94#ifndef VSF_I2C_CFG_FUNCTION_RENAME
95# define VSF_I2C_CFG_FUNCTION_RENAME ENABLED
106#ifndef VSF_I2C_CFG_REIMPLEMENT_TYPE_MODE
107# define VSF_I2C_CFG_REIMPLEMENT_TYPE_MODE DISABLED
118#ifndef VSF_I2C_CFG_REIMPLEMENT_TYPE_CMD
119# define VSF_I2C_CFG_REIMPLEMENT_TYPE_CMD DISABLED
130#ifndef VSF_I2C_CFG_REIMPLEMENT_TYPE_IRQ_MASK
131# define VSF_I2C_CFG_REIMPLEMENT_TYPE_IRQ_MASK DISABLED
144#ifndef VSF_I2C_CFG_REIMPLEMENT_TYPE_STATUS
145# define VSF_I2C_CFG_REIMPLEMENT_TYPE_STATUS DISABLED
158#ifndef VSF_I2C_CFG_REIMPLEMENT_TYPE_CTRL
159# define VSF_I2C_CFG_REIMPLEMENT_TYPE_CTRL DISABLED
173#if VSF_I2C_CFG_REIMPLEMENT_TYPE_CFG == DISABLED
174# define VSF_I2C_CFG_REIMPLEMENT_TYPE_CFG DISABLED
185#ifndef VSF_I2C_CFG_INHERIT_HAL_CAPABILITY
186# define VSF_I2C_CFG_INHERIT_HAL_CAPABILITY ENABLED
197#define VSF_I2C_APIS(__PREFIX_NAME) \
198 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, vsf_err_t, i2c, init, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, vsf_i2c_cfg_t *cfg_ptr) \
199 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, void, i2c, fini, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr) \
200 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, fsm_rt_t, i2c, enable, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr) \
201 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, fsm_rt_t, i2c, disable, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr) \
202 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, void, i2c, irq_enable, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, vsf_i2c_irq_mask_t irq_mask) \
203 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, void, i2c, irq_disable, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, vsf_i2c_irq_mask_t irq_mask) \
204 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, vsf_i2c_status_t, i2c, status, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr) \
205 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, vsf_i2c_capability_t, i2c, capability, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr) \
206 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, void, i2c, master_fifo_transfer, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, uint16_t address, \
207 vsf_i2c_cmd_t cmd, uint_fast16_t count, uint8_t* buffer_ptr, vsf_i2c_cmd_t *cur_cmd_ptr, uint_fast16_t *offset_ptr) \
208 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, vsf_err_t, i2c, master_request, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, uint16_t address, \
209 vsf_i2c_cmd_t cmd, uint_fast16_t count, uint8_t* buffer_ptr) \
210 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, uint_fast16_t, i2c, master_get_transferred_count, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr) \
211 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, uint_fast16_t, i2c, slave_fifo_transfer, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, bool transmit_or_receive, \
212 uint_fast16_t count, uint8_t* buffer_ptr) \
213 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, vsf_err_t, i2c, slave_request, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, bool transmit_or_receive, \
214 uint_fast16_t count, uint8_t* buffer_ptr) \
215 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, uint_fast16_t, i2c, slave_get_transferred_count, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr) \
216 __VSF_HAL_TEMPLATE_API(__PREFIX_NAME, vsf_err_t, i2c, ctrl, VSF_MCONNECT(__PREFIX_NAME, _i2c_t) *i2c_ptr, vsf_i2c_ctrl_t ctrl, void* param)
236#if VSF_I2C_CFG_REIMPLEMENT_TYPE_MODE == DISABLED
383#if VSF_I2C_CFG_REIMPLEMENT_TYPE_CMD == DISABLED
497#ifndef VSF_I2C_CMD_ALL_BITS_MASK
536#if VSF_I2C_CFG_REIMPLEMENT_TYPE_IRQ_MASK == DISABLED
731#ifndef VSF_I2C_IRQ_ALL_BITS_MASK
750#if VSF_I2C_CFG_REIMPLEMENT_TYPE_STATUS == DISABLED
768#if VSF_I2C_CFG_REIMPLEMENT_TYPE_CAPABILITY == DISABLED
778#if VSF_I2C_CFG_INHERIT_HAL_CAPABILITY == ENABLED
807#if VSF_I2C_CFG_REIMPLEMENT_TYPE_CFG == DISABLED
900#if VSF_I2C_CFG_REIMPLEMENT_TYPE_CTRL == DISABLED
913 VSF_I2C_CTRL_MASTER_ABORT = (0x1ul << 3),
914 #define VSF_I2C_CTRL_MASTER_ABORT VSF_I2C_CTRL_MASTER_ABORT
920 VSF_I2C_CTRL_SLAVE_ABORT = (0x1ul << 4),
921 #define VSF_I2C_CTRL_SLAVE_ABORT VSF_I2C_CTRL_SLAVE_ABORT
927 VSF_I2C_CTRL_ANALOG_FILTER_ENABLE = (0x0ul << 5),
930 VSF_I2C_CTRL_ANALOG_FILTER_DISABLE = (0x1ul << 5),
931 #define VSF_I2C_CTRL_ANALOG_FILTER_ENABLE VSF_I2C_CTRL_ANALOG_FILTER_ENABLE
932 #define VSF_I2C_CTRL_ANALOG_FILTER_DISABLE VSF_I2C_CTRL_ANALOG_FILTER_DISABLE
938 VSF_I2C_CTRL_DIGITAL_FILTER_ENABLE = (0x0ul << 7),
941 VSF_I2C_CTRL_DIGITAL_FILTER_DISABLE = (0x1ul << 7),
942 #define VSF_I2C_CTRL_DIGITAL_FILTER_ENABLE VSF_I2C_CTRL_DIGITAL_FILTER_ENABLE
943 #define VSF_I2C_CTRL_DIGITAL_FILTER_DISABLE VSF_I2C_CTRL_DIGITAL_FILTER_DISABLE
962#undef __VSF_HAL_TEMPLATE_API
963#define __VSF_HAL_TEMPLATE_API VSF_HAL_TEMPLATE_API_FP
969#if VSF_I2C_CFG_MULTI_CLASS == ENABLED
1156 bool transmit_or_receive,
1203 bool transmit_or_receive,
1259#if VSF_I2C_CFG_FUNCTION_RENAME == ENABLED
1260# define __vsf_i2c_t VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_t)
1261# define vsf_i2c_init(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_init) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
1262# define vsf_i2c_fini(__I2C) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_fini) ((__vsf_i2c_t *)(__I2C))
1263# define vsf_i2c_enable(__I2C) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_enable) ((__vsf_i2c_t *)(__I2C))
1264# define vsf_i2c_disable(__I2C) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_disable) ((__vsf_i2c_t *)(__I2C))
1265# define vsf_i2c_irq_enable(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_irq_enable) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
1266# define vsf_i2c_irq_disable(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_irq_disable) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
1267# define vsf_i2c_status(__I2C) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_status) ((__vsf_i2c_t *)(__I2C))
1268# define vsf_i2c_capability(__I2C) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_capability) ((__vsf_i2c_t *)(__I2C))
1269# define vsf_i2c_master_fifo_transfer(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_master_fifo_transfer) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
1270# define vsf_i2c_master_request(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_master_request) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
1271# define vsf_i2c_master_get_transferred_count(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_master_get_transferred_count) ((__vsf_i2c_t *)(__I2C))
1272# define vsf_i2c_slave_fifo_transfer(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_slave_fifo_transfer) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
1273# define vsf_i2c_slave_request(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_slave_request) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
1274# define vsf_i2c_slave_get_transferred_count(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_slave_get_transferred_count) ((__vsf_i2c_t *)(__I2C))
1275# define vsf_i2c_ctrl(__I2C, ...) VSF_MCONNECT(VSF_I2C_CFG_PREFIX, _i2c_ctrl) ((__vsf_i2c_t *)(__I2C), ##__VA_ARGS__)
vsf_err_t
Definition __type.h:42
vsf_arch_prio_t
Definition cortex_a_generic.h:88
vsf_i2c_cmd_t
Definition i2c.h:32
vsf_i2c_mode_t
Definition i2c.h:118
vsf_i2c_irq_mask_t
Definition i2c.h:154
void vsf_i2c_isr_handler_t(void *target_ptr, vsf_i2c_t *i2c_ptr, vsf_i2c_irq_mask_t irq_mask)
Definition i2c.h:199
const i_spi_t vsf_spi_irq_mask_t irq_mask
Definition spi_interface.h:38
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned short uint_fast16_t
Definition stdint.h:25
unsigned char uint8_t
Definition stdint.h:5
Predefined I2C capability structure that can be reimplemented in specific HAL drivers.
Definition vsf_template_i2c.h:777
uint8_t support_restart
Definition vsf_template_i2c.h:795
uint8_t support_no_stop
Definition vsf_template_i2c.h:791
inherit(vsf_peripheral_capability_t) vsf_i2c_irq_mask_t irq_mask
uint_fast16_t max_transfer_size
Definition vsf_template_i2c.h:799
uint_fast16_t min_transfer_size
Definition vsf_template_i2c.h:803
uint8_t support_no_start
Definition vsf_template_i2c.h:787
I2C configuration.
Definition vsf_template_i2c.h:881
vsf_i2c_mode_t mode
Definition vsf_template_i2c.h:884
uint_fast16_t slave_addr
Definition vsf_template_i2c.h:896
vsf_i2c_isr_t isr
Definition vsf_template_i2c.h:892
uint32_t clock_hz
Definition vsf_template_i2c.h:888
I2C interrupt configuration.
Definition vsf_template_i2c.h:860
vsf_i2c_isr_handler_t * handler_fn
Definition vsf_template_i2c.h:863
void * target_ptr
Definition vsf_template_i2c.h:867
vsf_arch_prio_t prio
Definition vsf_template_i2c.h:871
I2C operation function pointers for multi-class support.
Definition vsf_template_i2c.h:960
Predefined VSF I2C status that can be reimplemented in specific hal drivers.
Definition vsf_template_i2c.h:757
uint32_t value
Definition vsf_template_i2c.h:763
I2C instance structure for multi-class support.
Definition vsf_template_i2c.h:976
const vsf_i2c_op_t * op
Definition vsf_template_i2c.h:979
Definition vsf_template_hal_driver.h:203
Definition vsf_template_hal_driver.h:196
fsm_rt_t
Definition vsf_fsm.h:315
void vsf_i2c_master_fifo_transfer(vsf_i2c_t *i2c_ptr, uint16_t address, vsf_i2c_cmd_t cmd, uint_fast16_t count, uint8_t *buffer_ptr, vsf_i2c_cmd_t *cur_cmd_ptr, uint_fast16_t *offset_ptr)
I2C instance as master mode performs a FIFO transfer.
Definition i2c_common.c:109
void vsf_i2c_irq_disable(vsf_i2c_t *i2c_ptr, vsf_i2c_irq_mask_t irq_mask)
I2C instance disables interrupts.
Definition i2c_common.c:82
struct vsf_i2c_cfg_t vsf_i2c_cfg_t
I2C configuration.
struct vsf_i2c_status_t vsf_i2c_status_t
Predefined VSF I2C status that can be reimplemented in specific hal drivers.
fsm_rt_t vsf_i2c_disable(vsf_i2c_t *i2c_ptr)
Disable a I2C instance.
Definition i2c_common.c:64
uint_fast16_t vsf_i2c_slave_get_transferred_count(vsf_i2c_t *i2c_ptr)
get the counter of transfers for current request by the I2C slave
Definition i2c_common.c:168
vsf_i2c_capability_t vsf_i2c_capability(vsf_i2c_t *i2c_ptr)
Get the capabilities of I2C instance.
Definition i2c_common.c:100
vsf_i2c_mode_t
Predefined VSF I2C modes that can be reimplemented in specific HAL drivers.If we want to add optional...
Definition vsf_template_i2c.h:237
@ VSF_I2C_MODE_MASTER
Select master mode for I2C operation. The device initiates and controls the I2C bus communication.
Definition vsf_template_i2c.h:246
@ VSF_I2C_SPEED_HIGH_SPEED_MODE
High speed mode, up to 3.4 Mbit/s. Highest specified I2C speed for performance-critical applications.
Definition vsf_template_i2c.h:296
@ VSF_I2C_MODE_SLAVE
Select slave mode for I2C operation. The device responds to I2C bus commands from master devices.
Definition vsf_template_i2c.h:256
@ VSF_I2C_SPEED_STANDARD_MODE
Standard mode, up to 100 kbit/s. The lowest I2C speed specification, compatible with most devices.
Definition vsf_template_i2c.h:266
@ VSF_I2C_ADDR_7_BITS
7-bit address mode. Standard addressing mode supporting up to 128 unique devices.
Definition vsf_template_i2c.h:306
@ VSF_I2C_SPEED_FAST_MODE_PLUS
Fast mode plus, up to 1 Mbit/s. Enhanced fast mode for higher throughput applications.
Definition vsf_template_i2c.h:286
@ VSF_I2C_SPEED_FAST_MODE
Fast mode, up to 400 kbit/s. Commonly used medium speed I2C mode.
Definition vsf_template_i2c.h:276
@ VSF_I2C_ADDR_10_BITS
10-bit address mode. Extended addressing mode supporting up to 1024 unique devices.
Definition vsf_template_i2c.h:316
vsf_err_t vsf_i2c_ctrl(vsf_i2c_t *i2c_ptr, vsf_i2c_ctrl_t ctrl, void *param)
Calls the specified I2C command.
Definition i2c_common.c:177
@ VSF_I2C_MODE_MASK
Mask for master/slave mode selection. Extracts VSF_I2C_MODE_MASTER and VSF_I2C_MODE_SLAVE bits.
Definition vsf_template_i2c.h:337
@ VSF_I2C_ADDR_MASK
Mask for I2C address mode selection. Extracts VSF_I2C_ADDR_7_BITS and VSF_I2C_ADDR_10_BITS bits.
Definition vsf_template_i2c.h:361
@ VSF_I2C_MODE_ALL_BITS_MASK
Combined mask for all I2C mode configuration bits. Includes mode, speed, and address mode masks.
Definition vsf_template_i2c.h:372
@ VSF_I2C_SPEED_MASK
Mask for I2C speed mode configuration. Extracts all speed mode bits (standard, fast,...
Definition vsf_template_i2c.h:348
struct vsf_i2c_capability_t vsf_i2c_capability_t
Predefined I2C capability structure that can be reimplemented in specific HAL drivers.
struct vsf_i2c_isr_t vsf_i2c_isr_t
I2C interrupt configuration.
vsf_i2c_status_t vsf_i2c_status(vsf_i2c_t *i2c_ptr)
Get the status of I2C instance.
Definition i2c_common.c:91
uint_fast16_t vsf_i2c_master_get_transferred_count(vsf_i2c_t *i2c_ptr)
get the counter of transfers for current request by the I2C master
Definition i2c_common.c:159
vsf_err_t vsf_i2c_init(vsf_i2c_t *i2c_ptr, vsf_i2c_cfg_t *cfg_ptr)
Initialize a I2C instance.
Definition i2c_common.c:37
vsf_i2c_cmd_t
Predefined VSF I2C commands that can be reimplemented in specific HAL drivers.
Definition vsf_template_i2c.h:384
@ VSF_I2C_CMD_10_BITS
10-bit addressing mode command. Configures the I2C transaction to use 10-bit slave addressing.
Definition vsf_template_i2c.h:455
@ VSF_I2C_CMD_7_BITS
7-bit addressing mode command. Configures the I2C transaction to use 7-bit slave addressing.
Definition vsf_template_i2c.h:445
@ VSF_I2C_CMD_STOP
Stop condition command. Generates a STOP condition on the I2C bus to end the current transaction.
Definition vsf_template_i2c.h:423
@ VSF_I2C_CMD_RESTART
Restart condition command. Generates a repeated START condition without releasing the bus....
Definition vsf_template_i2c.h:435
@ VSF_I2C_CMD_WRITE
Write command for I2C data transfer. Used to write data on the I2C bus.
Definition vsf_template_i2c.h:393
@ VSF_I2C_CMD_READ
Read command for I2C data transfer. Used to read data from the I2C bus.
Definition vsf_template_i2c.h:403
@ VSF_I2C_CMD_START
Start condition command. Generates a START condition on the I2C bus to begin a new transaction.
Definition vsf_template_i2c.h:413
void vsf_i2c_fini(vsf_i2c_t *i2c_ptr)
Finalize a I2C instance.
Definition i2c_common.c:46
vsf_err_t vsf_i2c_slave_request(vsf_i2c_t *i2c_ptr, bool transmit_or_receive, uint_fast16_t count, uint8_t *buffer_ptr)
I2C instance as slave mode requests a transfer.
Definition i2c_common.c:148
vsf_err_t vsf_i2c_master_request(vsf_i2c_t *i2c_ptr, uint16_t address, vsf_i2c_cmd_t cmd, uint_fast16_t count, uint8_t *buffer_ptr)
I2C instance as master mode requests a transfer.
Definition i2c_common.c:136
vsf_i2c_ctrl_t
I2C control commands for hardware-specific operations.
Definition vsf_template_i2c.h:909
@ __VSF_I2C_CTRL_DUMMP
Definition vsf_template_i2c.h:948
fsm_rt_t vsf_i2c_enable(vsf_i2c_t *i2c_ptr)
Enable a I2C instance.
Definition i2c_common.c:55
uint_fast16_t vsf_i2c_slave_fifo_transfer(vsf_i2c_t *i2c_ptr, bool transmit_or_receive, uint_fast16_t count, uint8_t *buffer_ptr)
I2C instance as slave mode performs a FIFO transfer.
Definition i2c_common.c:123
void vsf_i2c_irq_enable(vsf_i2c_t *i2c_ptr, vsf_i2c_irq_mask_t irq_mask)
I2C instance enables interrupts.
Definition i2c_common.c:73
@ VSF_I2C_IRQ_ALL_BITS_MASK
Definition vsf_template_i2c.h:732
vsf_i2c_irq_mask_t
Predefined VSF I2C interrupt masks that can be reimplemented in specific HAL drivers....
Definition vsf_template_i2c.h:537
@ VSF_I2C_IRQ_MASK_MASTER_STOP_DETECT
Master mode: Start condition detection interrupt. Triggered when the master device generates a START ...
Definition vsf_template_i2c.h:649
@ VSF_I2C_IRQ_MASK_SLAVE_TX
Slave mode: Transmit FIFO threshold interrupt. Triggered when transmit FIFO level falls below thresho...
Definition vsf_template_i2c.h:688
@ VSF_I2C_IRQ_MASK_MASTER_TRANSFER_COMPLETE
Master mode: Transfer completion interrupt. Triggered when the current transfer operation is complete...
Definition vsf_template_i2c.h:576
@ VSF_I2C_IRQ_MASK_SLAVE_START_OR_RESTART_DETECT
Slave mode: Repeated START condition detection interrupt. Triggered when repeated START condition is ...
Definition vsf_template_i2c.h:662
@ VSF_I2C_IRQ_MASK_MASTER_TX
Master mode: Transmit FIFO threshold interrupt. Triggered when transmit FIFO level falls below thresh...
Definition vsf_template_i2c.h:550
@ VSF_I2C_IRQ_MASK_MASTER_ERR
Master mode: Error interrupt. Triggered on any error condition in master mode. Only valid in master m...
Definition vsf_template_i2c.h:624
@ VSF_I2C_IRQ_MASK_MASTER_RX
Master mode: Receive FIFO threshold interrupt. Triggered when receive FIFO level exceeds threshold in...
Definition vsf_template_i2c.h:564
@ VSF_I2C_IRQ_MASK_SLAVE_TRANSFER_COMPLETE
Slave mode: Transfer completion interrupt. Triggered when the current transfer operation is completed...
Definition vsf_template_i2c.h:714
@ VSF_I2C_IRQ_MASK_MASTER_START_OR_RESTART_DETECT
Slave mode: START or RESTART condition detection interrupt. Triggered when START condition is detecte...
Definition vsf_template_i2c.h:636
@ VSF_I2C_IRQ_MASK_MASTER_ADDRESS_NACK
Master mode: Address NACK detection interrupt. Triggered when a NACK is received after sending the ad...
Definition vsf_template_i2c.h:600
@ VSF_I2C_IRQ_MASK_SLAVE_ERR
Slave mode: Error interrupt. Triggered on any error condition in slave mode. Only valid in slave mode...
Definition vsf_template_i2c.h:726
@ VSF_I2C_IRQ_MASK_SLAVE_STOP_DETECT
Slave mode: STOP condition detection interrupt. Triggered when STOP condition is detected while in sl...
Definition vsf_template_i2c.h:674
@ VSF_I2C_IRQ_MASK_MASTER_ARBITRATION_LOST
Master mode: Arbitration lost interrupt. Triggered when the master loses arbitration in multi-master ...
Definition vsf_template_i2c.h:588
@ VSF_I2C_IRQ_MASK_MASTER_TX_NACK_DETECT
Master mode: data transmit NACK detection interrupt. Triggered when a NACK is received during master ...
Definition vsf_template_i2c.h:612
@ VSF_I2C_IRQ_MASK_SLAVE_RX
Slave mode: Receive FIFO threshold interrupt. Triggered when receive FIFO level exceeds threshold in ...
Definition vsf_template_i2c.h:702
void vsf_i2c_isr_handler_t(void *target_ptr, vsf_i2c_t *i2c_ptr, vsf_i2c_irq_mask_t irq_mask)
I2C interrupt callback function prototype.
Definition vsf_template_i2c.h:849
#define VSF_I2C_APIS(__PREFIX_NAME)
I2C API template, used to generate I2C type, specific prefix function declarations,...
Definition vsf_template_i2c.h:197
@ VSF_I2C_CMD_RW_MASK
Mask for read/write command selection. Extracts VSF_I2C_CMD_WRITE and VSF_I2C_CMD_READ bits.
Definition vsf_template_i2c.h:476
@ VSF_I2C_CMD_BITS_MASK
Mask for I2C address bits configuration. Extracts VSF_I2C_CMD_7_BITS and VSF_I2C_CMD_10_BITS bits.
Definition vsf_template_i2c.h:486
@ VSF_I2C_CMD_ALL_BITS_MASK
Combined mask for all I2C command bits. Includes read/write, start/stop/restart, and address bits mas...
Definition vsf_template_i2c.h:498