18#if VSF_HAL_USE_SDIO == ENABLED
23#define vsf_real_sdio_t VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_t)
24#define vsf_real_sdio_capability VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_capability)
25#define vsf_real_sdio_get_configuration VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_get_configuration)
27#ifndef VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY
29#ifndef VSF_SDIO_CFG_REIMPLEMENT_API_GET_CONFIGURATION
30# define VSF_SDIO_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
32# define VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
35#ifdef VSF_SDIO_CFG_IMP_REMAP_PREFIX
36# undef VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY
37# define VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
38# undef VSF_SDIO_CFG_REIMPLEMENT_API_GET_CONFIGURATION
39# define VSF_SDIO_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
42#if VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
43# ifndef VSF_SDIO_CFG_CAPCBILITY_MAX_FREQ_HZ
44# define VSF_SDIO_CFG_CAPCBILITY_MAX_FREQ_HZ (50 * 1000 * 1000)
46# ifndef VSF_SDIO_CFG_CAPCBILITY_BUS_WIDTH
47# define VSF_SDIO_CFG_CAPCBILITY_BUS_WIDTH SDIO_CAP_BUS_WIDTH_8
54#if VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
59 .bus_width = VSF_SDIO_CFG_CAPCBILITY_BUS_WIDTH,
64#if VSF_SDIO_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
79#undef VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY
80#undef VSF_SDIO_CFG_REIMPLEMENT_API_GET_CONFIGURATION
81#undef VSF_SDIO_CFG_CAPCBILITY_MAX_FREQ_HZ
82#undef VSF_SDIO_CFG_CAPCBILITY_BUS_WIDTH
84#undef vsf_real_sdio_capability
85#undef vsf_real_sdio_get_configuration
89#ifdef VSF_SDIO_CFG_IMP_REMAP_PREFIX
91# define vsf_imp_sdio_t VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_t)
92# define vsf_imp_sdio_init VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_init)
93# define vsf_imp_sdio_enable VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_enable)
94# define vsf_imp_sdio_disable VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_disable)
95# define vsf_imp_sdio_irq_enable VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_irq_enable)
96# define vsf_imp_sdio_irq_disable VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_irq_disable)
97# define vsf_imp_sdio_status VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_status)
98# define vsf_imp_sdio_capability VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_capability)
99# define vsf_imp_sdio_set_clock VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_set_clock)
100# define vsf_imp_sdio_set_bus_width VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_set_bus_width)
101# define vsf_imp_sdio_host_request VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_host_request)
102# define vsf_imp_sdio_get_configuration VSF_MCONNECT(VSF_SDIO_CFG_IMP_PREFIX, _sdio_get_configuration)
104# define vsf_remap_sdio_t VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_t)
105# define vsf_remap_sdio_init VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_init)
106# define vsf_remap_sdio_enable VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_enable)
107# define vsf_remap_sdio_disable VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_disable)
108# define vsf_remap_sdio_irq_enable VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_irq_enable)
109# define vsf_remap_sdio_irq_disable VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_irq_disable)
110# define vsf_remap_sdio_status VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_status)
111# define vsf_remap_sdio_capability VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_capability)
112# define vsf_remap_sdio_set_clock VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_set_clock)
113# define vsf_remap_sdio_set_bus_width VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_set_bus_width)
114# define vsf_remap_sdio_host_request VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_host_request)
115# define vsf_remap_sdio_get_configuration VSF_MCONNECT(VSF_SDIO_CFG_IMP_REMAP_PREFIX, _sdio_get_configuration)
117# define VSF_SDIO_CFG_IMP_REMAP_FUNCTIONS \
118 vsf_err_t vsf_imp_sdio_init(vsf_imp_sdio_t *sdio_ptr, vsf_sdio_cfg_t *cfg_ptr) \
120 VSF_HAL_ASSERT((sdio_ptr != NULL) && (cfg_ptr != NULL)); \
121 return vsf_remap_sdio_init(sdio_ptr, cfg_ptr); \
123 void vsf_imp_sdio_fini(vsf_imp_sdio_t *sdio_ptr) \
125 VSF_HAL_ASSERT(sdio_ptr != NULL); \
126 vsf_remap_sdio_fini(sdio_ptr); \
128 void vsf_imp_sdio_irq_enable(vsf_imp_sdio_t *sdio_ptr, vsf_sdio_irq_mask_t irq_mask) \
130 VSF_HAL_ASSERT(sdio_ptr != NULL); \
131 vsf_remap_sdio_irq_enable(sdio_ptr, irq_mask); \
133 void vsf_imp_sdio_irq_disable(vsf_imp_sdio_t *sdio_ptr, vsf_sdio_irq_mask_t irq_mask) \
135 VSF_HAL_ASSERT(sdio_ptr != NULL); \
136 vsf_remap_sdio_irq_disable(sdio_ptr, irq_mask); \
138 vsf_sdio_status_t vsf_imp_sdio_status(vsf_imp_sdio_t *sdio_ptr) \
140 VSF_HAL_ASSERT(sdio_ptr != NULL); \
141 return vsf_remap_sdio_status(sdio_ptr); \
143 vsf_sdio_capability_t vsf_imp_sdio_capability(vsf_imp_sdio_t *sdio_ptr) \
145 VSF_HAL_ASSERT(sdio_ptr != NULL); \
146 return vsf_remap_sdio_capability(sdio_ptr); \
148 vsf_err_t vsf_imp_sdio_set_clock(vsf_imp_sdio_t *sdio_ptr, uint32_t clock_hz) \
150 VSF_HAL_ASSERT(sdio_ptr != NULL); \
151 return vsf_remap_sdio_set_clock(sdio_ptr, clock_hz); \
153 vsf_err_t vsf_imp_sdio_set_bus_width(vsf_imp_sdio_t *sdio_ptr, uint8_t bus_width) \
155 VSF_HAL_ASSERT(sdio_ptr != NULL); \
156 return vsf_remap_sdio_set_bus_width(sdio_ptr, bus_width); \
158 vsf_err_t vsf_imp_sdio_host_request(vsf_imp_sdio_t *sdio_ptr, vsf_sdio_trans_t *trans) \
160 VSF_HAL_ASSERT(sdio_ptr != NULL); \
161 return vsf_remap_sdio_host_request(sdio_ptr, trans); \
163 vsf_err_t vsf_imp_sdio_get_configuration(vsf_imp_sdio_t *sdio_ptr, vsf_sdio_cfg_t *cfg_ptr) \
165 VSF_HAL_ASSERT(sdio_ptr != NULL); \
166 return vsf_remap_sdio_get_configuration(sdio_ptr, cfg_ptr); \
175#define VSF_HAL_TEMPLATE_IMP_NAME _sdio
176#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _SDIO
178#if !defined(VSF_SDIO_CFG_IMP_PREFIX) && !defined(VSF_SDIO_CFG_IMP_DEVICE_PREFIX)
179# error "Please define VSF_SDIO_CFG_IMP_PREFIX in sdio driver"
182#if !defined(VSF_SDIO_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_SDIO_CFG_IMP_DEVICE_UPCASE_PREFIX)
183# error "Please define VSF_SDIO_CFG_IMP_UPCASE_PREFIX in sdio driver"
186#ifndef VSF_SDIO_CFG_IMP_COUNT_MASK_PREFIX
187# define VSF_SDIO_CFG_IMP_COUNT_MASK_PREFIX VSF_SDIO_CFG_IMP_UPCASE_PREFIX
190#ifdef VSF_SDIO_CFG_IMP_REMAP_FUNCTIONS
191# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_SDIO_CFG_IMP_REMAP_FUNCTIONS
196#undef VSF_SDIO_CFG_IMP_PREFIX
197#undef VSF_SDIO_CFG_IMP_COUNT_MASK_PREFIX
198#undef VSF_SDIO_CFG_IMP_UPCASE_PREFIX
199#undef VSF_SDIO_CFG_IMP_DEVICE_PREFIX
200#undef VSF_SDIO_CFG_IMP_DEVICE_UPCASE_PREFIX
201#undef VSF_SDIO_CFG_IMP_LV0
202#undef VSF_SDIO_CFG_IMP_REMAP_FUNCTIONS
203#undef VSF_SDIO_CFG_IMP_HAS_OP
204#undef VSF_SDIO_CFG_IMP_EXTERN_OP
207#undef vsf_imp_sdio_init
208#undef vsf_imp_sdio_enable
209#undef vsf_imp_sdio_disable
210#undef vsf_imp_sdio_irq_enable
211#undef vsf_imp_sdio_irq_disable
212#undef vsf_imp_sdio_status
213#undef vsf_imp_sdio_capability
214#undef vsf_imp_sdio_set_clock
215#undef vsf_imp_sdio_set_bus_width
216#undef vsf_imp_sdio_host_request
217#undef vsf_imp_sdio_get_configuration
219#undef vsf_remap_sdio_t
220#undef vsf_remap_sdio_init
221#undef vsf_remap_sdio_enable
222#undef vsf_remap_sdio_disable
223#undef vsf_remap_sdio_irq_enable
224#undef vsf_remap_sdio_irq_disable
225#undef vsf_remap_sdio_status
226#undef vsf_remap_sdio_capability
227#undef vsf_remap_sdio_set_clock
228#undef vsf_remap_sdio_set_bus_width
229#undef vsf_remap_sdio_host_request
230#undef vsf_remap_sdio_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_sdio.h:743
uint32_t max_freq_hz
Definition vsf_template_sdio.h:752
sdio configuration
Definition vsf_template_sdio.h:826
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36