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