X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fmmc.h;h=9f94f423fbf55a4536c0e736409e43ecc38cbd68;hb=1bf8e9fd7498da3f9b109944b0551c589402d643;hp=b9b27ba1817ec07ec0f3290aae1bff06acb88c25;hpb=9eb468da3fd8753de55ab271d6ff5ed7f36d7ea2;p=u-boot diff --git a/include/mmc.h b/include/mmc.h index b9b27ba181..9f94f423fb 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -47,7 +47,7 @@ #define SD_DATA_4BIT 0x00040000 -#define IS_SD(x) (mmc->version & SD_VERSION_SD) +#define IS_SD(x) (x->version & SD_VERSION_SD) #define MMC_DATA_READ 1 #define MMC_DATA_WRITE 2 @@ -91,7 +91,7 @@ #define MMC_HS_TIMING 0x00000100 #define MMC_HS_52MHZ 0x2 -#define OCR_BUSY 0x80 +#define OCR_BUSY 0x80000000 #define OCR_HCS 0x40000000 #define MMC_VDD_165_195 0x00000080 /* VDD voltage 1.65 - 1.95 */ @@ -179,6 +179,16 @@ struct mmc_cid { char pnm[7]; }; +/* + * WARNING! + * + * This structure is used by atmel_mci.c only. + * It works for the AVR32 architecture but NOT + * for ARM/AT91 architectures. + * Its use is highly depreciated. + * After the atmel_mci.c driver for AVR32 has + * been replaced this structure will be removed. + */ struct mmc_csd { u8 csd_structure:2, @@ -223,7 +233,7 @@ struct mmc_cmd { ushort cmdidx; uint resp_type; uint cmdarg; - char response[18]; + uint response[4]; uint flags; }; @@ -253,7 +263,7 @@ struct mmc { uint ocr; uint scr[2]; uint csd[4]; - char cid[16]; + uint cid[4]; ushort rca; uint tran_speed; uint read_bl_len; @@ -271,9 +281,14 @@ int mmc_initialize(bd_t *bis); int mmc_init(struct mmc *mmc); int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size); struct mmc *find_mmc_device(int dev_num); +int mmc_set_dev(int dev_num); void print_mmc_devices(char separator); +int board_mmc_getcd(u8 *cd, struct mmc *mmc); -#ifndef CONFIG_GENERIC_MMC +#ifdef CONFIG_GENERIC_MMC +int atmel_mci_init(void *regs); +#else int mmc_legacy_init(int verbose); #endif + #endif /* _MMC_H_ */