18#ifndef __HAL_DRIVER_COMMON_I2C_MULTIPLEX_H__
19#define __HAL_DRIVER_COMMON_I2C_MULTIPLEX_H__
25#if (VSF_HAL_USE_I2C == ENABLED) && (VSF_HAL_USE_MULTIPLEX_I2C == ENABLED)
27#if defined(__VSF_I2C_MULTIPLEX_CLASS_IMPLEMENT)
28# undef __VSF_I2C_MULTIPLEX_CLASS_IMPLEMENT
29# define __VSF_CLASS_IMPLEMENT__
36#ifndef VSF_MULTIPLEX_I2C_CFG_MULTI_CLASS
37# define VSF_MULTIPLEX_I2C_CFG_MULTI_CLASS VSF_I2C_CFG_MULTI_CLASS
40#ifndef VSF_MULTIPLEXER_I2C_CFG_MASK_TYPE
41# define VSF_MULTIPLEXER_I2C_CFG_MASK_TYPE uint8_t
47#if VSF_MULTIPLEX_I2C_CFG_MULTI_CLASS == ENABLED
48# define __describe_multiplex_i2c_op() .op = &vsf_multiplex_i2c_op,
50# define __describe_multiplex_i2c_op()
53#define __describe_multiplex_i2c(__multiplexer, __name) \
54 vsf_multiplex_i2c_t __name = { \
55 __describe_multiplex_i2c_op() \
56 .multiplexer = &(__multiplexer), \
59#define __describe_multiplexer_i2c(__name, __i2c, ...) \
60 vsf_multiplexer_i2c_t __name = { \
63 VSF_MFOREACH_ARG1(__describe_multiplex_i2c, __name, __VA_ARGS__)
65#define describe_multiplexer_i2c(__name, __i2c, ...) \
66 __describe_multiplexer_i2c(__name, __i2c, __VA_ARGS__)
95 vsf_multiplexer_i2c_t *
const multiplexer;
115#define VSF_I2C_CFG_DEC_PREFIX vsf_multiplex
116#define VSF_I2C_CFG_DEC_UPCASE_PREFIX VSF_MULTIPLEX
117#define VSF_I2C_CFG_DEC_EXTERN_OP ENABLED
#define ENABLED
Definition __type.h:28
Definition multiplex_i2c.h:90
vsf_i2c_cmd_t
Definition i2c.h:32
unsigned short uint16_t
Definition lvgl.h:41
unsigned char uint8_t
Definition lvgl.h:40
#define VSF_MULTIPLEX_I2C_CFG_MULTI_CLASS
Definition multiplex_i2c.h:37
VSF_MULTIPLEXER_I2C_CFG_MASK_TYPE vsf_i2c_multiplex_mask_t
Definition multiplex_i2c.h:70
#define VSF_MULTIPLEXER_I2C_CFG_MASK_TYPE
Definition multiplex_i2c.h:41
#define vsf_class(__name)
Definition ooc_class.h:48
#define vsf_declare_class(__name)
Definition ooc_class.h:45
const i_spi_t vsf_spi_irq_mask_t irq_mask
Definition spi_interface.h:38
i2c configuration
Definition vsf_template_i2c.h:314
Definition vsf_template_i2c.h:334
Definition vsf_list.h:876
Definition vsf_list.h:896
vsf_i2c_irq_mask_t
Definition vsf_template_i2c.h:194