3 * David Müller ELSOFT AG Switzerland. d.mueller@elsoft.ch
5 * See file CREDITS for list of people who contributed to this
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.
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.
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,
24 /************************************************
28 * common stuff for SAMSUNG S3C24X0 SoC
29 ************************************************/
34 /* Memory controller (see manual chapter 5) */
35 struct s3c24x0_memctl {
45 /* USB HOST (see manual chapter 12) */
46 struct s3c24x0_usb_host {
50 u32 HcInterruptStatus;
51 u32 HcInterruptEnable;
52 u32 HcInterruptDisable;
54 u32 HcPeriodCuttendED;
56 u32 HcControlCurrentED;
73 /* INTERRUPT (see manual chapter 14) */
74 struct s3c24x0_interrupt {
88 /* DMAS (see manual chapter 8) */
103 #ifdef CONFIG_S3C2400
106 #ifdef CONFIG_S3C2410
111 struct s3c24x0_dmas {
112 struct s3c24x0_dma dma[4];
116 /* CLOCK & POWER MANAGEMENT (see S3C2400 manual chapter 6) */
117 /* (see S3C2410 manual chapter 7) */
118 struct s3c24x0_clock_power {
128 /* LCD CONTROLLER (see manual chapter 15) */
144 #ifdef CONFIG_S3C2410
153 /* NAND FLASH (see S3C2410 manual chapter 6) */
154 struct s3c2410_nand {
164 /* UART (see manual chapter 11) */
165 struct s3c24x0_uart {
179 #else /* Little Endian */
189 /* PWM TIMER (see manual chapter 10) */
190 struct s3c24x0_timer {
196 struct s3c24x0_timers {
200 struct s3c24x0_timer ch[4];
206 /* USB DEVICE (see manual chapter 13) */
207 struct s3c24x0_usb_dev_fifos {
211 #else /* little endian */
217 struct s3c24x0_usb_dev_dmas {
231 #else /* little endian */
247 struct s3c24x0_usb_device {
270 u8 EP0_CSR_IN_CSR1_REG;
278 u8 OUT_FIFO_CNT1_REG;
280 u8 OUT_FIFO_CNT2_REG;
281 #else /* little endian */
302 u8 EP0_CSR_IN_CSR1_REG;
310 u8 OUT_FIFO_CNT1_REG;
312 u8 OUT_FIFO_CNT2_REG;
314 #endif /* __BIG_ENDIAN */
315 struct s3c24x0_usb_dev_fifos fifo[5];
316 struct s3c24x0_usb_dev_dmas dma[5];
320 /* WATCH DOG TIMER (see manual chapter 18) */
321 struct s3c24x0_watchdog {
328 /* IIC (see manual chapter 20) */
337 /* IIS (see manual chapter 21) */
350 #else /* little endian */
365 /* I/O PORT (see manual chapter 9) */
366 struct s3c24x0_gpio {
367 #ifdef CONFIG_S3C2400
400 #ifdef CONFIG_S3C2410
453 /* RTC (see manual chapter 17) */
490 #else /* little endian */
530 /* ADC (see manual chapter 16) */
537 /* ADC (see manual chapter 16) */
547 /* SPI (see manual chapter 22) */
548 struct s3c24x0_spi_channel {
565 struct s3c24x0_spi_channel ch[S3C24X0_SPI_CHANNELS];
569 /* MMC INTERFACE (see S3C2400 manual chapter 19) */
625 /* SD INTERFACE (see S3C2410 manual chapter 19) */
652 #endif /*__S3C24X0_H__*/