00001 00028 #ifndef PLATFORM_SDIO_H 00029 #define PLATFORM_SDIO_H 00030 #include <stdint.h> 00031 #include "spb.h" 00032 00033 #define MAX_BLOCK_LEN 512 00034 00035 enum { 00036 IRQ_OP_ENABLE, 00037 IRQ_OP_DISABLE 00038 }; 00039 00040 enum { 00041 CMD_FLAG_TO_HOST = (1 << 0), 00042 }; 00043 00044 enum { 00045 SDIO_FLAG_POLL = (1 << 0), 00046 SDIO_FLAG_1BIT_MODE = (1 << 1), 00047 }; 00048 00049 enum { 00050 SDIO_IRQ_RX = (1 << 0), 00051 }; 00052 00053 void platform_sdio_init(uint8_t *flags); 00054 void platform_sdio_reset(void); 00055 void platform_sdio_cmd(uint8_t idx, uint32_t arg, uint8_t flags, uint32_t *rsp, 00056 const uint8_t *data, uint16_t len); 00057 void platform_sdio_tx(const uint8_t *data, uint16_t len); 00058 void platform_sdio_rx(uint8_t *data, uint16_t len); 00059 void platform_sdio_irq(uint8_t op); 00060 00061 extern void sdio_irq_handler(uint8_t status); 00062 00063 #endif