171f95118Swdenk /* 271f95118Swdenk * (C) Copyright 2000-2003 371f95118Swdenk * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 471f95118Swdenk * 571f95118Swdenk * See file CREDITS for list of people who contributed to this 671f95118Swdenk * project. 771f95118Swdenk * 871f95118Swdenk * This program is free software; you can redistribute it and/or 971f95118Swdenk * modify it under the terms of the GNU General Public License as 1071f95118Swdenk * published by the Free Software Foundation; either version 2 of 1171f95118Swdenk * the License, or (at your option) any later version. 1271f95118Swdenk * 1371f95118Swdenk * This program is distributed in the hope that it will be useful, 1471f95118Swdenk * but WITHOUT ANY WARRANTY; without even the implied warranty of 1571f95118Swdenk * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1671f95118Swdenk * GNU General Public License for more details. 1771f95118Swdenk * 1871f95118Swdenk * You should have received a copy of the GNU General Public License 1971f95118Swdenk * along with this program; if not, write to the Free Software 2071f95118Swdenk * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 2171f95118Swdenk * MA 02111-1307 USA 2271f95118Swdenk */ 2371f95118Swdenk 2471f95118Swdenk #ifndef _MMC_H_ 2571f95118Swdenk #define _MMC_H_ 2671f95118Swdenk #include <asm/arch/mmc.h> 2771f95118Swdenk 28*341188b9SHaavard Skinnemoen /* MMC command numbers */ 29*341188b9SHaavard Skinnemoen #define MMC_CMD_GO_IDLE_STATE 0 30*341188b9SHaavard Skinnemoen #define MMC_CMD_SEND_OP_COND 1 31*341188b9SHaavard Skinnemoen #define MMC_CMD_ALL_SEND_CID 2 32*341188b9SHaavard Skinnemoen #define MMC_CMD_SET_RELATIVE_ADDR 3 33*341188b9SHaavard Skinnemoen #define MMC_CMD_SET_DSR 4 34*341188b9SHaavard Skinnemoen #define MMC_CMD_SELECT_CARD 7 35*341188b9SHaavard Skinnemoen #define MMC_CMD_SEND_CSD 9 36*341188b9SHaavard Skinnemoen #define MMC_CMD_SEND_CID 10 37*341188b9SHaavard Skinnemoen #define MMC_CMD_SEND_STATUS 13 38*341188b9SHaavard Skinnemoen #define MMC_CMD_SET_BLOCKLEN 16 39*341188b9SHaavard Skinnemoen #define MMC_CMD_READ_SINGLE_BLOCK 17 40*341188b9SHaavard Skinnemoen #define MMC_CMD_READ_MULTIPLE_BLOCK 18 41*341188b9SHaavard Skinnemoen #define MMC_CMD_WRITE_BLOCK 24 42*341188b9SHaavard Skinnemoen #define MMC_CMD_APP_CMD 55 43*341188b9SHaavard Skinnemoen 44*341188b9SHaavard Skinnemoen /* SD Card command numbers */ 45*341188b9SHaavard Skinnemoen #define SD_CMD_SEND_RELATIVE_ADDR 3 46*341188b9SHaavard Skinnemoen #define SD_CMD_SWITCH 6 47*341188b9SHaavard Skinnemoen #define SD_CMD_SEND_IF_COND 8 48*341188b9SHaavard Skinnemoen 49*341188b9SHaavard Skinnemoen #define SD_CMD_APP_SET_BUS_WIDTH 6 50*341188b9SHaavard Skinnemoen #define SD_CMD_APP_SEND_OP_COND 41 51*341188b9SHaavard Skinnemoen 5271f95118Swdenk int mmc_init(int verbose); 5371f95118Swdenk int mmc_read(ulong src, uchar *dst, int size); 5471f95118Swdenk int mmc_write(uchar *src, ulong dst, int size); 5571f95118Swdenk int mmc2info(ulong addr); 5671f95118Swdenk 5771f95118Swdenk #endif /* _MMC_H_ */ 58