18#if VSF_HAL_USE_I2S == ENABLED
23#define vsf_real_i2s_t VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_t)
24#define vsf_real_i2s_capability VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_capability)
25#define vsf_real_i2s_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_get_configuration)
26#define vsf_real_i2s_tx_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_tx_get_configuration)
27#define vsf_real_i2s_rx_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_rx_get_configuration)
29#ifndef VSF_I2S_CFG_REIMPLEMENT_API_GET_CONFIGURATION
30# define VSF_I2S_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
33#ifndef VSF_I2S_CFG_REIMPLEMENT_API_TX_GET_CONFIGURATION
34# define VSF_I2S_CFG_REIMPLEMENT_API_TX_GET_CONFIGURATION DISABLED
37#ifndef VSF_I2S_CFG_REIMPLEMENT_API_RX_GET_CONFIGURATION
38# define VSF_I2S_CFG_REIMPLEMENT_API_RX_GET_CONFIGURATION DISABLED
41#ifndef VSF_I2S_CFG_REIMPLEMENT_API_CAPABILITY
42# define VSF_I2S_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
45#ifdef VSF_I2S_CFG_IMP_REMAP_PREFIX
46# undef VSF_I2S_CFG_REIMPLEMENT_API_CAPABILITY
47# define VSF_I2S_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
48# undef VSF_I2S_CFG_REIMPLEMENT_API_GET_CONFIGURATION
49# define VSF_I2S_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
50# undef VSF_I2S_CFG_REIMPLEMENT_API_TX_GET_CONFIGURATION
51# define VSF_I2S_CFG_REIMPLEMENT_API_TX_GET_CONFIGURATION ENABLED
52# undef VSF_I2S_CFG_REIMPLEMENT_API_RX_GET_CONFIGURATION
53# define VSF_I2S_CFG_REIMPLEMENT_API_RX_GET_CONFIGURATION ENABLED
56#if VSF_I2S_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
57# ifndef VSF_I2S_CFG_CAPABILITY_IS_SRC_SUPPORTED
58# define VSF_I2S_CFG_CAPABILITY_IS_SRC_SUPPORTED 1
60# ifndef VSF_I2S_CFG_CAPABILITY_IS_DBUFFER_SUPPORTED
61# define VSF_I2S_CFG_CAPABILITY_IS_DBUFFER_SUPPORTED 1
68#if VSF_I2S_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
73 .is_src_supported = VSF_I2S_CFG_CAPABILITY_IS_SRC_SUPPORTED
74 .is_dbuffer_supported = VSF_I2S_CFG_CAPABILITY_IS_DBUFFER_SUPPORTED
78 return i2s_capability;
82#if VSF_I2S_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
92#if VSF_I2S_CFG_REIMPLEMENT_API_TX_GET_CONFIGURATION == DISABLED
102#if VSF_I2S_CFG_REIMPLEMENT_API_RX_GET_CONFIGURATION == DISABLED
114#undef VSF_I2S_CFG_REIMPLEMENT_API_CAPABILITY
115#undef VSF_I2S_CFG_REIMPLEMENT_API_GET_CONFIGURATION
116#undef VSF_I2S_CFG_REIMPLEMENT_API_TX_GET_CONFIGURATION
117#undef VSF_I2S_CFG_REIMPLEMENT_API_RX_GET_CONFIGURATION
118#undef VSF_I2S_CFG_CAPABILITY_IS_SRC_SUPPORTED
119#undef VSF_I2S_CFG_CAPABILITY_IS_DBUFFER_SUPPORTED
122#undef vsf_real_i2s_capability
123#undef vsf_real_i2s_get_configuration
124#undef vsf_real_i2s_tx_get_configuration
125#undef vsf_real_i2s_rx_get_configuration
129#ifdef VSF_I2S_CFG_IMP_REMAP_PREFIX
130# define vsf_imp_i2s_t VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_t)
131# define vsf_imp_i2s_init VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_init)
132# define vsf_imp_i2s_enable VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_enable)
133# define vsf_imp_i2s_disable VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_disable)
134# define vsf_imp_i2s_status VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_status)
135# define vsf_imp_i2s_capability VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_capability)
136# define vsf_imp_i2s_tx_init VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_tx_init)
137# define vsf_imp_i2s_tx_fini VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_tx_fini)
138# define vsf_imp_i2s_tx_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_tx_get_configuration)
139# define vsf_imp_i2s_tx_start VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_tx_start)
140# define vsf_imp_i2s_rx_init VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_rx_init)
141# define vsf_imp_i2s_rx_fini VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_rx_fini)
142# define vsf_imp_i2s_rx_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_rx_get_configuration)
143# define vsf_imp_i2s_rx_start VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_rx_start)
144# define vsf_imp_i2s_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_PREFIX, _i2s_get_configuration)
146# define vsf_remap_i2s_t VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_t)
147# define vsf_remap_i2s_init VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_init)
148# define vsf_remap_i2s_enable VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_enable)
149# define vsf_remap_i2s_disable VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_disable)
150# define vsf_remap_i2s_status VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_status)
151# define vsf_remap_i2s_capability VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_capability)
152# define vsf_remap_i2s_tx_init VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_tx_init)
153# define vsf_remap_i2s_tx_fini VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_tx_fini)
154# define vsf_remap_i2s_tx_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_tx_get_configuration)
155# define vsf_remap_i2s_tx_start VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_tx_start)
156# define vsf_remap_i2s_rx_init VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_rx_init)
157# define vsf_remap_i2s_rx_fini VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_rx_fini)
158# define vsf_remap_i2s_rx_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_rx_get_configuration)
159# define vsf_remap_i2s_rx_start VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_rx_start)
160# define vsf_remap_i2s_get_configuration VSF_MCONNECT(VSF_I2S_CFG_IMP_REMAP_PREFIX, _i2s_get_configuration)
162# define VSF_I2S_CFG_IMP_REMAP_FUNCTIONS \
163 vsf_err_t vsf_imp_i2s_init(vsf_imp_i2s_t *i2s_ptr, vsf_i2s_cfg_t *cfg_ptr) \
165 VSF_HAL_ASSERT(i2s_ptr != NULL); \
166 return vsf_remap_i2s_init(i2s_ptr, cfg_ptr); \
168 vsf_err_t vsf_imp_i2s_tx_init(vsf_imp_i2s_t *i2s_ptr, vsf_i2s_cfg_t *cfg_ptr) \
170 VSF_HAL_ASSERT(i2s_ptr != NULL); \
171 return vsf_remap_i2s_tx_init(i2s_ptr, cfg_ptr); \
173 void vsf_imp_i2s_tx_fini(vsf_imp_i2s_t *i2s_ptr) \
175 VSF_HAL_ASSERT(i2s_ptr != NULL); \
176 vsf_remap_i2s_tx_fini(i2s_ptr); \
178 vsf_err_t vsf_imp_i2s_tx_get_configuration(vsf_imp_i2s_t *i2s_ptr, \
179 vsf_i2s_cfg_t *cfg_ptr) \
181 VSF_HAL_ASSERT(i2s_ptr != NULL); \
182 VSF_HAL_ASSERT(cfg_ptr != NULL); \
183 return vsf_remap_i2s_tx_get_configuration(i2s_ptr, cfg_ptr); \
185 vsf_err_t vsf_imp_i2s_tx_start(vsf_imp_i2s_t *i2s_ptr) \
187 VSF_HAL_ASSERT(i2s_ptr != NULL); \
188 return vsf_remap_i2s_tx_start(i2s_ptr); \
190 vsf_err_t vsf_imp_i2s_rx_init(vsf_imp_i2s_t *i2s_ptr, vsf_i2s_cfg_t *cfg_ptr) \
192 VSF_HAL_ASSERT(i2s_ptr != NULL); \
193 return vsf_remap_i2s_rx_init(i2s_ptr, cfg_ptr); \
195 void vsf_imp_i2s_rx_fini(vsf_imp_i2s_t *i2s_ptr) \
197 VSF_HAL_ASSERT(i2s_ptr != NULL); \
198 vsf_remap_i2s_rx_fini(i2s_ptr); \
200 vsf_err_t vsf_imp_i2s_rx_get_configuration(vsf_imp_i2s_t *i2s_ptr, \
201 vsf_i2s_cfg_t *cfg_ptr) \
203 VSF_HAL_ASSERT(i2s_ptr != NULL); \
204 VSF_HAL_ASSERT(cfg_ptr != NULL); \
205 return vsf_remap_i2s_rx_get_configuration(i2s_ptr, cfg_ptr); \
207 vsf_err_t vsf_imp_i2s_rx_start(vsf_imp_i2s_t *i2s_ptr) \
209 VSF_HAL_ASSERT(i2s_ptr != NULL); \
210 return vsf_remap_i2s_rx_start(i2s_ptr); \
212 fsm_rt_t vsf_imp_i2s_enable(vsf_imp_i2s_t *i2s_ptr) \
214 VSF_HAL_ASSERT(i2s_ptr != NULL); \
215 return vsf_remap_i2s_enable(i2s_ptr); \
217 fsm_rt_t vsf_imp_i2s_disable(vsf_imp_i2s_t *i2s_ptr) \
219 VSF_HAL_ASSERT(i2s_ptr != NULL); \
220 return vsf_remap_i2s_disable(i2s_ptr); \
222 vsf_i2s_status_t vsf_imp_i2s_status(vsf_imp_i2s_t *i2s_ptr) \
224 VSF_HAL_ASSERT(i2s_ptr != NULL); \
225 return vsf_remap_i2s_status(i2s_ptr); \
227 vsf_i2s_capability_t vsf_imp_i2s_capability(vsf_imp_i2s_t *i2s_ptr) \
229 VSF_HAL_ASSERT(i2s_ptr != NULL); \
230 return vsf_remap_i2s_capability(i2s_ptr); \
232 vsf_err_t vsf_imp_i2s_get_configuration(vsf_imp_i2s_t *i2s_ptr, vsf_i2s_cfg_t *cfg_ptr) \
234 VSF_HAL_ASSERT(i2s_ptr != NULL); \
235 return vsf_remap_i2s_get_configuration(i2s_ptr, cfg_ptr); \
244#define VSF_HAL_TEMPLATE_IMP_NAME _i2s
245#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _I2S
247#if !defined(VSF_I2S_CFG_IMP_PREFIX) && !defined(VSF_I2S_CFG_IMP_DEVICE_PREFIX)
248# error "Please define VSF_I2S_CFG_IMP_PREFIX in i2s driver"
251#if !defined(VSF_I2S_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_I2S_CFG_IMP_DEVICE_UPCASE_PREFIX)
252# error "Please define VSF_I2S_CFG_IMP_UPCASE_PREFIX in i2s driver"
255#ifndef VSF_I2S_CFG_IMP_COUNT_MASK_PREFIX
256# define VSF_I2S_CFG_IMP_COUNT_MASK_PREFIX VSF_I2S_CFG_IMP_UPCASE_PREFIX
259#ifdef VSF_I2S_CFG_IMP_REMAP_FUNCTIONS
260# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_I2S_CFG_IMP_REMAP_FUNCTIONS
265#undef VSF_I2S_CFG_IMP_PREFIX
266#undef VSF_I2S_CFG_IMP_UPCASE_PREFIX
267#undef VSF_I2S_CFG_IMP_DEVICE_PREFIX
268#undef VSF_I2S_CFG_IMP_DEVICE_UPCASE_PREFIX
269#undef VSF_I2S_CFG_IMP_COUNT_MASK_PREFIX
270#undef VSF_I2S_CFG_IMP_LV0
271#undef VSF_I2S_CFG_IMP_REMAP_FUNCTIONS
272#undef VSF_I2S_CFG_IMP_HAS_OP
273#undef VSF_I2S_CFG_IMP_EXTERN_OP
276#undef vsf_imp_i2s_init
277#undef vsf_imp_i2s_enable
278#undef vsf_imp_i2s_disable
279#undef vsf_imp_i2s_status
280#undef vsf_imp_i2s_capability
281#undef vsf_imp_i2s_tx_init
282#undef vsf_imp_i2s_tx_fini
283#undef vsf_imp_i2s_tx_get_configuration
284#undef vsf_imp_i2s_tx_start
285#undef vsf_imp_i2s_rx_init
286#undef vsf_imp_i2s_rx_fini
287#undef vsf_imp_i2s_rx_get_configuration
288#undef vsf_imp_i2s_rx_start
289#undef vsf_imp_i2s_get_configuration
291#undef vsf_remap_i2s_t
292#undef vsf_remap_i2s_init
293#undef vsf_remap_i2s_enable
294#undef vsf_remap_i2s_disable
295#undef vsf_remap_i2s_status
296#undef vsf_remap_i2s_capability
297#undef vsf_remap_i2s_tx_init
298#undef vsf_remap_i2s_tx_fini
299#undef vsf_remap_i2s_tx_get_configuration
300#undef vsf_remap_i2s_tx_start
301#undef vsf_remap_i2s_rx_init
302#undef vsf_remap_i2s_rx_fini
303#undef vsf_remap_i2s_rx_get_configuration
304#undef vsf_remap_i2s_rx_start
305#undef vsf_remap_i2s_get_configuration
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define NULL
Definition lvgl.h:26
Definition vsf_template_i2s.h:268
i2s_capability
Definition vsf_template_i2s.h:277
i2s configuration
Definition vsf_template_i2s.h:344
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36