blob: 86d720c06e9cb8c5d8cbd8f8a83a27f3ec989f32 [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 *
Wolfgang Denk1a459662013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
wdenk48b42612003-06-19 23:01:32 +00006 */
7
8/************************************************
9 * NAME : s3c24x0.h
10 * Version : 31.3.2003
11 *
12 * common stuff for SAMSUNG S3C24X0 SoC
13 ************************************************/
14
15#ifndef __S3C24X0_H__
16#define __S3C24X0_H__
17
wdenk48b42612003-06-19 23:01:32 +000018/* Memory controller (see manual chapter 5) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090019struct s3c24x0_memctl {
C Naumand9abba82010-10-26 23:04:31 +090020 u32 bwscon;
21 u32 bankcon[8];
22 u32 refresh;
23 u32 banksize;
24 u32 mrsrb6;
25 u32 mrsrb7;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090026};
wdenk48b42612003-06-19 23:01:32 +000027
28
29/* USB HOST (see manual chapter 12) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090030struct s3c24x0_usb_host {
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +090031 u32 HcRevision;
32 u32 HcControl;
33 u32 HcCommonStatus;
34 u32 HcInterruptStatus;
35 u32 HcInterruptEnable;
36 u32 HcInterruptDisable;
37 u32 HcHCCA;
38 u32 HcPeriodCuttendED;
39 u32 HcControlHeadED;
40 u32 HcControlCurrentED;
41 u32 HcBulkHeadED;
42 u32 HcBuldCurrentED;
43 u32 HcDoneHead;
44 u32 HcRmInterval;
45 u32 HcFmRemaining;
46 u32 HcFmNumber;
47 u32 HcPeriodicStart;
48 u32 HcLSThreshold;
49 u32 HcRhDescriptorA;
50 u32 HcRhDescriptorB;
51 u32 HcRhStatus;
52 u32 HcRhPortStatus1;
53 u32 HcRhPortStatus2;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090054};
wdenk48b42612003-06-19 23:01:32 +000055
56
57/* INTERRUPT (see manual chapter 14) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090058struct s3c24x0_interrupt {
C Naumand9abba82010-10-26 23:04:31 +090059 u32 srcpnd;
60 u32 intmod;
61 u32 intmsk;
62 u32 priority;
63 u32 intpnd;
64 u32 intoffset;
65#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
66 u32 subsrcpnd;
67 u32 intsubmsk;
wdenk48b42612003-06-19 23:01:32 +000068#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090069};
wdenk48b42612003-06-19 23:01:32 +000070
71
72/* DMAS (see manual chapter 8) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090073struct s3c24x0_dma {
C Naumand9abba82010-10-26 23:04:31 +090074 u32 disrc;
75#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
76 u32 disrcc;
wdenk48b42612003-06-19 23:01:32 +000077#endif
C Naumand9abba82010-10-26 23:04:31 +090078 u32 didst;
79#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
80 u32 didstc;
wdenk48b42612003-06-19 23:01:32 +000081#endif
C Naumand9abba82010-10-26 23:04:31 +090082 u32 dcon;
83 u32 dstat;
84 u32 dcsrc;
85 u32 dcdst;
86 u32 dmasktrig;
87#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) \
88 || defined(CONFIG_S3C2440)
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +090089 u32 res[1];
wdenk48b42612003-06-19 23:01:32 +000090#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090091};
wdenk48b42612003-06-19 23:01:32 +000092
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +090093struct s3c24x0_dmas {
94 struct s3c24x0_dma dma[4];
95};
wdenk48b42612003-06-19 23:01:32 +000096
97
98/* CLOCK & POWER MANAGEMENT (see S3C2400 manual chapter 6) */
99/* (see S3C2410 manual chapter 7) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900100struct s3c24x0_clock_power {
C Naumand9abba82010-10-26 23:04:31 +0900101 u32 locktime;
102 u32 mpllcon;
103 u32 upllcon;
104 u32 clkcon;
105 u32 clkslow;
106 u32 clkdivn;
107#if defined(CONFIG_S3C2440)
108 u32 camdivn;
109#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900110};
wdenk48b42612003-06-19 23:01:32 +0000111
112
113/* LCD CONTROLLER (see manual chapter 15) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900114struct s3c24x0_lcd {
C Naumand9abba82010-10-26 23:04:31 +0900115 u32 lcdcon1;
116 u32 lcdcon2;
117 u32 lcdcon3;
118 u32 lcdcon4;
119 u32 lcdcon5;
120 u32 lcdsaddr1;
121 u32 lcdsaddr2;
122 u32 lcdsaddr3;
123 u32 redlut;
124 u32 greenlut;
125 u32 bluelut;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900126 u32 res[8];
C Naumand9abba82010-10-26 23:04:31 +0900127 u32 dithmode;
128 u32 tpal;
129#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
130 u32 lcdintpnd;
131 u32 lcdsrcpnd;
132 u32 lcdintmsk;
133 u32 lpcsel;
wdenk48b42612003-06-19 23:01:32 +0000134#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900135};
wdenk48b42612003-06-19 23:01:32 +0000136
137
C Naumand9abba82010-10-26 23:04:31 +0900138#ifdef CONFIG_S3C2410
wdenk48b42612003-06-19 23:01:32 +0000139/* NAND FLASH (see S3C2410 manual chapter 6) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900140struct s3c2410_nand {
C Naumand9abba82010-10-26 23:04:31 +0900141 u32 nfconf;
142 u32 nfcmd;
143 u32 nfaddr;
144 u32 nfdata;
145 u32 nfstat;
146 u32 nfecc;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900147};
C Naumand9abba82010-10-26 23:04:31 +0900148#endif
149#ifdef CONFIG_S3C2440
150/* NAND FLASH (see S3C2440 manual chapter 6) */
151struct s3c2440_nand {
152 u32 nfconf;
153 u32 nfcont;
154 u32 nfcmd;
155 u32 nfaddr;
156 u32 nfdata;
157 u32 nfeccd0;
158 u32 nfeccd1;
159 u32 nfeccd;
160 u32 nfstat;
161 u32 nfstat0;
162 u32 nfstat1;
163};
164#endif
wdenk48b42612003-06-19 23:01:32 +0000165
166
167/* UART (see manual chapter 11) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900168struct s3c24x0_uart {
C Naumand9abba82010-10-26 23:04:31 +0900169 u32 ulcon;
170 u32 ucon;
171 u32 ufcon;
172 u32 umcon;
173 u32 utrstat;
174 u32 uerstat;
175 u32 ufstat;
176 u32 umstat;
wdenk48b42612003-06-19 23:01:32 +0000177#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900178 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900179 u8 utxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900180 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900181 u8 urxh;
wdenk48b42612003-06-19 23:01:32 +0000182#else /* Little Endian */
C Naumand9abba82010-10-26 23:04:31 +0900183 u8 utxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900184 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900185 u8 urxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900186 u8 res2[3];
wdenk48b42612003-06-19 23:01:32 +0000187#endif
C Naumand9abba82010-10-26 23:04:31 +0900188 u32 ubrdiv;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900189};
wdenk48b42612003-06-19 23:01:32 +0000190
191
192/* PWM TIMER (see manual chapter 10) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900193struct s3c24x0_timer {
C Naumand9abba82010-10-26 23:04:31 +0900194 u32 tcntb;
195 u32 tcmpb;
196 u32 tcnto;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900197};
wdenk48b42612003-06-19 23:01:32 +0000198
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900199struct s3c24x0_timers {
C Naumand9abba82010-10-26 23:04:31 +0900200 u32 tcfg0;
201 u32 tcfg1;
202 u32 tcon;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900203 struct s3c24x0_timer ch[4];
C Naumand9abba82010-10-26 23:04:31 +0900204 u32 tcntb4;
205 u32 tcnto4;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900206};
wdenk48b42612003-06-19 23:01:32 +0000207
208
209/* USB DEVICE (see manual chapter 13) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900210struct s3c24x0_usb_dev_fifos {
wdenk48b42612003-06-19 23:01:32 +0000211#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900212 u8 res[3];
C Naumand9abba82010-10-26 23:04:31 +0900213 u8 ep_fifo_reg;
wdenk48b42612003-06-19 23:01:32 +0000214#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900215 u8 ep_fifo_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900216 u8 res[3];
wdenk48b42612003-06-19 23:01:32 +0000217#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900218};
wdenk48b42612003-06-19 23:01:32 +0000219
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900220struct s3c24x0_usb_dev_dmas {
wdenk48b42612003-06-19 23:01:32 +0000221#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900222 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900223 u8 ep_dma_con;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900224 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900225 u8 ep_dma_unit;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900226 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900227 u8 ep_dma_fifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900228 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900229 u8 ep_dma_ttc_l;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900230 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900231 u8 ep_dma_ttc_m;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900232 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900233 u8 ep_dma_ttc_h;
wdenk48b42612003-06-19 23:01:32 +0000234#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900235 u8 ep_dma_con;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900236 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900237 u8 ep_dma_unit;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900238 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900239 u8 ep_dma_fifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900240 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900241 u8 ep_dma_ttc_l;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900242 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900243 u8 ep_dma_ttc_m;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900244 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900245 u8 ep_dma_ttc_h;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900246 u8 res6[3];
wdenk48b42612003-06-19 23:01:32 +0000247#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900248};
wdenk48b42612003-06-19 23:01:32 +0000249
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900250struct s3c24x0_usb_device {
wdenk48b42612003-06-19 23:01:32 +0000251#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900252 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900253 u8 func_addr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900254 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900255 u8 pwr_reg;
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_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900258 u8 res4[15];
C Naumand9abba82010-10-26 23:04:31 +0900259 u8 usb_int_reg;
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_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900262 u8 res6[15];
C Naumand9abba82010-10-26 23:04:31 +0900263 u8 usb_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900264 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900265 u8 frame_num1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900266 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900267 u8 frame_num2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900268 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900269 u8 index_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900270 u8 res10[7];
C Naumand9abba82010-10-26 23:04:31 +0900271 u8 maxp_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900272 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900273 u8 ep0_csr_in_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900274 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900275 u8 in_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900276 u8 res13[7];
C Naumand9abba82010-10-26 23:04:31 +0900277 u8 out_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900278 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900279 u8 out_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900280 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900281 u8 out_fifo_cnt1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900282 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900283 u8 out_fifo_cnt2_reg;
wdenk48b42612003-06-19 23:01:32 +0000284#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900285 u8 func_addr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900286 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900287 u8 pwr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900288 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900289 u8 ep_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900290 u8 res3[15];
C Naumand9abba82010-10-26 23:04:31 +0900291 u8 usb_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900292 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900293 u8 ep_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900294 u8 res5[15];
C Naumand9abba82010-10-26 23:04:31 +0900295 u8 usb_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900296 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900297 u8 frame_num1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900298 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900299 u8 frame_num2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900300 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900301 u8 index_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900302 u8 res9[7];
C Naumand9abba82010-10-26 23:04:31 +0900303 u8 maxp_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900304 u8 res10[7];
C Naumand9abba82010-10-26 23:04:31 +0900305 u8 ep0_csr_in_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900306 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900307 u8 in_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900308 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900309 u8 out_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900310 u8 res13[7];
C Naumand9abba82010-10-26 23:04:31 +0900311 u8 out_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900312 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900313 u8 out_fifo_cnt1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900314 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900315 u8 out_fifo_cnt2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900316 u8 res16[3];
wdenk48b42612003-06-19 23:01:32 +0000317#endif /* __BIG_ENDIAN */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900318 struct s3c24x0_usb_dev_fifos fifo[5];
319 struct s3c24x0_usb_dev_dmas dma[5];
320};
wdenk48b42612003-06-19 23:01:32 +0000321
322
323/* WATCH DOG TIMER (see manual chapter 18) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900324struct s3c24x0_watchdog {
C Naumand9abba82010-10-26 23:04:31 +0900325 u32 wtcon;
326 u32 wtdat;
327 u32 wtcnt;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900328};
wdenk48b42612003-06-19 23:01:32 +0000329
wdenk48b42612003-06-19 23:01:32 +0000330/* IIS (see manual chapter 21) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900331struct s3c24x0_i2s {
wdenk48b42612003-06-19 23:01:32 +0000332#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900333 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900334 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900335 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900336 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900337 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900338 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900339 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900340 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900341 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900342 u16 iisfifo;
wdenk48b42612003-06-19 23:01:32 +0000343#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900344 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900345 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900346 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900347 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900348 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900349 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900350 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900351 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900352 u16 iisfifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900353 u16 res5;
wdenk48b42612003-06-19 23:01:32 +0000354#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900355};
wdenk48b42612003-06-19 23:01:32 +0000356
357
358/* I/O PORT (see manual chapter 9) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900359struct s3c24x0_gpio {
wdenk48b42612003-06-19 23:01:32 +0000360#ifdef CONFIG_S3C2400
C Naumand9abba82010-10-26 23:04:31 +0900361 u32 pacon;
362 u32 padat;
wdenk8bde7f72003-06-27 21:31:46 +0000363
C Naumand9abba82010-10-26 23:04:31 +0900364 u32 pbcon;
365 u32 pbdat;
366 u32 pbup;
wdenk48b42612003-06-19 23:01:32 +0000367
C Naumand9abba82010-10-26 23:04:31 +0900368 u32 pccon;
369 u32 pcdat;
370 u32 pcup;
wdenk48b42612003-06-19 23:01:32 +0000371
C Naumand9abba82010-10-26 23:04:31 +0900372 u32 pdcon;
373 u32 pddat;
374 u32 pdup;
wdenk48b42612003-06-19 23:01:32 +0000375
C Naumand9abba82010-10-26 23:04:31 +0900376 u32 pecon;
377 u32 pedat;
378 u32 peup;
wdenk48b42612003-06-19 23:01:32 +0000379
C Naumand9abba82010-10-26 23:04:31 +0900380 u32 pfcon;
381 u32 pfdat;
382 u32 pfup;
wdenk48b42612003-06-19 23:01:32 +0000383
C Naumand9abba82010-10-26 23:04:31 +0900384 u32 pgcon;
385 u32 pgdat;
386 u32 pgup;
wdenk48b42612003-06-19 23:01:32 +0000387
C Naumand9abba82010-10-26 23:04:31 +0900388 u32 opencr;
wdenk48b42612003-06-19 23:01:32 +0000389
C Naumand9abba82010-10-26 23:04:31 +0900390 u32 misccr;
391 u32 extint;
wdenk48b42612003-06-19 23:01:32 +0000392#endif
393#ifdef CONFIG_S3C2410
C Naumand9abba82010-10-26 23:04:31 +0900394 u32 gpacon;
395 u32 gpadat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900396 u32 res1[2];
C Naumand9abba82010-10-26 23:04:31 +0900397 u32 gpbcon;
398 u32 gpbdat;
399 u32 gpbup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900400 u32 res2;
C Naumand9abba82010-10-26 23:04:31 +0900401 u32 gpccon;
402 u32 gpcdat;
403 u32 gpcup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900404 u32 res3;
C Naumand9abba82010-10-26 23:04:31 +0900405 u32 gpdcon;
406 u32 gpddat;
407 u32 gpdup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900408 u32 res4;
C Naumand9abba82010-10-26 23:04:31 +0900409 u32 gpecon;
410 u32 gpedat;
411 u32 gpeup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900412 u32 res5;
C Naumand9abba82010-10-26 23:04:31 +0900413 u32 gpfcon;
414 u32 gpfdat;
415 u32 gpfup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900416 u32 res6;
C Naumand9abba82010-10-26 23:04:31 +0900417 u32 gpgcon;
418 u32 gpgdat;
419 u32 gpgup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900420 u32 res7;
C Naumand9abba82010-10-26 23:04:31 +0900421 u32 gphcon;
422 u32 gphdat;
423 u32 gphup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900424 u32 res8;
wdenk48b42612003-06-19 23:01:32 +0000425
C Naumand9abba82010-10-26 23:04:31 +0900426 u32 misccr;
427 u32 dclkcon;
428 u32 extint0;
429 u32 extint1;
430 u32 extint2;
431 u32 eintflt0;
432 u32 eintflt1;
433 u32 eintflt2;
434 u32 eintflt3;
435 u32 eintmask;
436 u32 eintpend;
437 u32 gstatus0;
438 u32 gstatus1;
439 u32 gstatus2;
440 u32 gstatus3;
441 u32 gstatus4;
442#endif
443#if defined(CONFIG_S3C2440)
444 u32 gpacon;
445 u32 gpadat;
446 u32 res1[2];
447 u32 gpbcon;
448 u32 gpbdat;
449 u32 gpbup;
450 u32 res2;
451 u32 gpccon;
452 u32 gpcdat;
453 u32 gpcup;
454 u32 res3;
455 u32 gpdcon;
456 u32 gpddat;
457 u32 gpdup;
458 u32 res4;
459 u32 gpecon;
460 u32 gpedat;
461 u32 gpeup;
462 u32 res5;
463 u32 gpfcon;
464 u32 gpfdat;
465 u32 gpfup;
466 u32 res6;
467 u32 gpgcon;
468 u32 gpgdat;
469 u32 gpgup;
470 u32 res7;
471 u32 gphcon;
472 u32 gphdat;
473 u32 gphup;
474 u32 res8;
475
476 u32 misccr;
477 u32 dclkcon;
478 u32 extint0;
479 u32 extint1;
480 u32 extint2;
481 u32 eintflt0;
482 u32 eintflt1;
483 u32 eintflt2;
484 u32 eintflt3;
485 u32 eintmask;
486 u32 eintpend;
487 u32 gstatus0;
488 u32 gstatus1;
489 u32 gstatus2;
490 u32 gstatus3;
491 u32 gstatus4;
492
493 u32 res9;
494 u32 dsc0;
495 u32 dsc1;
496 u32 mslcon;
497 u32 gpjcon;
498 u32 gpjdat;
499 u32 gpjup;
500 u32 res10;
wdenk48b42612003-06-19 23:01:32 +0000501#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900502};
wdenk48b42612003-06-19 23:01:32 +0000503
504
505/* RTC (see manual chapter 17) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900506struct s3c24x0_rtc {
wdenk48b42612003-06-19 23:01:32 +0000507#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900508 u8 res1[67];
C Naumand9abba82010-10-26 23:04:31 +0900509 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900510 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900511 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900512 u8 res3[11];
C Naumand9abba82010-10-26 23:04:31 +0900513 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900514 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900515 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900516 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900517 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900518 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900519 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900520 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900521 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900522 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900523 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900524 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900525 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900526 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900527 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900528 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900529 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900530 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900531 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900532 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900533 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900534 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900535 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900536 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900537 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900538 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900539 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900540 u8 res17[3];
C Naumand9abba82010-10-26 23:04:31 +0900541 u8 bcdyear;
wdenk48b42612003-06-19 23:01:32 +0000542#else /* little endian */
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900543 u8 res0[64];
C Naumand9abba82010-10-26 23:04:31 +0900544 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900545 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900546 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900547 u8 res2[11];
C Naumand9abba82010-10-26 23:04:31 +0900548 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900549 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900550 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900551 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900552 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900553 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900554 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900555 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900556 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900557 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900558 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900559 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900560 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900561 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900562 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900563 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900564 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900565 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900566 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900567 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900568 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900569 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900570 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900571 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900572 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900573 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900574 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900575 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900576 u8 bcdyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900577 u8 res17[3];
wdenk48b42612003-06-19 23:01:32 +0000578#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900579};
wdenk48b42612003-06-19 23:01:32 +0000580
581
582/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900583struct s3c2400_adc {
C Naumand9abba82010-10-26 23:04:31 +0900584 u32 adccon;
585 u32 adcdat;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900586};
wdenk48b42612003-06-19 23:01:32 +0000587
588
589/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900590struct s3c2410_adc {
C Naumand9abba82010-10-26 23:04:31 +0900591 u32 adccon;
592 u32 adctsc;
593 u32 adcdly;
594 u32 adcdat0;
595 u32 adcdat1;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900596};
wdenk48b42612003-06-19 23:01:32 +0000597
598
599/* SPI (see manual chapter 22) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900600struct s3c24x0_spi_channel {
C Naumand9abba82010-10-26 23:04:31 +0900601 u8 spcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900602 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900603 u8 spsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900604 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900605 u8 sppin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900606 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900607 u8 sppre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900608 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900609 u8 sptdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900610 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900611 u8 sprdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900612 u8 res6[3];
613 u8 res7[16];
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900614};
wdenk48b42612003-06-19 23:01:32 +0000615
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900616struct s3c24x0_spi {
617 struct s3c24x0_spi_channel ch[S3C24X0_SPI_CHANNELS];
618};
wdenk48b42612003-06-19 23:01:32 +0000619
620
621/* MMC INTERFACE (see S3C2400 manual chapter 19) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900622struct s3c2400_mmc {
wdenk48b42612003-06-19 23:01:32 +0000623#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900624 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900625 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900626 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900627 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900628 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900629 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900630 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900631 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900632 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900633 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900634 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900635 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900636 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900637 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900638 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900639 u8 mmcr7;
640 u32 mmrsp[4];
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900641 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900642 u8 mmcmd0;
643 u32 mmcmd1;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900644 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900645 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900646 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900647 u8 mmdat;
wdenk48b42612003-06-19 23:01:32 +0000648#else
C Naumand9abba82010-10-26 23:04:31 +0900649 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900650 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900651 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900652 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900653 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900654 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900655 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900656 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900657 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900658 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900659 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900660 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900661 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900662 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900663 u8 mmcr7;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900664 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900665 u32 mmrsp[4];
666 u8 mmcmd0;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900667 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900668 u32 mmcmd1;
669 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900670 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900671 u8 mmdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900672 u8 res11[3];
wdenk48b42612003-06-19 23:01:32 +0000673#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900674};
wdenk48b42612003-06-19 23:01:32 +0000675
676
677/* SD INTERFACE (see S3C2410 manual chapter 19) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900678struct s3c2410_sdi {
C Naumand9abba82010-10-26 23:04:31 +0900679 u32 sdicon;
680 u32 sdipre;
681 u32 sdicarg;
682 u32 sdiccon;
683 u32 sdicsta;
684 u32 sdirsp0;
685 u32 sdirsp1;
686 u32 sdirsp2;
687 u32 sdirsp3;
688 u32 sdidtimer;
689 u32 sdibsize;
690 u32 sdidcon;
691 u32 sdidcnt;
692 u32 sdidsta;
693 u32 sdifsta;
wdenk48b42612003-06-19 23:01:32 +0000694#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900695 u8 res[3];
C Naumand9abba82010-10-26 23:04:31 +0900696 u8 sdidat;
wdenk48b42612003-06-19 23:01:32 +0000697#else
C Naumand9abba82010-10-26 23:04:31 +0900698 u8 sdidat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900699 u8 res[3];
wdenk48b42612003-06-19 23:01:32 +0000700#endif
C Naumand9abba82010-10-26 23:04:31 +0900701 u32 sdiimsk;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900702};
wdenk48b42612003-06-19 23:01:32 +0000703
704#endif /*__S3C24X0_H__*/