#ifndef __JZ_MMC_H__ #define __JZ_MMC_H__ #define MMC_CLOCK_SLOW 400000 /* 400 kHz for initial setup */ #define MMC_CLOCK_FAST 20000000 /* 20 MHz for maximum for normal operation */ #define SD_CLOCK_FAST 24000000 /* 24 MHz for SD Cards */ #define MMC_NO_ERROR 0 /* Extra MMC commands for state control */ /* Use negative numbers to disambiguate */ #define MMC_CIM_RESET -1 #define MMC_SET_CLOCK 100 typedef struct jzsoc_dma_desc { volatile u32 ddadr; /* Points to the next descriptor + flags */ volatile u32 dsadr; /* DSADR value for the current transfer */ volatile u32 dtadr; /* DTADR value for the current transfer */ volatile u32 dcmd; /* DCMD value for the current transfer */ } jzsoc_dma_desc; #include struct device; struct mmc_host; struct jz_mmc_platform_data { unsigned int ocr_mask; /* available voltages */ unsigned long detect_delay; /* delay in jiffies before detecting cards after interrupt */ int (*init)(struct device *, irq_handler_t , void *); int (*get_ro)(struct device *); void (*setpower)(struct device *, unsigned int); void (*exit)(struct device *, void *); }; //extern void pxa_set_mci_info(struct pxamci_platform_data *info); #define SZ_1K 0x00000400 #define SZ_4K 0x00001000 #define SZ_8K 0x00002000 #define SZ_16K 0x00004000 #define SZ_64K 0x00010000 #define SZ_128K 0x00020000 #define SZ_256K 0x00040000 #define SZ_512K 0x00080000 #define SZ_1M 0x00100000 #define SZ_2M 0x00200000 #define SZ_4M 0x00400000 #define SZ_8M 0x00800000 #define SZ_16M 0x01000000 #define SZ_32M 0x02000000 #define SZ_64M 0x04000000 #define SZ_128M 0x08000000 #define SZ_256M 0x10000000 #define SZ_512M 0x20000000 #define SZ_1G 0x40000000 #define SZ_2G 0x80000000 #endif /* __JZ_MMC_H__ */