blob: adef4ee21dbd9eb08e3da470a5b37b3b74d3adc2 [file] [log] [blame]
Minkyu Kang50002842010-07-06 20:26:06 +09001/*
2 * (C) Copyright 2009 SAMSUNG Electronics
3 * Minkyu Kang <mk7.kang@samsung.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 */
20
21#ifndef __ASM_ARCH_MMC_H_
22#define __ASM_ARCH_MMC_H_
23
24#ifndef __ASSEMBLY__
25struct s5p_mmc {
26 unsigned int sysad;
27 unsigned short blksize;
28 unsigned short blkcnt;
29 unsigned int argument;
30 unsigned short trnmod;
31 unsigned short cmdreg;
32 unsigned int rspreg0;
33 unsigned int rspreg1;
34 unsigned int rspreg2;
35 unsigned int rspreg3;
36 unsigned int bdata;
37 unsigned int prnsts;
38 unsigned char hostctl;
39 unsigned char pwrcon;
40 unsigned char blkgap;
41 unsigned char wakcon;
42 unsigned short clkcon;
43 unsigned char timeoutcon;
44 unsigned char swrst;
45 unsigned int norintsts; /* errintsts */
46 unsigned int norintstsen; /* errintstsen */
47 unsigned int norintsigen; /* errintsigen */
48 unsigned short acmd12errsts;
49 unsigned char res1[2];
50 unsigned int capareg;
51 unsigned char res2[4];
52 unsigned int maxcurr;
53 unsigned char res3[0x34];
54 unsigned int control2;
55 unsigned int control3;
Chander Kashyapbef5f852011-03-22 01:29:38 +000056 unsigned char res4[4];
Minkyu Kang50002842010-07-06 20:26:06 +090057 unsigned int control4;
Chander Kashyapbef5f852011-03-22 01:29:38 +000058 unsigned char res5[0x6e];
Minkyu Kang50002842010-07-06 20:26:06 +090059 unsigned short hcver;
Chander Kashyapbef5f852011-03-22 01:29:38 +000060 unsigned char res6[0xFFF00];
Minkyu Kang50002842010-07-06 20:26:06 +090061};
62
63struct mmc_host {
64 struct s5p_mmc *reg;
65 unsigned int version; /* SDHCI spec. version */
66 unsigned int clock; /* Current clock (MHz) */
Jaehoon Chung68a8cbf2011-05-17 21:19:17 +000067 int dev_index;
Minkyu Kang50002842010-07-06 20:26:06 +090068};
69
Jaehoon Chung1727e212010-09-27 15:43:52 +090070int s5p_mmc_init(int dev_index, int bus_width);
Minkyu Kang50002842010-07-06 20:26:06 +090071
72#endif /* __ASSEMBLY__ */
73#endif