c92552f86be0fbc77dba0e5c7b49bdce72c40aa8
[u-boot-openmoko/mini2440.git] / include / asm-arm / arch-s3c24x0 / mmc.h
blobc92552f86be0fbc77dba0e5c7b49bdce72c40aa8
1 /*
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 */
62 uchar year:4,
63 month:4;
64 uchar sn[3];
65 uchar fwrev:4,
66 hwrev:4;
67 uchar name[6];
68 uchar id[3];
69 } mmc_cid_t;
71 typedef struct mmc_csd
73 uchar ecc:2,
74 file_format:2,
75 tmp_write_protect:1,
76 perm_write_protect:1,
77 copy:1,
78 file_format_grp:1;
79 uint64_t content_prot_app:1,
80 rsvd3:4,
81 write_bl_partial:1,
82 write_bl_len:4,
83 r2w_factor:3,
84 default_ecc:2,
85 wp_grp_enable:1,
86 wp_grp_size:5,
87 erase_grp_mult:5,
88 erase_grp_size:5,
89 c_size_mult1:3,
90 vdd_w_curr_max:3,
91 vdd_w_curr_min:3,
92 vdd_r_curr_max:3,
93 vdd_r_curr_min:3,
94 c_size:12,
95 rsvd2:2,
96 dsr_imp:1,
97 read_blk_misalign:1,
98 write_blk_misalign:1,
99 read_bl_partial:1;
101 ushort read_bl_len:4,
102 ccc:12;
103 uchar tran_speed;
104 uchar nsac;
105 uchar taac;
106 uchar rsvd1:2,
107 spec_vers:4,
108 csd_structure:2;
109 } mmc_csd_t;
112 #endif /* __MMC_PXA_P_H__ */