blob: 0f75c311f5ab5da04d5f60f95851362728382955 [file] [log] [blame]
wdenk48b42612003-06-19 23:01:32 +00001/*
2 * (C) Copyright 2003
Albert ARIBAUDfa82f872011-08-04 18:45:45 +02003 * David Müller ELSOFT AG Switzerland. d.mueller@elsoft.ch
wdenk48b42612003-06-19 23:01:32 +00004 *
5 * See file CREDITS for list of people who contributed to this
6 * project.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 * MA 02111-1307 USA
22 */
23
24/************************************************
25 * NAME : s3c24x0.h
26 * Version : 31.3.2003
27 *
28 * common stuff for SAMSUNG S3C24X0 SoC
29 ************************************************/
30
31#ifndef __S3C24X0_H__
32#define __S3C24X0_H__
33
wdenk48b42612003-06-19 23:01:32 +000034/* Memory controller (see manual chapter 5) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090035struct s3c24x0_memctl {
C Naumand9abba82010-10-26 23:04:31 +090036 u32 bwscon;
37 u32 bankcon[8];
38 u32 refresh;
39 u32 banksize;
40 u32 mrsrb6;
41 u32 mrsrb7;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090042};
wdenk48b42612003-06-19 23:01:32 +000043
44
45/* USB HOST (see manual chapter 12) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090046struct s3c24x0_usb_host {
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +090047 u32 HcRevision;
48 u32 HcControl;
49 u32 HcCommonStatus;
50 u32 HcInterruptStatus;
51 u32 HcInterruptEnable;
52 u32 HcInterruptDisable;
53 u32 HcHCCA;
54 u32 HcPeriodCuttendED;
55 u32 HcControlHeadED;
56 u32 HcControlCurrentED;
57 u32 HcBulkHeadED;
58 u32 HcBuldCurrentED;
59 u32 HcDoneHead;
60 u32 HcRmInterval;
61 u32 HcFmRemaining;
62 u32 HcFmNumber;
63 u32 HcPeriodicStart;
64 u32 HcLSThreshold;
65 u32 HcRhDescriptorA;
66 u32 HcRhDescriptorB;
67 u32 HcRhStatus;
68 u32 HcRhPortStatus1;
69 u32 HcRhPortStatus2;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090070};
wdenk48b42612003-06-19 23:01:32 +000071
72
73/* INTERRUPT (see manual chapter 14) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090074struct s3c24x0_interrupt {
C Naumand9abba82010-10-26 23:04:31 +090075 u32 srcpnd;
76 u32 intmod;
77 u32 intmsk;
78 u32 priority;
79 u32 intpnd;
80 u32 intoffset;
81#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
82 u32 subsrcpnd;
83 u32 intsubmsk;
wdenk48b42612003-06-19 23:01:32 +000084#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090085};
wdenk48b42612003-06-19 23:01:32 +000086
87
88/* DMAS (see manual chapter 8) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090089struct s3c24x0_dma {
C Naumand9abba82010-10-26 23:04:31 +090090 u32 disrc;
91#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
92 u32 disrcc;
wdenk48b42612003-06-19 23:01:32 +000093#endif
C Naumand9abba82010-10-26 23:04:31 +090094 u32 didst;
95#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
96 u32 didstc;
wdenk48b42612003-06-19 23:01:32 +000097#endif
C Naumand9abba82010-10-26 23:04:31 +090098 u32 dcon;
99 u32 dstat;
100 u32 dcsrc;
101 u32 dcdst;
102 u32 dmasktrig;
103#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) \
104 || defined(CONFIG_S3C2440)
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900105 u32 res[1];
wdenk48b42612003-06-19 23:01:32 +0000106#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900107};
wdenk48b42612003-06-19 23:01:32 +0000108
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900109struct s3c24x0_dmas {
110 struct s3c24x0_dma dma[4];
111};
wdenk48b42612003-06-19 23:01:32 +0000112
113
114/* CLOCK & POWER MANAGEMENT (see S3C2400 manual chapter 6) */
115/* (see S3C2410 manual chapter 7) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900116struct s3c24x0_clock_power {
C Naumand9abba82010-10-26 23:04:31 +0900117 u32 locktime;
118 u32 mpllcon;
119 u32 upllcon;
120 u32 clkcon;
121 u32 clkslow;
122 u32 clkdivn;
123#if defined(CONFIG_S3C2440)
124 u32 camdivn;
125#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900126};
wdenk48b42612003-06-19 23:01:32 +0000127
128
129/* LCD CONTROLLER (see manual chapter 15) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900130struct s3c24x0_lcd {
C Naumand9abba82010-10-26 23:04:31 +0900131 u32 lcdcon1;
132 u32 lcdcon2;
133 u32 lcdcon3;
134 u32 lcdcon4;
135 u32 lcdcon5;
136 u32 lcdsaddr1;
137 u32 lcdsaddr2;
138 u32 lcdsaddr3;
139 u32 redlut;
140 u32 greenlut;
141 u32 bluelut;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900142 u32 res[8];
C Naumand9abba82010-10-26 23:04:31 +0900143 u32 dithmode;
144 u32 tpal;
145#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
146 u32 lcdintpnd;
147 u32 lcdsrcpnd;
148 u32 lcdintmsk;
149 u32 lpcsel;
wdenk48b42612003-06-19 23:01:32 +0000150#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900151};
wdenk48b42612003-06-19 23:01:32 +0000152
153
C Naumand9abba82010-10-26 23:04:31 +0900154#ifdef CONFIG_S3C2410
wdenk48b42612003-06-19 23:01:32 +0000155/* NAND FLASH (see S3C2410 manual chapter 6) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900156struct s3c2410_nand {
C Naumand9abba82010-10-26 23:04:31 +0900157 u32 nfconf;
158 u32 nfcmd;
159 u32 nfaddr;
160 u32 nfdata;
161 u32 nfstat;
162 u32 nfecc;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900163};
C Naumand9abba82010-10-26 23:04:31 +0900164#endif
165#ifdef CONFIG_S3C2440
166/* NAND FLASH (see S3C2440 manual chapter 6) */
167struct s3c2440_nand {
168 u32 nfconf;
169 u32 nfcont;
170 u32 nfcmd;
171 u32 nfaddr;
172 u32 nfdata;
173 u32 nfeccd0;
174 u32 nfeccd1;
175 u32 nfeccd;
176 u32 nfstat;
177 u32 nfstat0;
178 u32 nfstat1;
179};
180#endif
wdenk48b42612003-06-19 23:01:32 +0000181
182
183/* UART (see manual chapter 11) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900184struct s3c24x0_uart {
C Naumand9abba82010-10-26 23:04:31 +0900185 u32 ulcon;
186 u32 ucon;
187 u32 ufcon;
188 u32 umcon;
189 u32 utrstat;
190 u32 uerstat;
191 u32 ufstat;
192 u32 umstat;
wdenk48b42612003-06-19 23:01:32 +0000193#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900194 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900195 u8 utxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900196 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900197 u8 urxh;
wdenk48b42612003-06-19 23:01:32 +0000198#else /* Little Endian */
C Naumand9abba82010-10-26 23:04:31 +0900199 u8 utxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900200 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900201 u8 urxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900202 u8 res2[3];
wdenk48b42612003-06-19 23:01:32 +0000203#endif
C Naumand9abba82010-10-26 23:04:31 +0900204 u32 ubrdiv;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900205};
wdenk48b42612003-06-19 23:01:32 +0000206
207
208/* PWM TIMER (see manual chapter 10) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900209struct s3c24x0_timer {
C Naumand9abba82010-10-26 23:04:31 +0900210 u32 tcntb;
211 u32 tcmpb;
212 u32 tcnto;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900213};
wdenk48b42612003-06-19 23:01:32 +0000214
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900215struct s3c24x0_timers {
C Naumand9abba82010-10-26 23:04:31 +0900216 u32 tcfg0;
217 u32 tcfg1;
218 u32 tcon;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900219 struct s3c24x0_timer ch[4];
C Naumand9abba82010-10-26 23:04:31 +0900220 u32 tcntb4;
221 u32 tcnto4;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900222};
wdenk48b42612003-06-19 23:01:32 +0000223
224
225/* USB DEVICE (see manual chapter 13) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900226struct s3c24x0_usb_dev_fifos {
wdenk48b42612003-06-19 23:01:32 +0000227#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900228 u8 res[3];
C Naumand9abba82010-10-26 23:04:31 +0900229 u8 ep_fifo_reg;
wdenk48b42612003-06-19 23:01:32 +0000230#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900231 u8 ep_fifo_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900232 u8 res[3];
wdenk48b42612003-06-19 23:01:32 +0000233#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900234};
wdenk48b42612003-06-19 23:01:32 +0000235
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900236struct s3c24x0_usb_dev_dmas {
wdenk48b42612003-06-19 23:01:32 +0000237#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900238 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900239 u8 ep_dma_con;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900240 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900241 u8 ep_dma_unit;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900242 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900243 u8 ep_dma_fifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900244 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900245 u8 ep_dma_ttc_l;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900246 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900247 u8 ep_dma_ttc_m;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900248 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900249 u8 ep_dma_ttc_h;
wdenk48b42612003-06-19 23:01:32 +0000250#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900251 u8 ep_dma_con;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900252 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900253 u8 ep_dma_unit;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900254 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900255 u8 ep_dma_fifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900256 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900257 u8 ep_dma_ttc_l;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900258 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900259 u8 ep_dma_ttc_m;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900260 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900261 u8 ep_dma_ttc_h;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900262 u8 res6[3];
wdenk48b42612003-06-19 23:01:32 +0000263#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900264};
wdenk48b42612003-06-19 23:01:32 +0000265
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900266struct s3c24x0_usb_device {
wdenk48b42612003-06-19 23:01:32 +0000267#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900268 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900269 u8 func_addr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900270 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900271 u8 pwr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900272 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900273 u8 ep_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900274 u8 res4[15];
C Naumand9abba82010-10-26 23:04:31 +0900275 u8 usb_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900276 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900277 u8 ep_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900278 u8 res6[15];
C Naumand9abba82010-10-26 23:04:31 +0900279 u8 usb_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900280 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900281 u8 frame_num1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900282 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900283 u8 frame_num2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900284 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900285 u8 index_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900286 u8 res10[7];
C Naumand9abba82010-10-26 23:04:31 +0900287 u8 maxp_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900288 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900289 u8 ep0_csr_in_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900290 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900291 u8 in_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900292 u8 res13[7];
C Naumand9abba82010-10-26 23:04:31 +0900293 u8 out_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900294 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900295 u8 out_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900296 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900297 u8 out_fifo_cnt1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900298 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900299 u8 out_fifo_cnt2_reg;
wdenk48b42612003-06-19 23:01:32 +0000300#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900301 u8 func_addr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900302 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900303 u8 pwr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900304 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900305 u8 ep_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900306 u8 res3[15];
C Naumand9abba82010-10-26 23:04:31 +0900307 u8 usb_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900308 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900309 u8 ep_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900310 u8 res5[15];
C Naumand9abba82010-10-26 23:04:31 +0900311 u8 usb_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900312 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900313 u8 frame_num1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900314 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900315 u8 frame_num2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900316 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900317 u8 index_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900318 u8 res9[7];
C Naumand9abba82010-10-26 23:04:31 +0900319 u8 maxp_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900320 u8 res10[7];
C Naumand9abba82010-10-26 23:04:31 +0900321 u8 ep0_csr_in_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900322 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900323 u8 in_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900324 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900325 u8 out_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900326 u8 res13[7];
C Naumand9abba82010-10-26 23:04:31 +0900327 u8 out_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900328 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900329 u8 out_fifo_cnt1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900330 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900331 u8 out_fifo_cnt2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900332 u8 res16[3];
wdenk48b42612003-06-19 23:01:32 +0000333#endif /* __BIG_ENDIAN */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900334 struct s3c24x0_usb_dev_fifos fifo[5];
335 struct s3c24x0_usb_dev_dmas dma[5];
336};
wdenk48b42612003-06-19 23:01:32 +0000337
338
339/* WATCH DOG TIMER (see manual chapter 18) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900340struct s3c24x0_watchdog {
C Naumand9abba82010-10-26 23:04:31 +0900341 u32 wtcon;
342 u32 wtdat;
343 u32 wtcnt;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900344};
wdenk48b42612003-06-19 23:01:32 +0000345
wdenk48b42612003-06-19 23:01:32 +0000346/* IIS (see manual chapter 21) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900347struct s3c24x0_i2s {
wdenk48b42612003-06-19 23:01:32 +0000348#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900349 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900350 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900351 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900352 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900353 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900354 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900355 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900356 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900357 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900358 u16 iisfifo;
wdenk48b42612003-06-19 23:01:32 +0000359#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900360 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900361 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900362 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900363 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900364 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900365 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900366 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900367 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900368 u16 iisfifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900369 u16 res5;
wdenk48b42612003-06-19 23:01:32 +0000370#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900371};
wdenk48b42612003-06-19 23:01:32 +0000372
373
374/* I/O PORT (see manual chapter 9) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900375struct s3c24x0_gpio {
wdenk48b42612003-06-19 23:01:32 +0000376#ifdef CONFIG_S3C2400
C Naumand9abba82010-10-26 23:04:31 +0900377 u32 pacon;
378 u32 padat;
wdenk8bde7f72003-06-27 21:31:46 +0000379
C Naumand9abba82010-10-26 23:04:31 +0900380 u32 pbcon;
381 u32 pbdat;
382 u32 pbup;
wdenk48b42612003-06-19 23:01:32 +0000383
C Naumand9abba82010-10-26 23:04:31 +0900384 u32 pccon;
385 u32 pcdat;
386 u32 pcup;
wdenk48b42612003-06-19 23:01:32 +0000387
C Naumand9abba82010-10-26 23:04:31 +0900388 u32 pdcon;
389 u32 pddat;
390 u32 pdup;
wdenk48b42612003-06-19 23:01:32 +0000391
C Naumand9abba82010-10-26 23:04:31 +0900392 u32 pecon;
393 u32 pedat;
394 u32 peup;
wdenk48b42612003-06-19 23:01:32 +0000395
C Naumand9abba82010-10-26 23:04:31 +0900396 u32 pfcon;
397 u32 pfdat;
398 u32 pfup;
wdenk48b42612003-06-19 23:01:32 +0000399
C Naumand9abba82010-10-26 23:04:31 +0900400 u32 pgcon;
401 u32 pgdat;
402 u32 pgup;
wdenk48b42612003-06-19 23:01:32 +0000403
C Naumand9abba82010-10-26 23:04:31 +0900404 u32 opencr;
wdenk48b42612003-06-19 23:01:32 +0000405
C Naumand9abba82010-10-26 23:04:31 +0900406 u32 misccr;
407 u32 extint;
wdenk48b42612003-06-19 23:01:32 +0000408#endif
409#ifdef CONFIG_S3C2410
C Naumand9abba82010-10-26 23:04:31 +0900410 u32 gpacon;
411 u32 gpadat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900412 u32 res1[2];
C Naumand9abba82010-10-26 23:04:31 +0900413 u32 gpbcon;
414 u32 gpbdat;
415 u32 gpbup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900416 u32 res2;
C Naumand9abba82010-10-26 23:04:31 +0900417 u32 gpccon;
418 u32 gpcdat;
419 u32 gpcup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900420 u32 res3;
C Naumand9abba82010-10-26 23:04:31 +0900421 u32 gpdcon;
422 u32 gpddat;
423 u32 gpdup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900424 u32 res4;
C Naumand9abba82010-10-26 23:04:31 +0900425 u32 gpecon;
426 u32 gpedat;
427 u32 gpeup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900428 u32 res5;
C Naumand9abba82010-10-26 23:04:31 +0900429 u32 gpfcon;
430 u32 gpfdat;
431 u32 gpfup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900432 u32 res6;
C Naumand9abba82010-10-26 23:04:31 +0900433 u32 gpgcon;
434 u32 gpgdat;
435 u32 gpgup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900436 u32 res7;
C Naumand9abba82010-10-26 23:04:31 +0900437 u32 gphcon;
438 u32 gphdat;
439 u32 gphup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900440 u32 res8;
wdenk48b42612003-06-19 23:01:32 +0000441
C Naumand9abba82010-10-26 23:04:31 +0900442 u32 misccr;
443 u32 dclkcon;
444 u32 extint0;
445 u32 extint1;
446 u32 extint2;
447 u32 eintflt0;
448 u32 eintflt1;
449 u32 eintflt2;
450 u32 eintflt3;
451 u32 eintmask;
452 u32 eintpend;
453 u32 gstatus0;
454 u32 gstatus1;
455 u32 gstatus2;
456 u32 gstatus3;
457 u32 gstatus4;
458#endif
459#if defined(CONFIG_S3C2440)
460 u32 gpacon;
461 u32 gpadat;
462 u32 res1[2];
463 u32 gpbcon;
464 u32 gpbdat;
465 u32 gpbup;
466 u32 res2;
467 u32 gpccon;
468 u32 gpcdat;
469 u32 gpcup;
470 u32 res3;
471 u32 gpdcon;
472 u32 gpddat;
473 u32 gpdup;
474 u32 res4;
475 u32 gpecon;
476 u32 gpedat;
477 u32 gpeup;
478 u32 res5;
479 u32 gpfcon;
480 u32 gpfdat;
481 u32 gpfup;
482 u32 res6;
483 u32 gpgcon;
484 u32 gpgdat;
485 u32 gpgup;
486 u32 res7;
487 u32 gphcon;
488 u32 gphdat;
489 u32 gphup;
490 u32 res8;
491
492 u32 misccr;
493 u32 dclkcon;
494 u32 extint0;
495 u32 extint1;
496 u32 extint2;
497 u32 eintflt0;
498 u32 eintflt1;
499 u32 eintflt2;
500 u32 eintflt3;
501 u32 eintmask;
502 u32 eintpend;
503 u32 gstatus0;
504 u32 gstatus1;
505 u32 gstatus2;
506 u32 gstatus3;
507 u32 gstatus4;
508
509 u32 res9;
510 u32 dsc0;
511 u32 dsc1;
512 u32 mslcon;
513 u32 gpjcon;
514 u32 gpjdat;
515 u32 gpjup;
516 u32 res10;
wdenk48b42612003-06-19 23:01:32 +0000517#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900518};
wdenk48b42612003-06-19 23:01:32 +0000519
520
521/* RTC (see manual chapter 17) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900522struct s3c24x0_rtc {
wdenk48b42612003-06-19 23:01:32 +0000523#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900524 u8 res1[67];
C Naumand9abba82010-10-26 23:04:31 +0900525 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900526 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900527 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900528 u8 res3[11];
C Naumand9abba82010-10-26 23:04:31 +0900529 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900530 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900531 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900532 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900533 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900534 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900535 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900536 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900537 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900538 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900539 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900540 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900541 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900542 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900543 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900544 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900545 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900546 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900547 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900548 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900549 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900550 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900551 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900552 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900553 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900554 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900555 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900556 u8 res17[3];
C Naumand9abba82010-10-26 23:04:31 +0900557 u8 bcdyear;
wdenk48b42612003-06-19 23:01:32 +0000558#else /* little endian */
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900559 u8 res0[64];
C Naumand9abba82010-10-26 23:04:31 +0900560 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900561 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900562 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900563 u8 res2[11];
C Naumand9abba82010-10-26 23:04:31 +0900564 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900565 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900566 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900567 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900568 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900569 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900570 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900571 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900572 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900573 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900574 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900575 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900576 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900577 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900578 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900579 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900580 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900581 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900582 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900583 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900584 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900585 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900586 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900587 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900588 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900589 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900590 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900591 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900592 u8 bcdyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900593 u8 res17[3];
wdenk48b42612003-06-19 23:01:32 +0000594#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900595};
wdenk48b42612003-06-19 23:01:32 +0000596
597
598/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900599struct s3c2400_adc {
C Naumand9abba82010-10-26 23:04:31 +0900600 u32 adccon;
601 u32 adcdat;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900602};
wdenk48b42612003-06-19 23:01:32 +0000603
604
605/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900606struct s3c2410_adc {
C Naumand9abba82010-10-26 23:04:31 +0900607 u32 adccon;
608 u32 adctsc;
609 u32 adcdly;
610 u32 adcdat0;
611 u32 adcdat1;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900612};
wdenk48b42612003-06-19 23:01:32 +0000613
614
615/* SPI (see manual chapter 22) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900616struct s3c24x0_spi_channel {
C Naumand9abba82010-10-26 23:04:31 +0900617 u8 spcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900618 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900619 u8 spsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900620 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900621 u8 sppin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900622 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900623 u8 sppre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900624 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900625 u8 sptdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900626 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900627 u8 sprdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900628 u8 res6[3];
629 u8 res7[16];
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900630};
wdenk48b42612003-06-19 23:01:32 +0000631
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900632struct s3c24x0_spi {
633 struct s3c24x0_spi_channel ch[S3C24X0_SPI_CHANNELS];
634};
wdenk48b42612003-06-19 23:01:32 +0000635
636
637/* MMC INTERFACE (see S3C2400 manual chapter 19) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900638struct s3c2400_mmc {
wdenk48b42612003-06-19 23:01:32 +0000639#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900640 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900641 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900642 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900643 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900644 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900645 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900646 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900647 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900648 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900649 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900650 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900651 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900652 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900653 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900654 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900655 u8 mmcr7;
656 u32 mmrsp[4];
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900657 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900658 u8 mmcmd0;
659 u32 mmcmd1;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900660 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900661 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900662 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900663 u8 mmdat;
wdenk48b42612003-06-19 23:01:32 +0000664#else
C Naumand9abba82010-10-26 23:04:31 +0900665 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900666 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900667 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900668 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900669 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900670 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900671 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900672 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900673 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900674 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900675 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900676 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900677 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900678 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900679 u8 mmcr7;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900680 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900681 u32 mmrsp[4];
682 u8 mmcmd0;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900683 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900684 u32 mmcmd1;
685 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900686 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900687 u8 mmdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900688 u8 res11[3];
wdenk48b42612003-06-19 23:01:32 +0000689#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900690};
wdenk48b42612003-06-19 23:01:32 +0000691
692
693/* SD INTERFACE (see S3C2410 manual chapter 19) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900694struct s3c2410_sdi {
C Naumand9abba82010-10-26 23:04:31 +0900695 u32 sdicon;
696 u32 sdipre;
697 u32 sdicarg;
698 u32 sdiccon;
699 u32 sdicsta;
700 u32 sdirsp0;
701 u32 sdirsp1;
702 u32 sdirsp2;
703 u32 sdirsp3;
704 u32 sdidtimer;
705 u32 sdibsize;
706 u32 sdidcon;
707 u32 sdidcnt;
708 u32 sdidsta;
709 u32 sdifsta;
wdenk48b42612003-06-19 23:01:32 +0000710#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900711 u8 res[3];
C Naumand9abba82010-10-26 23:04:31 +0900712 u8 sdidat;
wdenk48b42612003-06-19 23:01:32 +0000713#else
C Naumand9abba82010-10-26 23:04:31 +0900714 u8 sdidat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900715 u8 res[3];
wdenk48b42612003-06-19 23:01:32 +0000716#endif
C Naumand9abba82010-10-26 23:04:31 +0900717 u32 sdiimsk;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900718};
wdenk48b42612003-06-19 23:01:32 +0000719
720#endif /*__S3C24X0_H__*/