34 #ifndef __HAL_SDIO_SLAVE_H__ 35 #define __HAL_SDIO_SLAVE_H__ 37 #include "hal_platform.h" 39 #ifdef HAL_SDIO_SLAVE_MODULE_ENABLED 296 HAL_SDIO_SLAVE_STATUS_ERROR = -3,
297 HAL_SDIO_SLAVE_STATUS_BUSY = -2,
298 HAL_SDIO_SLAVE_STATUS_INVALID_PARAMETER = -1,
299 HAL_SDIO_SLAVE_STATUS_OK = 0
300 } hal_sdio_slave_status_t;
304 HAL_SDIO_SLAVE_TX_QUEUE_1 = 1,
305 HAL_SDIO_SLAVE_TX_QUEUE_MAX
306 } hal_sdio_slave_tx_queue_id_t;
310 HAL_SDIO_SLAVE_RX_QUEUE_0 = 0,
311 HAL_SDIO_SLAVE_RX_QUEUE_1 = 1,
312 HAL_SDIO_SLAVE_RX_QUEUE_MAX
313 } hal_sdio_slave_rx_queue_id_t;
317 HAL_SDIO_SLAVE_EVENT_ERROR = -1,
318 HAL_SDIO_SLAVE_EVENT_RX0_DONE = 0,
319 HAL_SDIO_SLAVE_EVENT_RX1_DONE = 1,
320 HAL_SDIO_SLAVE_EVENT_TX1_DONE = 2,
321 HAL_SDIO_SLAVE_EVENT_SW_INTERRUPT = 3,
322 HAL_SDIO_SLAVE_EVENT_NONE = 4
323 } hal_sdio_slave_callback_event_t;
327 uint32_t hal_sdio_slave_sw_interrupt_number;
328 } hal_sdio_slave_callback_sw_interrupt_parameter_t;
332 uint32_t hal_sdio_slave_tx_length;
333 } hal_sdio_slave_callback_tx_length_parameter_t;
351 typedef void (*hal_sdio_slave_callback_t)(hal_sdio_slave_callback_event_t sdio_slave_event,
void *parameter,
void *user_data);
364 hal_sdio_slave_status_t hal_sdio_slave_register_callback(hal_sdio_slave_port_t sdio_slave_port, hal_sdio_slave_callback_t sdio_slave_callback,
void *user_data);
374 hal_sdio_slave_status_t hal_sdio_slave_init(hal_sdio_slave_port_t sdio_slave_port);
382 hal_sdio_slave_status_t hal_sdio_slave_deinit(hal_sdio_slave_port_t sdio_slave_port);
391 hal_sdio_slave_status_t hal_sdio_slave_receive_mailbox(hal_sdio_slave_port_t sdio_slave_port, uint32_t mailbox_number, uint32_t *mailbox_value);
400 hal_sdio_slave_status_t hal_sdio_slave_send_mailbox(hal_sdio_slave_port_t sdio_slave_port, uint32_t mailbox_number, uint32_t mailbox_value);
409 hal_sdio_slave_status_t hal_sdio_slave_trigger_d2h_interrupt(hal_sdio_slave_port_t sdio_slave_port, uint32_t interrupt_number);
420 hal_sdio_slave_status_t hal_sdio_slave_send_dma(hal_sdio_slave_port_t sdio_slave_port, hal_sdio_slave_rx_queue_id_t queue_id,
const uint32_t *buffer, uint32_t size);
432 hal_sdio_slave_status_t hal_sdio_slave_receive_dma(hal_sdio_slave_port_t sdio_slave_port, hal_sdio_slave_tx_queue_id_t queue_id, uint32_t *buffer, uint32_t size);