blob: 2dae9fc3d74b0b7bee471a51365ae4bb32230afc [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
Marek Vasutb19157b2014-10-11 18:42:52 +0200138/* NAND FLASH (see manual chapter 6) */
139struct s3c24x0_nand {
C Naumand9abba82010-10-26 23:04:31 +0900140 u32 nfconf;
Marek Vasutb19157b2014-10-11 18:42:52 +0200141#ifndef CONFIG_S3C2410
C Naumand9abba82010-10-26 23:04:31 +0900142 u32 nfcont;
Marek Vasutb19157b2014-10-11 18:42:52 +0200143#endif
C Naumand9abba82010-10-26 23:04:31 +0900144 u32 nfcmd;
145 u32 nfaddr;
146 u32 nfdata;
Marek Vasutb19157b2014-10-11 18:42:52 +0200147#ifndef CONFIG_S3C2410
C Naumand9abba82010-10-26 23:04:31 +0900148 u32 nfeccd0;
149 u32 nfeccd1;
150 u32 nfeccd;
Marek Vasutb19157b2014-10-11 18:42:52 +0200151#endif
C Naumand9abba82010-10-26 23:04:31 +0900152 u32 nfstat;
Marek Vasutb19157b2014-10-11 18:42:52 +0200153#ifdef CONFIG_S3C2410
154 u32 nfecc;
155#else
C Naumand9abba82010-10-26 23:04:31 +0900156 u32 nfstat0;
157 u32 nfstat1;
Marek Vasutb19157b2014-10-11 18:42:52 +0200158 u32 nfmecc0;
159 u32 nfmecc1;
160 u32 nfsecc;
161 u32 nfsblk;
162 u32 nfeblk;
C Naumand9abba82010-10-26 23:04:31 +0900163#endif
Marek Vasutb19157b2014-10-11 18:42:52 +0200164};
wdenk48b42612003-06-19 23:01:32 +0000165
166/* UART (see manual chapter 11) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900167struct s3c24x0_uart {
C Naumand9abba82010-10-26 23:04:31 +0900168 u32 ulcon;
169 u32 ucon;
170 u32 ufcon;
171 u32 umcon;
172 u32 utrstat;
173 u32 uerstat;
174 u32 ufstat;
175 u32 umstat;
wdenk48b42612003-06-19 23:01:32 +0000176#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900177 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900178 u8 utxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900179 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900180 u8 urxh;
wdenk48b42612003-06-19 23:01:32 +0000181#else /* Little Endian */
C Naumand9abba82010-10-26 23:04:31 +0900182 u8 utxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900183 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900184 u8 urxh;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900185 u8 res2[3];
wdenk48b42612003-06-19 23:01:32 +0000186#endif
C Naumand9abba82010-10-26 23:04:31 +0900187 u32 ubrdiv;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900188};
wdenk48b42612003-06-19 23:01:32 +0000189
190
191/* PWM TIMER (see manual chapter 10) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900192struct s3c24x0_timer {
C Naumand9abba82010-10-26 23:04:31 +0900193 u32 tcntb;
194 u32 tcmpb;
195 u32 tcnto;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900196};
wdenk48b42612003-06-19 23:01:32 +0000197
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900198struct s3c24x0_timers {
C Naumand9abba82010-10-26 23:04:31 +0900199 u32 tcfg0;
200 u32 tcfg1;
201 u32 tcon;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900202 struct s3c24x0_timer ch[4];
C Naumand9abba82010-10-26 23:04:31 +0900203 u32 tcntb4;
204 u32 tcnto4;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900205};
wdenk48b42612003-06-19 23:01:32 +0000206
207
208/* USB DEVICE (see manual chapter 13) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900209struct s3c24x0_usb_dev_fifos {
wdenk48b42612003-06-19 23:01:32 +0000210#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900211 u8 res[3];
C Naumand9abba82010-10-26 23:04:31 +0900212 u8 ep_fifo_reg;
wdenk48b42612003-06-19 23:01:32 +0000213#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900214 u8 ep_fifo_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900215 u8 res[3];
wdenk48b42612003-06-19 23:01:32 +0000216#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900217};
wdenk48b42612003-06-19 23:01:32 +0000218
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900219struct s3c24x0_usb_dev_dmas {
wdenk48b42612003-06-19 23:01:32 +0000220#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900221 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900222 u8 ep_dma_con;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900223 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900224 u8 ep_dma_unit;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900225 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900226 u8 ep_dma_fifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900227 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900228 u8 ep_dma_ttc_l;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900229 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900230 u8 ep_dma_ttc_m;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900231 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900232 u8 ep_dma_ttc_h;
wdenk48b42612003-06-19 23:01:32 +0000233#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900234 u8 ep_dma_con;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900235 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900236 u8 ep_dma_unit;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900237 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900238 u8 ep_dma_fifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900239 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900240 u8 ep_dma_ttc_l;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900241 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900242 u8 ep_dma_ttc_m;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900243 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900244 u8 ep_dma_ttc_h;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900245 u8 res6[3];
wdenk48b42612003-06-19 23:01:32 +0000246#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900247};
wdenk48b42612003-06-19 23:01:32 +0000248
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900249struct s3c24x0_usb_device {
wdenk48b42612003-06-19 23:01:32 +0000250#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900251 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900252 u8 func_addr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900253 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900254 u8 pwr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900255 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900256 u8 ep_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900257 u8 res4[15];
C Naumand9abba82010-10-26 23:04:31 +0900258 u8 usb_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900259 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900260 u8 ep_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900261 u8 res6[15];
C Naumand9abba82010-10-26 23:04:31 +0900262 u8 usb_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900263 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900264 u8 frame_num1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900265 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900266 u8 frame_num2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900267 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900268 u8 index_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900269 u8 res10[7];
C Naumand9abba82010-10-26 23:04:31 +0900270 u8 maxp_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900271 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900272 u8 ep0_csr_in_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900273 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900274 u8 in_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900275 u8 res13[7];
C Naumand9abba82010-10-26 23:04:31 +0900276 u8 out_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900277 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900278 u8 out_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900279 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900280 u8 out_fifo_cnt1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900281 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900282 u8 out_fifo_cnt2_reg;
wdenk48b42612003-06-19 23:01:32 +0000283#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900284 u8 func_addr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900285 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900286 u8 pwr_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900287 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900288 u8 ep_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900289 u8 res3[15];
C Naumand9abba82010-10-26 23:04:31 +0900290 u8 usb_int_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900291 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900292 u8 ep_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900293 u8 res5[15];
C Naumand9abba82010-10-26 23:04:31 +0900294 u8 usb_int_en_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900295 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900296 u8 frame_num1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900297 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900298 u8 frame_num2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900299 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900300 u8 index_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900301 u8 res9[7];
C Naumand9abba82010-10-26 23:04:31 +0900302 u8 maxp_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900303 u8 res10[7];
C Naumand9abba82010-10-26 23:04:31 +0900304 u8 ep0_csr_in_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900305 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900306 u8 in_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900307 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900308 u8 out_csr1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900309 u8 res13[7];
C Naumand9abba82010-10-26 23:04:31 +0900310 u8 out_csr2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900311 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900312 u8 out_fifo_cnt1_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900313 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900314 u8 out_fifo_cnt2_reg;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900315 u8 res16[3];
wdenk48b42612003-06-19 23:01:32 +0000316#endif /* __BIG_ENDIAN */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900317 struct s3c24x0_usb_dev_fifos fifo[5];
318 struct s3c24x0_usb_dev_dmas dma[5];
319};
wdenk48b42612003-06-19 23:01:32 +0000320
321
322/* WATCH DOG TIMER (see manual chapter 18) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900323struct s3c24x0_watchdog {
C Naumand9abba82010-10-26 23:04:31 +0900324 u32 wtcon;
325 u32 wtdat;
326 u32 wtcnt;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900327};
wdenk48b42612003-06-19 23:01:32 +0000328
wdenk48b42612003-06-19 23:01:32 +0000329/* IIS (see manual chapter 21) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900330struct s3c24x0_i2s {
wdenk48b42612003-06-19 23:01:32 +0000331#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900332 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900333 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900334 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900335 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900336 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900337 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900338 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900339 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900340 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900341 u16 iisfifo;
wdenk48b42612003-06-19 23:01:32 +0000342#else /* little endian */
C Naumand9abba82010-10-26 23:04:31 +0900343 u16 iiscon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900344 u16 res1;
C Naumand9abba82010-10-26 23:04:31 +0900345 u16 iismod;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900346 u16 res2;
C Naumand9abba82010-10-26 23:04:31 +0900347 u16 iispsr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900348 u16 res3;
C Naumand9abba82010-10-26 23:04:31 +0900349 u16 iisfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900350 u16 res4;
C Naumand9abba82010-10-26 23:04:31 +0900351 u16 iisfifo;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900352 u16 res5;
wdenk48b42612003-06-19 23:01:32 +0000353#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900354};
wdenk48b42612003-06-19 23:01:32 +0000355
356
357/* I/O PORT (see manual chapter 9) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900358struct s3c24x0_gpio {
wdenk48b42612003-06-19 23:01:32 +0000359#ifdef CONFIG_S3C2400
C Naumand9abba82010-10-26 23:04:31 +0900360 u32 pacon;
361 u32 padat;
wdenk8bde7f72003-06-27 21:31:46 +0000362
C Naumand9abba82010-10-26 23:04:31 +0900363 u32 pbcon;
364 u32 pbdat;
365 u32 pbup;
wdenk48b42612003-06-19 23:01:32 +0000366
C Naumand9abba82010-10-26 23:04:31 +0900367 u32 pccon;
368 u32 pcdat;
369 u32 pcup;
wdenk48b42612003-06-19 23:01:32 +0000370
C Naumand9abba82010-10-26 23:04:31 +0900371 u32 pdcon;
372 u32 pddat;
373 u32 pdup;
wdenk48b42612003-06-19 23:01:32 +0000374
C Naumand9abba82010-10-26 23:04:31 +0900375 u32 pecon;
376 u32 pedat;
377 u32 peup;
wdenk48b42612003-06-19 23:01:32 +0000378
C Naumand9abba82010-10-26 23:04:31 +0900379 u32 pfcon;
380 u32 pfdat;
381 u32 pfup;
wdenk48b42612003-06-19 23:01:32 +0000382
C Naumand9abba82010-10-26 23:04:31 +0900383 u32 pgcon;
384 u32 pgdat;
385 u32 pgup;
wdenk48b42612003-06-19 23:01:32 +0000386
C Naumand9abba82010-10-26 23:04:31 +0900387 u32 opencr;
wdenk48b42612003-06-19 23:01:32 +0000388
C Naumand9abba82010-10-26 23:04:31 +0900389 u32 misccr;
390 u32 extint;
wdenk48b42612003-06-19 23:01:32 +0000391#endif
392#ifdef CONFIG_S3C2410
C Naumand9abba82010-10-26 23:04:31 +0900393 u32 gpacon;
394 u32 gpadat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900395 u32 res1[2];
C Naumand9abba82010-10-26 23:04:31 +0900396 u32 gpbcon;
397 u32 gpbdat;
398 u32 gpbup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900399 u32 res2;
C Naumand9abba82010-10-26 23:04:31 +0900400 u32 gpccon;
401 u32 gpcdat;
402 u32 gpcup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900403 u32 res3;
C Naumand9abba82010-10-26 23:04:31 +0900404 u32 gpdcon;
405 u32 gpddat;
406 u32 gpdup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900407 u32 res4;
C Naumand9abba82010-10-26 23:04:31 +0900408 u32 gpecon;
409 u32 gpedat;
410 u32 gpeup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900411 u32 res5;
C Naumand9abba82010-10-26 23:04:31 +0900412 u32 gpfcon;
413 u32 gpfdat;
414 u32 gpfup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900415 u32 res6;
C Naumand9abba82010-10-26 23:04:31 +0900416 u32 gpgcon;
417 u32 gpgdat;
418 u32 gpgup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900419 u32 res7;
C Naumand9abba82010-10-26 23:04:31 +0900420 u32 gphcon;
421 u32 gphdat;
422 u32 gphup;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900423 u32 res8;
wdenk48b42612003-06-19 23:01:32 +0000424
C Naumand9abba82010-10-26 23:04:31 +0900425 u32 misccr;
426 u32 dclkcon;
427 u32 extint0;
428 u32 extint1;
429 u32 extint2;
430 u32 eintflt0;
431 u32 eintflt1;
432 u32 eintflt2;
433 u32 eintflt3;
434 u32 eintmask;
435 u32 eintpend;
436 u32 gstatus0;
437 u32 gstatus1;
438 u32 gstatus2;
439 u32 gstatus3;
440 u32 gstatus4;
441#endif
442#if defined(CONFIG_S3C2440)
443 u32 gpacon;
444 u32 gpadat;
445 u32 res1[2];
446 u32 gpbcon;
447 u32 gpbdat;
448 u32 gpbup;
449 u32 res2;
450 u32 gpccon;
451 u32 gpcdat;
452 u32 gpcup;
453 u32 res3;
454 u32 gpdcon;
455 u32 gpddat;
456 u32 gpdup;
457 u32 res4;
458 u32 gpecon;
459 u32 gpedat;
460 u32 gpeup;
461 u32 res5;
462 u32 gpfcon;
463 u32 gpfdat;
464 u32 gpfup;
465 u32 res6;
466 u32 gpgcon;
467 u32 gpgdat;
468 u32 gpgup;
469 u32 res7;
470 u32 gphcon;
471 u32 gphdat;
472 u32 gphup;
473 u32 res8;
474
475 u32 misccr;
476 u32 dclkcon;
477 u32 extint0;
478 u32 extint1;
479 u32 extint2;
480 u32 eintflt0;
481 u32 eintflt1;
482 u32 eintflt2;
483 u32 eintflt3;
484 u32 eintmask;
485 u32 eintpend;
486 u32 gstatus0;
487 u32 gstatus1;
488 u32 gstatus2;
489 u32 gstatus3;
490 u32 gstatus4;
491
492 u32 res9;
493 u32 dsc0;
494 u32 dsc1;
495 u32 mslcon;
496 u32 gpjcon;
497 u32 gpjdat;
498 u32 gpjup;
499 u32 res10;
wdenk48b42612003-06-19 23:01:32 +0000500#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900501};
wdenk48b42612003-06-19 23:01:32 +0000502
503
504/* RTC (see manual chapter 17) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900505struct s3c24x0_rtc {
wdenk48b42612003-06-19 23:01:32 +0000506#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900507 u8 res1[67];
C Naumand9abba82010-10-26 23:04:31 +0900508 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900509 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900510 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900511 u8 res3[11];
C Naumand9abba82010-10-26 23:04:31 +0900512 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900513 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900514 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900515 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900516 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900517 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900518 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900519 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900520 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900521 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900522 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900523 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900524 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900525 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900526 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900527 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900528 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900529 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900530 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900531 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900532 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900533 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900534 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900535 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900536 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900537 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900538 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900539 u8 res17[3];
C Naumand9abba82010-10-26 23:04:31 +0900540 u8 bcdyear;
wdenk48b42612003-06-19 23:01:32 +0000541#else /* little endian */
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900542 u8 res0[64];
C Naumand9abba82010-10-26 23:04:31 +0900543 u8 rtccon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900544 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900545 u8 ticnt;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900546 u8 res2[11];
C Naumand9abba82010-10-26 23:04:31 +0900547 u8 rtcalm;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900548 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900549 u8 almsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900550 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900551 u8 almmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900552 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900553 u8 almhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900554 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900555 u8 almdate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900556 u8 res7[3];
C Naumand9abba82010-10-26 23:04:31 +0900557 u8 almmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900558 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900559 u8 almyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900560 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900561 u8 rtcrst;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900562 u8 res10[3];
C Naumand9abba82010-10-26 23:04:31 +0900563 u8 bcdsec;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900564 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900565 u8 bcdmin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900566 u8 res12[3];
C Naumand9abba82010-10-26 23:04:31 +0900567 u8 bcdhour;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900568 u8 res13[3];
C Naumand9abba82010-10-26 23:04:31 +0900569 u8 bcddate;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900570 u8 res14[3];
C Naumand9abba82010-10-26 23:04:31 +0900571 u8 bcdday;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900572 u8 res15[3];
C Naumand9abba82010-10-26 23:04:31 +0900573 u8 bcdmon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900574 u8 res16[3];
C Naumand9abba82010-10-26 23:04:31 +0900575 u8 bcdyear;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900576 u8 res17[3];
wdenk48b42612003-06-19 23:01:32 +0000577#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900578};
wdenk48b42612003-06-19 23:01:32 +0000579
580
581/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900582struct s3c2400_adc {
C Naumand9abba82010-10-26 23:04:31 +0900583 u32 adccon;
584 u32 adcdat;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900585};
wdenk48b42612003-06-19 23:01:32 +0000586
587
588/* ADC (see manual chapter 16) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900589struct s3c2410_adc {
C Naumand9abba82010-10-26 23:04:31 +0900590 u32 adccon;
591 u32 adctsc;
592 u32 adcdly;
593 u32 adcdat0;
594 u32 adcdat1;
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900595};
wdenk48b42612003-06-19 23:01:32 +0000596
597
598/* SPI (see manual chapter 22) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900599struct s3c24x0_spi_channel {
C Naumand9abba82010-10-26 23:04:31 +0900600 u8 spcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900601 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900602 u8 spsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900603 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900604 u8 sppin;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900605 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900606 u8 sppre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900607 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900608 u8 sptdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900609 u8 res5[3];
C Naumand9abba82010-10-26 23:04:31 +0900610 u8 sprdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900611 u8 res6[3];
612 u8 res7[16];
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900613};
wdenk48b42612003-06-19 23:01:32 +0000614
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900615struct s3c24x0_spi {
616 struct s3c24x0_spi_channel ch[S3C24X0_SPI_CHANNELS];
617};
wdenk48b42612003-06-19 23:01:32 +0000618
619
620/* MMC INTERFACE (see S3C2400 manual chapter 19) */
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900621struct s3c2400_mmc {
wdenk48b42612003-06-19 23:01:32 +0000622#ifdef __BIG_ENDIAN
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900623 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900624 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900625 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900626 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900627 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900628 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900629 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900630 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900631 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900632 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900633 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900634 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900635 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900636 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900637 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900638 u8 mmcr7;
639 u32 mmrsp[4];
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900640 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900641 u8 mmcmd0;
642 u32 mmcmd1;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900643 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900644 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900645 u8 res11[3];
C Naumand9abba82010-10-26 23:04:31 +0900646 u8 mmdat;
wdenk48b42612003-06-19 23:01:32 +0000647#else
C Naumand9abba82010-10-26 23:04:31 +0900648 u8 mmcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900649 u8 res1[3];
C Naumand9abba82010-10-26 23:04:31 +0900650 u8 mmcrr;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900651 u8 res2[3];
C Naumand9abba82010-10-26 23:04:31 +0900652 u8 mmfcon;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900653 u8 res3[3];
C Naumand9abba82010-10-26 23:04:31 +0900654 u8 mmsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900655 u8 res4[3];
C Naumand9abba82010-10-26 23:04:31 +0900656 u16 mmfsta;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900657 u16 res5;
C Naumand9abba82010-10-26 23:04:31 +0900658 u8 mmpre;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900659 u8 res6[3];
C Naumand9abba82010-10-26 23:04:31 +0900660 u16 mmlen;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900661 u16 res7;
C Naumand9abba82010-10-26 23:04:31 +0900662 u8 mmcr7;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900663 u8 res8[3];
C Naumand9abba82010-10-26 23:04:31 +0900664 u32 mmrsp[4];
665 u8 mmcmd0;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900666 u8 res9[3];
C Naumand9abba82010-10-26 23:04:31 +0900667 u32 mmcmd1;
668 u16 mmcr16;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900669 u16 res10;
C Naumand9abba82010-10-26 23:04:31 +0900670 u8 mmdat;
kevin.morfitt@fearnside-systems.co.uk9ebfdc22009-11-04 17:49:31 +0900671 u8 res11[3];
wdenk48b42612003-06-19 23:01:32 +0000672#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900673};
wdenk48b42612003-06-19 23:01:32 +0000674
675
676/* SD INTERFACE (see S3C2410 manual chapter 19) */
Marek Vasut7eca6b62014-07-22 02:34:51 +0200677struct s3c24x0_sdi {
C Naumand9abba82010-10-26 23:04:31 +0900678 u32 sdicon;
679 u32 sdipre;
680 u32 sdicarg;
681 u32 sdiccon;
682 u32 sdicsta;
683 u32 sdirsp0;
684 u32 sdirsp1;
685 u32 sdirsp2;
686 u32 sdirsp3;
687 u32 sdidtimer;
688 u32 sdibsize;
689 u32 sdidcon;
690 u32 sdidcnt;
691 u32 sdidsta;
692 u32 sdifsta;
Marek Vasut7eca6b62014-07-22 02:34:51 +0200693#ifdef CONFIG_S3C2410
694 u32 sdidat;
C Naumand9abba82010-10-26 23:04:31 +0900695 u32 sdiimsk;
Marek Vasut7eca6b62014-07-22 02:34:51 +0200696#else
697 u32 sdiimsk;
698 u32 sdidat;
699#endif
kevin.morfitt@fearnside-systems.co.uk8250d0b2009-10-10 13:32:01 +0900700};
wdenk48b42612003-06-19 23:01:32 +0000701
Marek Vasutdae0f5c2014-07-22 02:34:52 +0200702#ifdef CONFIG_CMD_MMC
703#include <mmc.h>
704int s3cmmc_initialize(bd_t *bis, int (*getcd)(struct mmc *),
705 int (*getwp)(struct mmc *));
706#endif
707
wdenk48b42612003-06-19 23:01:32 +0000708#endif /*__S3C24X0_H__*/