c92552f86be0fbc77dba0e5c7b49bdce72c40aa8
2 * linux/drivers/mmc/mmc_pxa.h
4 * Author: Vladimir Shebordaev, Igor Oblakov
5 * Copyright: MontaVista Software Inc.
7 * $Id: mmc_pxa.h,v 0.3.1.6 2002/09/25 19:25:48 ted Exp ted $
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
13 #ifndef __MMC_PXA_P_H__
14 #define __MMC_PXA_P_H__
16 #include <asm/arch/regs-sdi.h>
18 #define MMC_DEFAULT_RCA (1<<16)
20 #define MMC_BLOCK_SIZE 512
21 #define MMC_CMD_RESET 0
22 #define MMC_CMD_SEND_OP_COND 1
23 #define MMC_CMD_ALL_SEND_CID 2
24 #define MMC_CMD_SET_RCA 3
25 #define MMC_CMD_SELECT_CARD 7
26 #define MMC_CMD_SEND_CSD 9
27 #define MMC_CMD_SEND_CID 10
28 #define MMC_CMD_SEND_STATUS 13
29 #define MMC_CMD_SET_BLOCKLEN 16
30 #define MMC_CMD_READ_BLOCK 17
31 #define MMC_CMD_RD_BLK_MULTI 18
32 #define MMC_CMD_WRITE_BLOCK 24
34 #define MMC_MAX_BLOCK_SIZE 512
36 #define MMC_R1_IDLE_STATE 0x01
37 #define MMC_R1_ERASE_STATE 0x02
38 #define MMC_R1_ILLEGAL_CMD 0x04
39 #define MMC_R1_COM_CRC_ERR 0x08
40 #define MMC_R1_ERASE_SEQ_ERR 0x01
41 #define MMC_R1_ADDR_ERR 0x02
42 #define MMC_R1_PARAM_ERR 0x04
44 #define MMC_R1B_WP_ERASE_SKIP 0x0002
45 #define MMC_R1B_ERR 0x0004
46 #define MMC_R1B_CC_ERR 0x0008
47 #define MMC_R1B_CARD_ECC_ERR 0x0010
48 #define MMC_R1B_WP_VIOLATION 0x0020
49 #define MMC_R1B_ERASE_PARAM 0x0040
50 #define MMC_R1B_OOR 0x0080
51 #define MMC_R1B_IDLE_STATE 0x0100
52 #define MMC_R1B_ERASE_RESET 0x0200
53 #define MMC_R1B_ILLEGAL_CMD 0x0400
54 #define MMC_R1B_COM_CRC_ERR 0x0800
55 #define MMC_R1B_ERASE_SEQ_ERR 0x1000
56 #define MMC_R1B_ADDR_ERR 0x2000
57 #define MMC_R1B_PARAM_ERR 0x4000
59 typedef struct mmc_cid
61 /* FIXME: BYTE_ORDER */
71 typedef struct mmc_csd
79 uint64_t content_prot_app
:1,
101 ushort read_bl_len
:4,
112 #endif /* __MMC_PXA_P_H__ */