]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - include/asm-avr32/arch-at32ap700x/mmc.h
Big white-space cleanup.
[karo-tx-uboot.git] / include / asm-avr32 / arch-at32ap700x / mmc.h
1 /*
2  * Copyright (C) 2004-2006 Atmel Corporation
3  *
4  * See file CREDITS for list of people who contributed to this
5  * project.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation; either version 2 of
10  * the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20  * MA 02111-1307 USA
21  */
22 #ifndef __ASM_AVR32_MMC_H
23 #define __ASM_AVR32_MMC_H
24
25 struct mmc_cid {
26         unsigned long psn;
27         unsigned short oid;
28         unsigned char mid;
29         unsigned char prv;
30         unsigned char mdt;
31         char pnm[7];
32 };
33
34 struct mmc_csd
35 {
36         u8      csd_structure:2,
37                 spec_vers:4,
38                 rsvd1:2;
39         u8      taac;
40         u8      nsac;
41         u8      tran_speed;
42         u16     ccc:12,
43                 read_bl_len:4;
44         u64     read_bl_partial:1,
45                 write_blk_misalign:1,
46                 read_blk_misalign:1,
47                 dsr_imp:1,
48                 rsvd2:2,
49                 c_size:12,
50                 vdd_r_curr_min:3,
51                 vdd_r_curr_max:3,
52                 vdd_w_curr_min:3,
53                 vdd_w_curr_max:3,
54                 c_size_mult:3,
55                 sector_size:5,
56                 erase_grp_size:5,
57                 wp_grp_size:5,
58                 wp_grp_enable:1,
59                 default_ecc:2,
60                 r2w_factor:3,
61                 write_bl_len:4,
62                 write_bl_partial:1,
63                 rsvd3:5;
64         u8      file_format_grp:1,
65                 copy:1,
66                 perm_write_protect:1,
67                 tmp_write_protect:1,
68                 file_format:2,
69                 ecc:2;
70         u8      crc:7;
71         u8      one:1;
72 };
73
74 /* MMC Command numbers */
75 #define MMC_CMD_GO_IDLE_STATE           0
76 #define MMC_CMD_SEND_OP_COND            1
77 #define MMC_CMD_ALL_SEND_CID            2
78 #define MMC_CMD_SET_RELATIVE_ADDR       3
79 #define MMC_CMD_SD_SEND_RELATIVE_ADDR   3
80 #define MMC_CMD_SET_DSR                 4
81 #define MMC_CMD_SELECT_CARD             7
82 #define MMC_CMD_SEND_CSD                9
83 #define MMC_CMD_SEND_CID                10
84 #define MMC_CMD_SEND_STATUS             13
85 #define MMC_CMD_SET_BLOCKLEN            16
86 #define MMC_CMD_READ_SINGLE_BLOCK       17
87 #define MMC_CMD_READ_MULTIPLE_BLOCK     18
88 #define MMC_CMD_WRITE_BLOCK             24
89 #define MMC_CMD_APP_CMD                 55
90
91 #define MMC_ACMD_SD_SEND_OP_COND        41
92
93 #define R1_ILLEGAL_COMMAND              (1 << 22)
94 #define R1_APP_CMD                      (1 << 5)
95
96 #endif /* __ASM_AVR32_MMC_H */