blob: ca978c9bbcce95b91fe43ede0b267f84ff58f7da [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
346
347/* IIC (see manual chapter 20) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900348struct s3c24x0_i2c {
C Naumand9abba82010-10-26 23:04:31 +0900349 u32 iiccon;
350 u32 iicstat;
351 u32 iicadd;
352 u32 iicds;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900353};
wdenk48b42612003-06-19 23:01:32 +0000354
355
356/* IIS (see manual chapter 21) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900357struct s3c24x0_i2s {
wdenk48b42612003-06-19 23:01:32 +0000358#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900359 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900360 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900361 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900362 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900363 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900364 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900365 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900366 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900367 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900368 u16 iisfifo;
wdenk48b42612003-06-19 23:01:32 +0000369#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900370 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900371 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900372 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900373 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900374 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900375 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900376 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900377 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900378 u16 iisfifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900379 u16 res5;
wdenk48b42612003-06-19 23:01:32 +0000380#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900381};
wdenk48b42612003-06-19 23:01:32 +0000382
383
384/* I/O PORT (see manual chapter 9) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900385struct s3c24x0_gpio {
wdenk48b42612003-06-19 23:01:32 +0000386#ifdef CONFIG_S3C2400
C Naumand9abba82010-10-26 23:04:31 +0900387 u32 pacon;
388 u32 padat;
wdenk8bde7f72003-06-27 21:31:46 +0000389
C Naumand9abba82010-10-26 23:04:31 +0900390 u32 pbcon;
391 u32 pbdat;
392 u32 pbup;
wdenk48b42612003-06-19 23:01:32 +0000393
C Naumand9abba82010-10-26 23:04:31 +0900394 u32 pccon;
395 u32 pcdat;
396 u32 pcup;
wdenk48b42612003-06-19 23:01:32 +0000397
C Naumand9abba82010-10-26 23:04:31 +0900398 u32 pdcon;
399 u32 pddat;
400 u32 pdup;
wdenk48b42612003-06-19 23:01:32 +0000401
C Naumand9abba82010-10-26 23:04:31 +0900402 u32 pecon;
403 u32 pedat;
404 u32 peup;
wdenk48b42612003-06-19 23:01:32 +0000405
C Naumand9abba82010-10-26 23:04:31 +0900406 u32 pfcon;
407 u32 pfdat;
408 u32 pfup;
wdenk48b42612003-06-19 23:01:32 +0000409
C Naumand9abba82010-10-26 23:04:31 +0900410 u32 pgcon;
411 u32 pgdat;
412 u32 pgup;
wdenk48b42612003-06-19 23:01:32 +0000413
C Naumand9abba82010-10-26 23:04:31 +0900414 u32 opencr;
wdenk48b42612003-06-19 23:01:32 +0000415
C Naumand9abba82010-10-26 23:04:31 +0900416 u32 misccr;
417 u32 extint;
wdenk48b42612003-06-19 23:01:32 +0000418#endif
419#ifdef CONFIG_S3C2410
C Naumand9abba82010-10-26 23:04:31 +0900420 u32 gpacon;
421 u32 gpadat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900422 u32 res1[2];
C Naumand9abba82010-10-26 23:04:31 +0900423 u32 gpbcon;
424 u32 gpbdat;
425 u32 gpbup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900426 u32 res2;
C Naumand9abba82010-10-26 23:04:31 +0900427 u32 gpccon;
428 u32 gpcdat;
429 u32 gpcup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900430 u32 res3;
C Naumand9abba82010-10-26 23:04:31 +0900431 u32 gpdcon;
432 u32 gpddat;
433 u32 gpdup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900434 u32 res4;
C Naumand9abba82010-10-26 23:04:31 +0900435 u32 gpecon;
436 u32 gpedat;
437 u32 gpeup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900438 u32 res5;
C Naumand9abba82010-10-26 23:04:31 +0900439 u32 gpfcon;
440 u32 gpfdat;
441 u32 gpfup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900442 u32 res6;
C Naumand9abba82010-10-26 23:04:31 +0900443 u32 gpgcon;
444 u32 gpgdat;
445 u32 gpgup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900446 u32 res7;
C Naumand9abba82010-10-26 23:04:31 +0900447 u32 gphcon;
448 u32 gphdat;
449 u32 gphup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900450 u32 res8;
wdenk48b42612003-06-19 23:01:32 +0000451
C Naumand9abba82010-10-26 23:04:31 +0900452 u32 misccr;
453 u32 dclkcon;
454 u32 extint0;
455 u32 extint1;
456 u32 extint2;
457 u32 eintflt0;
458 u32 eintflt1;
459 u32 eintflt2;
460 u32 eintflt3;
461 u32 eintmask;
462 u32 eintpend;
463 u32 gstatus0;
464 u32 gstatus1;
465 u32 gstatus2;
466 u32 gstatus3;
467 u32 gstatus4;
468#endif
469#if defined(CONFIG_S3C2440)
470 u32 gpacon;
471 u32 gpadat;
472 u32 res1[2];
473 u32 gpbcon;
474 u32 gpbdat;
475 u32 gpbup;
476 u32 res2;
477 u32 gpccon;
478 u32 gpcdat;
479 u32 gpcup;
480 u32 res3;
481 u32 gpdcon;
482 u32 gpddat;
483 u32 gpdup;
484 u32 res4;
485 u32 gpecon;
486 u32 gpedat;
487 u32 gpeup;
488 u32 res5;
489 u32 gpfcon;
490 u32 gpfdat;
491 u32 gpfup;
492 u32 res6;
493 u32 gpgcon;
494 u32 gpgdat;
495 u32 gpgup;
496 u32 res7;
497 u32 gphcon;
498 u32 gphdat;
499 u32 gphup;
500 u32 res8;
501
502 u32 misccr;
503 u32 dclkcon;
504 u32 extint0;
505 u32 extint1;
506 u32 extint2;
507 u32 eintflt0;
508 u32 eintflt1;
509 u32 eintflt2;
510 u32 eintflt3;
511 u32 eintmask;
512 u32 eintpend;
513 u32 gstatus0;
514 u32 gstatus1;
515 u32 gstatus2;
516 u32 gstatus3;
517 u32 gstatus4;
518
519 u32 res9;
520 u32 dsc0;
521 u32 dsc1;
522 u32 mslcon;
523 u32 gpjcon;
524 u32 gpjdat;
525 u32 gpjup;
526 u32 res10;
wdenk48b42612003-06-19 23:01:32 +0000527#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900528};
wdenk48b42612003-06-19 23:01:32 +0000529
530
531/* RTC (see manual chapter 17) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900532struct s3c24x0_rtc {
wdenk48b42612003-06-19 23:01:32 +0000533#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900534 u8 res1[67];
C Naumand9abba82010-10-26 23:04:31 +0900535 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900536 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900537 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900538 u8 res3[11];
C Naumand9abba82010-10-26 23:04:31 +0900539 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900540 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900541 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900542 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900543 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900544 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900545 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900546 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900547 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900548 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900549 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900550 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900551 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900552 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900553 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900554 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900555 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900556 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900557 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900558 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900559 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900560 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900561 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900562 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900563 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900564 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900565 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900566 u8 res17[3];
C Naumand9abba82010-10-26 23:04:31 +0900567 u8 bcdyear;
wdenk48b42612003-06-19 23:01:32 +0000568#else /* little endian */
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900569 u8 res0[64];
C Naumand9abba82010-10-26 23:04:31 +0900570 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900571 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900572 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900573 u8 res2[11];
C Naumand9abba82010-10-26 23:04:31 +0900574 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900575 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900576 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900577 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900578 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900579 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900580 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900581 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900582 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900583 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900584 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900585 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900586 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900587 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900588 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900589 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900590 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900591 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900592 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900593 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900594 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900595 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900596 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900597 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900598 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900599 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900600 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900601 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900602 u8 bcdyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900603 u8 res17[3];
wdenk48b42612003-06-19 23:01:32 +0000604#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900605};
wdenk48b42612003-06-19 23:01:32 +0000606
607
608/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900609struct s3c2400_adc {
C Naumand9abba82010-10-26 23:04:31 +0900610 u32 adccon;
611 u32 adcdat;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900612};
wdenk48b42612003-06-19 23:01:32 +0000613
614
615/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900616struct s3c2410_adc {
C Naumand9abba82010-10-26 23:04:31 +0900617 u32 adccon;
618 u32 adctsc;
619 u32 adcdly;
620 u32 adcdat0;
621 u32 adcdat1;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900622};
wdenk48b42612003-06-19 23:01:32 +0000623
624
625/* SPI (see manual chapter 22) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900626struct s3c24x0_spi_channel {
C Naumand9abba82010-10-26 23:04:31 +0900627 u8 spcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900628 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900629 u8 spsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900630 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900631 u8 sppin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900632 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900633 u8 sppre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900634 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900635 u8 sptdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900636 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900637 u8 sprdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900638 u8 res6[3];
639 u8 res7[16];
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900640};
wdenk48b42612003-06-19 23:01:32 +0000641
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900642struct s3c24x0_spi {
643 struct s3c24x0_spi_channel ch[S3C24X0_SPI_CHANNELS];
644};
wdenk48b42612003-06-19 23:01:32 +0000645
646
647/* MMC INTERFACE (see S3C2400 manual chapter 19) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900648struct s3c2400_mmc {
wdenk48b42612003-06-19 23:01:32 +0000649#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900650 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900651 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900652 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900653 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900654 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900655 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900656 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900657 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900658 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900659 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900660 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900661 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900662 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900663 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900664 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900665 u8 mmcr7;
666 u32 mmrsp[4];
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900667 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900668 u8 mmcmd0;
669 u32 mmcmd1;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900670 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900671 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900672 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900673 u8 mmdat;
wdenk48b42612003-06-19 23:01:32 +0000674#else
C Naumand9abba82010-10-26 23:04:31 +0900675 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900676 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900677 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900678 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900679 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900680 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900681 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900682 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900683 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900684 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900685 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900686 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900687 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900688 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900689 u8 mmcr7;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900690 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900691 u32 mmrsp[4];
692 u8 mmcmd0;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900693 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900694 u32 mmcmd1;
695 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900696 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900697 u8 mmdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900698 u8 res11[3];
wdenk48b42612003-06-19 23:01:32 +0000699#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900700};
wdenk48b42612003-06-19 23:01:32 +0000701
702
703/* SD INTERFACE (see S3C2410 manual chapter 19) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900704struct s3c2410_sdi {
C Naumand9abba82010-10-26 23:04:31 +0900705 u32 sdicon;
706 u32 sdipre;
707 u32 sdicarg;
708 u32 sdiccon;
709 u32 sdicsta;
710 u32 sdirsp0;
711 u32 sdirsp1;
712 u32 sdirsp2;
713 u32 sdirsp3;
714 u32 sdidtimer;
715 u32 sdibsize;
716 u32 sdidcon;
717 u32 sdidcnt;
718 u32 sdidsta;
719 u32 sdifsta;
wdenk48b42612003-06-19 23:01:32 +0000720#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900721 u8 res[3];
C Naumand9abba82010-10-26 23:04:31 +0900722 u8 sdidat;
wdenk48b42612003-06-19 23:01:32 +0000723#else
C Naumand9abba82010-10-26 23:04:31 +0900724 u8 sdidat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900725 u8 res[3];
wdenk48b42612003-06-19 23:01:32 +0000726#endif
C Naumand9abba82010-10-26 23:04:31 +0900727 u32 sdiimsk;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900728};
wdenk48b42612003-06-19 23:01:32 +0000729
730#endif /*__S3C24X0_H__*/