diff options
| -rw-r--r-- | cpu/at32ap/atmel_mci.c | 4 | ||||
| -rw-r--r-- | cpu/pxa/mmc.c | 11 | ||||
| -rw-r--r-- | include/asm-arm/arch-pxa/mmc.h | 17 | ||||
| -rw-r--r-- | include/asm-avr32/arch-at32ap700x/mmc.h | 19 | ||||
| -rw-r--r-- | include/mmc.h | 24 | 
5 files changed, 33 insertions, 42 deletions
| diff --git a/cpu/at32ap/atmel_mci.c b/cpu/at32ap/atmel_mci.c index 3795addf0..61aa1849c 100644 --- a/cpu/at32ap/atmel_mci.c +++ b/cpu/at32ap/atmel_mci.c @@ -349,7 +349,7 @@ static int sd_init_card(struct mmc_cid *cid, int verbose)  	mmc_idle_cards();  	for (i = 0; i < 1000; i++) { -		ret = mmc_acmd(MMC_ACMD_SD_SEND_OP_COND, CFG_MMC_OP_COND, +		ret = mmc_acmd(SD_CMD_APP_SEND_OP_COND, CFG_MMC_OP_COND,  			       resp, R3 | NID);  		if (ret || (resp[0] & 0x80000000))  			break; @@ -367,7 +367,7 @@ static int sd_init_card(struct mmc_cid *cid, int verbose)  		mmc_dump_cid(cid);  	/* Get RCA of the card that responded */ -	ret = mmc_cmd(MMC_CMD_SD_SEND_RELATIVE_ADDR, 0, resp, R6 | NCR); +	ret = mmc_cmd(SD_CMD_SEND_RELATIVE_ADDR, 0, resp, R6 | NCR);  	if (ret)  		return ret; diff --git a/cpu/pxa/mmc.c b/cpu/pxa/mmc.c index 039ce0f57..4495a808f 100644 --- a/cpu/pxa/mmc.c +++ b/cpu/pxa/mmc.c @@ -119,7 +119,7 @@ mmc_block_read(uchar * dst, ulong src, ulong len)  	MMC_RDTO = 0xffff;  	MMC_NOB = 1;  	MMC_BLKLEN = len; -	mmc_cmd(MMC_CMD_READ_BLOCK, argh, argl, +	mmc_cmd(MMC_CMD_READ_SINGLE_BLOCK, argh, argl,  		MMC_CMDAT_R1 | MMC_CMDAT_READ | MMC_CMDAT_BLOCK |  		MMC_CMDAT_DATA_EN); @@ -568,7 +568,7 @@ mmc_init(int verbose)  	MMC_SPI = MMC_SPI_DISABLE;  	/* reset */ -	mmc_cmd(MMC_CMD_RESET, 0, 0, MMC_CMDAT_INIT | MMC_CMDAT_R0); +	mmc_cmd(MMC_CMD_GO_IDLE_STATE, 0, 0, MMC_CMDAT_INIT | MMC_CMDAT_R0);  	udelay(200000);  	retries = 3;  	while (retries--) { @@ -578,7 +578,10 @@ mmc_init(int verbose)  			break;  		} -		resp = mmc_cmd(SD_CMD_APP_OP_COND, 0x0020, 0, MMC_CMDAT_R3 | (retries < 2 ? 0 : MMC_CMDAT_INIT));	/* Select 3.2-3.3 and 3.3-3.4V */ +		/* Select 3.2-3.3 and 3.3-3.4V */ +		resp = mmc_cmd(SD_CMD_APP_SEND_OP_COND, 0x0020, 0, +				MMC_CMDAT_R3 | (retries < 2 ? 0 +					: MMC_CMDAT_INIT));  		if (resp[0] & 0x80000000) {  			mmc_dev.if_type = IF_TYPE_SD;  			debug("Detected SD card\n"); @@ -616,7 +619,7 @@ mmc_init(int verbose)  		memcpy(cid_resp, resp, sizeof(cid_resp));  		/* MMC exists, get CSD too */ -		resp = mmc_cmd(MMC_CMD_SET_RCA, 0, 0, MMC_CMDAT_R1); +		resp = mmc_cmd(MMC_CMD_SET_RELATIVE_ADDR, 0, 0, MMC_CMDAT_R1);  		if (IF_TYPE_SD == mmc_dev.if_type)  			rca = ((resp[0] & 0xffff0000) >> 16);  		resp = mmc_cmd(MMC_CMD_SEND_CSD, rca, 0, MMC_CMDAT_R2); diff --git a/include/asm-arm/arch-pxa/mmc.h b/include/asm-arm/arch-pxa/mmc.h index 9440d80b5..85e144b68 100644 --- a/include/asm-arm/arch-pxa/mmc.h +++ b/include/asm-arm/arch-pxa/mmc.h @@ -110,23 +110,6 @@  #define MMC_DEFAULT_RCA			1  #define MMC_BLOCK_SIZE			512 -#define MMC_CMD_RESET			0 -#define MMC_CMD_SEND_OP_COND		1 -#define MMC_CMD_ALL_SEND_CID		2 -#define MMC_CMD_SET_RCA			3 -#define MMC_CMD_SELECT_CARD		7 -#define MMC_CMD_SEND_CSD		9 -#define MMC_CMD_SEND_CID		10 -#define MMC_CMD_SEND_STATUS		13 -#define MMC_CMD_SET_BLOCKLEN		16 -#define MMC_CMD_READ_BLOCK		17 -#define MMC_CMD_RD_BLK_MULTI		18 -#define MMC_CMD_WRITE_BLOCK		24 -#define MMC_CMD_APP_CMD			55 - -#define SD_CMD_APP_SET_BUS_WIDTH	6 -#define SD_CMD_APP_OP_COND		41 -  #define MMC_MAX_BLOCK_SIZE		512  #define MMC_R1_IDLE_STATE		0x01 diff --git a/include/asm-avr32/arch-at32ap700x/mmc.h b/include/asm-avr32/arch-at32ap700x/mmc.h index 6a33fef5a..9caba9168 100644 --- a/include/asm-avr32/arch-at32ap700x/mmc.h +++ b/include/asm-avr32/arch-at32ap700x/mmc.h @@ -71,25 +71,6 @@ struct mmc_csd  	u8	one:1;  }; -/* MMC Command numbers */ -#define MMC_CMD_GO_IDLE_STATE		0 -#define MMC_CMD_SEND_OP_COND		1 -#define MMC_CMD_ALL_SEND_CID		2 -#define MMC_CMD_SET_RELATIVE_ADDR	3 -#define MMC_CMD_SD_SEND_RELATIVE_ADDR	3 -#define MMC_CMD_SET_DSR			4 -#define MMC_CMD_SELECT_CARD		7 -#define MMC_CMD_SEND_CSD		9 -#define MMC_CMD_SEND_CID		10 -#define MMC_CMD_SEND_STATUS		13 -#define MMC_CMD_SET_BLOCKLEN		16 -#define MMC_CMD_READ_SINGLE_BLOCK	17 -#define MMC_CMD_READ_MULTIPLE_BLOCK	18 -#define MMC_CMD_WRITE_BLOCK		24 -#define MMC_CMD_APP_CMD			55 - -#define MMC_ACMD_SD_SEND_OP_COND	41 -  #define R1_ILLEGAL_COMMAND		(1 << 22)  #define R1_APP_CMD			(1 << 5) diff --git a/include/mmc.h b/include/mmc.h index a2716959e..19c76fe4c 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -25,6 +25,30 @@  #define _MMC_H_  #include <asm/arch/mmc.h> +/* MMC command numbers */ +#define MMC_CMD_GO_IDLE_STATE		0 +#define MMC_CMD_SEND_OP_COND		1 +#define MMC_CMD_ALL_SEND_CID		2 +#define MMC_CMD_SET_RELATIVE_ADDR	3 +#define MMC_CMD_SET_DSR			4 +#define MMC_CMD_SELECT_CARD		7 +#define MMC_CMD_SEND_CSD		9 +#define MMC_CMD_SEND_CID		10 +#define MMC_CMD_SEND_STATUS		13 +#define MMC_CMD_SET_BLOCKLEN		16 +#define MMC_CMD_READ_SINGLE_BLOCK	17 +#define MMC_CMD_READ_MULTIPLE_BLOCK	18 +#define MMC_CMD_WRITE_BLOCK		24 +#define MMC_CMD_APP_CMD			55 + +/* SD Card command numbers */ +#define SD_CMD_SEND_RELATIVE_ADDR	3 +#define SD_CMD_SWITCH			6 +#define SD_CMD_SEND_IF_COND		8 + +#define SD_CMD_APP_SET_BUS_WIDTH	6 +#define SD_CMD_APP_SEND_OP_COND		41 +  int mmc_init(int verbose);  int mmc_read(ulong src, uchar *dst, int size);  int mmc_write(uchar *src, ulong dst, int size); |