23#if VSF_HAL_USE_I2C == ENABLED
25#ifndef VSF_I2C_CFG_REIMPLEMENT_API_CAPABILITY
26# define VSF_I2C_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
29#ifndef VSF_I2C_CFG_REIMPLEMENT_API_CTRL
30# define VSF_I2C_CFG_REIMPLEMENT_API_CTRL DISABLED
33#ifndef VSF_I2C_CFG_REIMPLEMENT_API_GET_CONFIGURATION
34# define VSF_I2C_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
37#ifndef VSF_I2C_CFG_REIMPLEMENT_API_IRQ_CLEAR
38# define VSF_I2C_CFG_REIMPLEMENT_API_IRQ_CLEAR DISABLED
41#ifdef VSF_I2C_CFG_IMP_REMAP_PREFIX
42# undef VSF_I2C_CFG_REIMPLEMENT_API_CAPABILITY
43# undef VSF_I2C_CFG_REIMPLEMENT_API_CTRL
44# undef VSF_I2C_CFG_REIMPLEMENT_API_GET_CONFIGURATION
45# undef VSF_I2C_CFG_REIMPLEMENT_API_IRQ_CLEAR
46# define VSF_I2C_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
47# define VSF_I2C_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
48# define VSF_I2C_CFG_REIMPLEMENT_API_CTRL ENABLED
49# define VSF_I2C_CFG_REIMPLEMENT_API_IRQ_CLEAR ENABLED
52#if VSF_I2C_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
53# ifndef VSF_I2C_CFG_CAPABILITY_IRQ_MASK
54# define VSF_I2C_CFG_CAPABILITY_IRQ_MASK VSF_I2C_IRQ_ALL_BITS_MASK
56# ifndef VSF_I2C_CFG_CAPABILITY_SUPPORT_NO_START
57# define VSF_I2C_CFG_CAPABILITY_SUPPORT_NO_START 1
59# ifndef VSF_I2C_CFG_CAPABILITY_SUPPORT_NO_STOP_RESTART
60# define VSF_I2C_CFG_CAPABILITY_SUPPORT_NO_STOP_RESTART 1
62# ifndef VSF_I2C_CFG_CAPABILITY_SUPPORT_RESTART
63# define VSF_I2C_CFG_CAPABILITY_SUPPORT_RESTART 1
65# ifndef VSF_I2C_CFG_CAPABILITY_MAX_TRANSFER_SIZE
66# define VSF_I2C_CFG_CAPABILITY_MAX_TRANSFER_SIZE 0xFFFF
68# ifndef VSF_I2C_CFG_CAPABILITY_MIN_TRANSFER_SIZE
69# define VSF_I2C_CFG_CAPABILITY_MIN_TRANSFER_SIZE 0
73#if defined(VSF_I2C_CFG_IMP_RENAME_DEVICE_PREFIX) && (VSF_I2C_CFG_IMP_RENAME_DEVICE_PREFIX == ENABLED)
74# define vsf_real_i2c_t VSF_MCONNECT(VSF_I2C_CFG_IMP_DEVICE_PREFIX, _t)
75# define vsf_real_master_request VSF_MCONNECT(VSF_I2C_CFG_IMP_DEVICE_PREFIX, _master_request)
76# define vsf_real_i2c_capability VSF_MCONNECT(VSF_I2C_CFG_IMP_DEVICE_PREFIX, _capability)
77# define vsf_real_i2c_ctrl VSF_MCONNECT(VSF_I2C_CFG_IMP_DEVICE_PREFIX, _ctrl)
78# define vsf_real_i2c_get_configuration VSF_MCONNECT(VSF_I2C_CFG_IMP_DEVICE_PREFIX, _get_configuration)
79# define vsf_real_i2c_irq_clear VSF_MCONNECT(VSF_I2C_CFG_IMP_DEVICE_PREFIX, _irq_clear)
81# define vsf_real_i2c_t VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_t)
82# define vsf_real_master_request VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_master_request)
83# define vsf_real_i2c_capability VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_capability)
84# define vsf_real_i2c_ctrl VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_ctrl)
85# define vsf_real_i2c_get_configuration VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_get_configuration)
86# define vsf_real_i2c_irq_clear VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_irq_clear)
93#if VSF_I2C_CFG_REQUEST_TEMPLATE == ENABLED
96 vsf_real_i2c_t * i2c_type_ptr = (vsf_real_i2c_t *)i2c_ptr;
101#if VSF_I2C_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
105 .irq_mask = VSF_I2C_CFG_CAPABILITY_IRQ_MASK,
107 .support_no_stop_restart = VSF_I2C_CFG_CAPABILITY_SUPPORT_NO_STOP_RESTART,
108 .support_restart = VSF_I2C_CFG_CAPABILITY_SUPPORT_RESTART,
110 .min_transfer_size = VSF_I2C_CFG_CAPABILITY_MIN_TRANSFER_SIZE,
113 return i2c_capability;
117#if VSF_I2C_CFG_REIMPLEMENT_API_CTRL == DISABLED
125#if VSF_I2C_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
138#if VSF_I2C_CFG_REIMPLEMENT_API_IRQ_CLEAR == DISABLED
152#undef VSF_I2C_CFG_REIMPLEMENT_TYPE_CAPABILITY
153#undef VSF_I2C_CFG_REIMPLEMENT_TYPE_CFG
154#undef VSF_I2C_CFG_REIMPLEMENT_TYPE_CMD
155#undef VSF_I2C_CFG_REIMPLEMENT_TYPE_CTRL
156#undef VSF_I2C_CFG_REIMPLEMENT_TYPE_IRQ_MASK
157#undef VSF_I2C_CFG_REIMPLEMENT_TYPE_MODE
158#undef VSF_I2C_CFG_REIMPLEMENT_TYPE_STATUS
159#undef VSF_I2C_CFG_REIMPLEMENT_API_CAPABILITY
160#undef VSF_I2C_CFG_REIMPLEMENT_API_CTRL
161#undef VSF_I2C_CFG_REIMPLEMENT_API_GET_CONFIGURATION
162#undef VSF_I2C_CFG_REIMPLEMENT_API_IRQ_CLEAR
163#undef VSF_I2C_CFG_CAPABILITY_IRQ_MASK
164#undef VSF_I2C_CFG_CAPABILITY_SUPPORT_NO_START
165#undef VSF_I2C_CFG_CAPABILITY_SUPPORT_NO_STOP_RESTART
166#undef VSF_I2C_CFG_CAPABILITY_SUPPORT_RESTART
167#undef VSF_I2C_CFG_CAPABILITY_MAX_TRANSFER_SIZE
168#undef VSF_I2C_CFG_CAPABILITY_MIN_TRANSFER_SIZE
171#undef vsf_real_master_request
172#undef vsf_real_i2c_capability
173#undef vsf_real_i2c_ctrl
174#undef vsf_real_i2c_get_configuration
175#undef vsf_real_i2c_irq_clear
179#ifdef VSF_I2C_CFG_IMP_REMAP_PREFIX
180# define vsf_imp_i2c_t VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_t)
181# define vsf_imp_i2c_init VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_init)
182# define vsf_imp_i2c_fini VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_fini)
183# define vsf_imp_i2c_enable VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_enable)
184# define vsf_imp_i2c_disable VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_disable)
185# define vsf_imp_i2c_irq_enable VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_irq_enable)
186# define vsf_imp_i2c_irq_disable VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_irq_disable)
187# define vsf_imp_i2c_status VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_status)
188# define vsf_imp_i2c_capability VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_capability)
189# define vsf_imp_i2c_master_fifo_transfer VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_master_fifo_transfer)
190# define vsf_imp_i2c_master_request VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_master_request)
191# define vsf_imp_i2c_get_transferred_count VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_get_transferred_count)
192# define vsf_imp_i2c_ctrl VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_ctrl)
193# define vsf_imp_i2c_get_configuration VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_get_configuration)
194# define vsf_imp_i2c_irq_clear VSF_MCONNECT(VSF_I2C_CFG_IMP_PREFIX, _i2c_irq_clear)
196# define vsf_remap_i2c_t VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_t)
197# define vsf_remap_i2c_init VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_init)
198# define vsf_remap_i2c_fini VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_fini)
199# define vsf_remap_i2c_enable VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_enable)
200# define vsf_remap_i2c_disable VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_disable)
201# define vsf_remap_i2c_irq_enable VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_irq_enable)
202# define vsf_remap_i2c_irq_disable VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_irq_disable)
203# define vsf_remap_i2c_status VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_status)
204# define vsf_remap_i2c_capability VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_capability)
205# define vsf_remap_i2c_master_fifo_transfer VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_master_fifo_transfer)
206# define vsf_remap_i2c_master_request VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_master_request)
207# define vsf_remap_i2c_get_transferred_count VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_get_transferred_count)
208# define vsf_remap_i2c_ctrl VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_ctrl)
209# define vsf_remap_i2c_get_configuration VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_get_configuration)
210# define vsf_remap_i2c_irq_clear VSF_MCONNECT(VSF_I2C_CFG_IMP_REMAP_PREFIX, _i2c_irq_clear)
212# define VSF_I2C_CFG_IMP_REMAP_FUNCTIONS \
213 vsf_err_t vsf_imp_i2c_init(vsf_imp_i2c_t *i2c_ptr, vsf_i2c_cfg_t *cfg_ptr) \
215 VSF_HAL_ASSERT(i2c_ptr != NULL); \
216 return vsf_remap_i2c_init(i2c_ptr, cfg_ptr); \
218 void vsf_imp_i2c_fini(vsf_imp_i2c_t *i2c_ptr) \
220 VSF_HAL_ASSERT(i2c_ptr != NULL); \
221 vsf_remap_i2c_fini(i2c_ptr); \
223 fsm_rt_t vsf_imp_i2c_enable(vsf_imp_i2c_t *i2c_ptr) \
225 VSF_HAL_ASSERT(i2c_ptr != NULL); \
226 return vsf_remap_i2c_enable(i2c_ptr); \
228 fsm_rt_t vsf_imp_i2c_disable(vsf_imp_i2c_t *i2c_ptr) \
230 VSF_HAL_ASSERT(i2c_ptr != NULL); \
231 return vsf_remap_i2c_disable(i2c_ptr); \
233 void vsf_imp_i2c_irq_enable(vsf_imp_i2c_t *i2c_ptr, vsf_i2c_irq_mask_t irq_mask) \
235 VSF_HAL_ASSERT(i2c_ptr != NULL); \
236 vsf_remap_i2c_irq_enable(i2c_ptr, irq_mask); \
238 void vsf_imp_i2c_irq_disable(vsf_imp_i2c_t *i2c_ptr, vsf_i2c_irq_mask_t irq_mask) \
240 VSF_HAL_ASSERT(i2c_ptr != NULL); \
241 vsf_remap_i2c_irq_disable(i2c_ptr, irq_mask); \
243 vsf_i2c_status_t vsf_imp_i2c_status(vsf_imp_i2c_t *i2c_ptr) \
245 VSF_HAL_ASSERT(i2c_ptr != NULL); \
246 return vsf_remap_i2c_status(i2c_ptr); \
248 vsf_i2c_capability_t vsf_imp_i2c_capability(vsf_imp_i2c_t *i2c_ptr) \
250 VSF_HAL_ASSERT(i2c_ptr != NULL); \
251 return vsf_remap_i2c_capability(i2c_ptr); \
253 fsm_rt_t vsf_imp_i2c_master_fifo_transfer(vsf_imp_i2c_t *i2c_ptr, \
256 uint_fast16_t count, \
257 uint8_t *buffer_ptr, \
258 vsf_i2c_cmd_t *cur_cmd_ptr, \
259 uint_fast16_t *offset_ptr) \
261 VSF_HAL_ASSERT(i2c_ptr != NULL); \
262 return vsf_remap_i2c_master_fifo_transfer(i2c_ptr, address, cmd, count, buffer_ptr, \
263 cur_cmd_ptr, offset_ptr); \
265 vsf_err_t vsf_imp_i2c_master_request(vsf_imp_i2c_t *i2c_ptr, \
267 vsf_imp_i2c_cmd_t cmd, \
269 uint8_t *buffer_ptr) \
271 VSF_HAL_ASSERT(i2c_ptr != NULL); \
272 return vsf_remap_i2c_master_request(i2c_ptr, address, cmd, count, buffer_ptr); \
274 uint_fast32_t vsf_imp_i2c_get_transferred_count(vsf_imp_i2c_t *i2c_ptr) \
276 VSF_HAL_ASSERT(i2c_ptr != NULL); \
277 VSF_HAL_ASSERT(vsf_remap_i2c_get_transferred_count!= NULL); \
278 return vsf_remap_i2c_get_transferred_count(i2c_ptr); \
280 vsf_err_t vsf_imp_i2c_ctrl(vsf_imp_i2c_t *i2c_ptr, vsf_i2c_ctrl_t ctrl, void *param) \
282 VSF_HAL_ASSERT(i2c_ptr != NULL); \
283 return vsf_remap_i2c_ctrl(i2c_ptr, ctrl, param); \
285 vsf_err_t vsf_imp_i2c_get_configuration(vsf_imp_i2c_t *i2c_ptr, vsf_i2c_cfg_t *cfg_ptr) \
287 VSF_HAL_ASSERT(i2c_ptr != NULL); \
288 return vsf_remap_i2c_get_configuration(i2c_ptr, cfg_ptr); \
290 vsf_i2c_irq_mask_t vsf_imp_i2c_irq_clear(vsf_imp_i2c_t *i2c_ptr, vsf_i2c_irq_mask_t irq_mask) \
292 VSF_HAL_ASSERT(i2c_ptr != NULL); \
293 return vsf_remap_i2c_irq_clear(i2c_ptr, irq_mask); \
299#define VSF_HAL_TEMPLATE_IMP_NAME _i2c
300#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _I2C
302#if !defined(VSF_I2C_CFG_IMP_PREFIX) && !defined(VSF_I2C_CFG_IMP_DEVICE_PREFIX)
303# error "Please define VSF_I2C_CFG_IMP_PREFIX in i2c driver"
306#if !defined(VSF_I2C_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_I2C_CFG_IMP_DEVICE_UPCASE_PREFIX)
307# error "Please define VSF_I2C_CFG_IMP_UPCASE_PREFIX in i2c driver"
310#ifndef VSF_I2C_CFG_IMP_COUNT_MASK_PREFIX
311# define VSF_I2C_CFG_IMP_COUNT_MASK_PREFIX VSF_I2C_CFG_IMP_UPCASE_PREFIX
314#ifdef VSF_I2C_CFG_IMP_REMAP_FUNCTIONS
315# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_I2C_CFG_IMP_REMAP_FUNCTIONS
320#undef VSF_I2C_CFG_IMP_PREFIX
321#undef VSF_I2C_CFG_IMP_COUNT_MASK_PREFIX
322#undef VSF_I2C_CFG_IMP_UPCASE_PREFIX
323#undef VSF_I2C_CFG_IMP_DEVICE_PREFIX
324#undef VSF_I2C_CFG_IMP_DEVICE_UPCASE_PREFIX
325#undef VSF_I2C_CFG_IMP_LV0
326#undef VSF_I2C_CFG_IMP_REMAP_FUNCTIONS
327#undef VSF_I2C_CFG_IMP_HAS_OP
328#undef VSF_I2C_CFG_IMP_EXTERN_OP
329#undef VSF_I2C_CFG_IMP_RENAME_DEVICE_PREFIX
332#undef vsf_imp_i2c_init
333#undef vsf_imp_i2c_fini
334#undef vsf_imp_i2c_enable
335#undef vsf_imp_i2c_disable
336#undef vsf_imp_i2c_irq_enable
337#undef vsf_imp_i2c_irq_disable
338#undef vsf_imp_i2c_status
339#undef vsf_imp_i2c_capability
340#undef vsf_imp_i2c_master_request
341#undef vsf_imp_i2c_get_transferred_count
342#undef vsf_imp_i2c_ctrl
343#undef vsf_imp_i2c_get_configuration
344#undef vsf_imp_i2c_irq_clear
346#undef vsf_remap_i2c_t
347#undef vsf_remap_i2c_init
348#undef vsf_remap_i2c_fini
349#undef vsf_remap_i2c_enable
350#undef vsf_remap_i2c_disable
351#undef vsf_remap_i2c_irq_enable
352#undef vsf_remap_i2c_irq_disable
353#undef vsf_remap_i2c_status
354#undef vsf_remap_i2c_capability
355#undef vsf_remap_i2c_master_request
356#undef vsf_remap_i2c_get_transferred_count
357#undef vsf_remap_i2c_ctrl
358#undef vsf_remap_i2c_get_configuration
359#undef vsf_remap_i2c_irq_clear
361#undef VSF_HAL_TEMPLATE_IMP_NAME
362#undef VSF_HAL_TEMPLATE_IMP_UPCASE_NAME
387#ifdef VSF_I2C_CFG_MODE_CHECK_UNIQUE
389#ifndef VSF_I2C_CHECK_UNIQUE_MODE_MODES
390# define VSF_I2C_CHECK_UNIQUE_MODE_MODES \
391 VSF_I2C_MODE_MASTER, \
395#ifndef VSF_I2C_CHECK_UNIQUE_SPEED_MODES
396# define VSF_I2C_CHECK_UNIQUE_SPEED_MODES \
397 VSF_I2C_SPEED_STANDARD_MODE, \
398 VSF_I2C_SPEED_FAST_MODE, \
399 VSF_I2C_SPEED_FAST_MODE_PLUS, \
400 VSF_I2C_SPEED_HIGH_SPEED_MODE
403#ifndef VSF_I2C_CHECK_UNIQUE_ADDR_MODES
404# define VSF_I2C_CHECK_UNIQUE_ADDR_MODES \
405 VSF_I2C_ADDR_7_BITS, \
442#ifdef VSF_I2C_CUSTOM_MODE_VALUES
455#ifdef VSF_I2C_CUSTOM_MODE_VALUES
456 , VSF_I2C_CUSTOM_MODE_VALUES
460#undef VSF_I2C_CHECK_UNIQUE_MODE_MODES
461#undef VSF_I2C_CHECK_UNIQUE_SPEED_MODES
462#undef VSF_I2C_CHECK_UNIQUE_ADDR_MODES
467#ifdef VSF_I2C_CFG_CMD_CHECK_UNIQUE
469#ifndef VSF_I2C_CHECK_UNIQUE_CMD_RW_MODES
470# define VSF_I2C_CHECK_UNIQUE_CMD_RW_MODES \
475#ifndef VSF_I2C_CHECK_UNIQUE_CMD_START_STOP_RESTART_MODES
476# define VSF_I2C_CHECK_UNIQUE_CMD_START_STOP_RESTART_MODES \
482#ifndef VSF_I2C_CHECK_UNIQUE_CMD_ADDR_MODES
483# define VSF_I2C_CHECK_UNIQUE_CMD_ADDR_MODES \
484 VSF_I2C_CMD_7_BITS, \
501 VSF_I2C_CFG_CMD_CHECK_UNIQUE,
502 VSF_I2C_CHECK_UNIQUE_CMD_START_STOP_RESTART_MODES
519#ifdef VSF_I2C_CUSTOM_CMD_VALUES
525 VSF_I2C_CFG_CMD_CHECK_UNIQUE,
541#ifdef VSF_I2C_CUSTOM_CMD_VALUES
542 , VSF_I2C_CUSTOM_CMD_VALUES
546#undef VSF_I2C_CHECK_UNIQUE_CMD_RW_MODES
547#undef VSF_I2C_CHECK_UNIQUE_CMD_START_STOP_RESTART_MODES
548#undef VSF_I2C_CHECK_UNIQUE_CMD_ADDR_MODES
553#ifdef VSF_I2C_CFG_IRQ_MASK_CHECK_UNIQUE
555#ifdef VSF_I2C_CUSTOM_IRQ_MASK_VALUES
594#ifdef VSF_I2C_CUSTOM_IRQ_MASK_VALUES
595 , VSF_I2C_CUSTOM_IRQ_MASK_VALUES
602#ifdef VSF_I2C_CFG_CTRL_CHECK_UNIQUE
604#ifdef VSF_I2C_CUSTOM_CTRL_VALUES
613 VSF_I2C_CFG_CTRL_CHECK_UNIQUE,
617#ifdef VSF_I2C_CUSTOM_CTRL_VALUES
618 , VSF_I2C_CUSTOM_CTRL_VALUES
623#undef VSF_I2C_CFG_MODE_CHECK_UNIQUE
624#undef VSF_I2C_CFG_CMD_CHECK_UNIQUE
625#undef VSF_I2C_CFG_IRQ_MASK_CHECK_UNIQUE
626#undef VSF_I2C_CFG_CTRL_CHECK_UNIQUE
627#undef VSF_I2C_CUSTOM_MODE_VALUES
628#undef VSF_I2C_CUSTOM_CMD_VALUES
629#undef VSF_I2C_CUSTOM_IRQ_MASK_VALUES
630#undef VSF_I2C_CUSTOM_CTRL_VALUES
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define VSF_I2C_CFG_CAPABILITY_MAX_TRANSFER_SIZE
Definition i2c.c:40
vsf_i2c_cmd_t
Definition i2c.h:32
@ VSF_I2C_CMD_NO_STOP
Definition i2c.h:51
@ VSF_I2C_CMD_NO_RESTART
Definition i2c.h:40
@ VSF_I2C_CMD_10_BITS
Definition i2c.h:43
@ VSF_I2C_CMD_7_BITS
Definition i2c.h:42
@ VSF_I2C_CMD_NO_START
Definition i2c.h:37
@ VSF_I2C_CMD_STOP
Definition i2c.h:50
@ VSF_I2C_CMD_RESTART
Definition i2c.h:39
@ VSF_I2C_CMD_WRITE
Definition i2c.h:33
@ VSF_I2C_CMD_READ
Definition i2c.h:34
@ VSF_I2C_CMD_START
Definition i2c.h:36
vsf_i2c_irq_mask_t
Definition i2c.h:103
@ VSF_I2C_IRQ_MASK_MASTER_STOP_DETECT
Definition i2c.h:119
@ VSF_I2C_IRQ_MASK_SLAVE_TX
Definition i2c.h:127
@ VSF_I2C_IRQ_MASK_MASTER_TRANSFER_COMPLETE
Definition i2c.h:109
@ VSF_I2C_IRQ_MASK_SLAVE_START_OR_RESTART_DETECT
Definition i2c.h:122
@ VSF_I2C_IRQ_MASK_MASTER_TX
Definition i2c.h:105
@ VSF_I2C_IRQ_MASK_MASTER_RX
Definition i2c.h:107
@ VSF_I2C_IRQ_MASK_SLAVE_TRANSFER_COMPLETE
Definition i2c.h:130
@ VSF_I2C_IRQ_MASK_MASTER_START_OR_RESTART_DETECT
Definition i2c.h:118
@ VSF_I2C_IRQ_MASK_MASTER_ADDRESS_NACK
Definition i2c.h:113
@ VSF_I2C_IRQ_MASK_SLAVE_STOP_DETECT
Definition i2c.h:124
@ VSF_I2C_IRQ_MASK_MASTER_ARBITRATION_LOST
Definition i2c.h:111
@ VSF_I2C_IRQ_MASK_MASTER_TX_NACK_DETECT
Definition i2c.h:115
@ VSF_I2C_IRQ_MASK_SLAVE_RX
Definition i2c.h:128
vsf_err_t vsf_i2c_request_master_request(vsf_i2c_t *i2c_ptr, vsf_i2c_request_t *i2c_request_ptr, uint16_t address, vsf_i2c_cmd_t cmd, uint16_t count, uint8_t *buffer_ptr)
Definition i2c_request.c:87
#define NULL
Definition lvgl.h:26
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 char uint8_t
Definition stdint.h:5
Predefined I2C capability structure that can be reimplemented in specific HAL drivers.
Definition vsf_template_i2c.h:857
uint8_t support_no_start
Definition vsf_template_i2c.h:867
I2C configuration.
Definition vsf_template_i2c.h:961
#define VSF_I2C_CFG_MODE_CHECK_UNIQUE
Definition i2c.c:288
#define VSF_I2C_CFG_IRQ_MASK_CHECK_UNIQUE
Definition i2c.c:289
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
@ VSF_I2C_MODE_MASTER
Select master mode for I2C operation. The device initiates and controls the I2C bus communication.
Definition vsf_template_i2c.h:261
@ 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:311
@ 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:271
@ 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:281
@ VSF_I2C_ADDR_7_BITS
7-bit address mode. Standard addressing mode supporting up to 128 unique devices.
Definition vsf_template_i2c.h:321
@ 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:301
@ VSF_I2C_SPEED_FAST_MODE
Fast mode, up to 400 kbit/s. Commonly used medium speed I2C mode.
Definition vsf_template_i2c.h:291
@ VSF_I2C_ADDR_10_BITS
10-bit address mode. Extended addressing mode supporting up to 1024 unique devices.
Definition vsf_template_i2c.h:331
vsf_i2c_ctrl_t
I2C control commands for hardware-specific operations.
Definition vsf_template_i2c.h:989
@ __VSF_I2C_CTRL_DUMMP
Definition vsf_template_i2c.h:1028
#define VSF_HAL_CHECK_UNIQUE_CUSTOM(__CHECK_FUNC,...)
Definition vsf_template_static_assert_unique.h:2426