⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s3c24x0.h

📁 F:worksip2440a board可启动u-boot-like.tar.gz F:worksip2440a board可启动u-boot-like.tar.gz
💻 H
📖 第 1 页 / 共 3 页
字号:
/* * (C) Copyright 2003 * David M黮ler ELSOFT AG Switzerland. d.mueller@elsoft.ch * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA *//************************************************ * NAME	    : s3c24x0.h * Version  : 31.3.2003 * * common stuff for SAMSUNG S3C24X0 SoC ************************************************/#ifndef __S3C24X0_H__#define __S3C24X0_H__typedef volatile u8	S3C24X0_REG8;typedef volatile u16	S3C24X0_REG16;typedef volatile u32	S3C24X0_REG32;/* Memory controller (see manual chapter 5) */typedef struct {	S3C24X0_REG32	BWSCON;	S3C24X0_REG32	BANKCON[8];	S3C24X0_REG32	REFRESH;	S3C24X0_REG32	BANKSIZE;	S3C24X0_REG32	MRSRB6;	S3C24X0_REG32	MRSRB7;} /*__attribute__((__packed__))*/ S3C24X0_MEMCTL;/* USB HOST (see manual chapter 12) */typedef struct {	S3C24X0_REG32	HcRevision;	S3C24X0_REG32	HcControl;	S3C24X0_REG32	HcCommonStatus;	S3C24X0_REG32	HcInterruptStatus;	S3C24X0_REG32	HcInterruptEnable;	S3C24X0_REG32	HcInterruptDisable;	S3C24X0_REG32	HcHCCA;	S3C24X0_REG32	HcPeriodCuttendED;	S3C24X0_REG32	HcControlHeadED;	S3C24X0_REG32	HcControlCurrentED;	S3C24X0_REG32	HcBulkHeadED;	S3C24X0_REG32	HcBuldCurrentED;	S3C24X0_REG32	HcDoneHead;	S3C24X0_REG32	HcRmInterval;	S3C24X0_REG32	HcFmRemaining;	S3C24X0_REG32	HcFmNumber;	S3C24X0_REG32	HcPeriodicStart;	S3C24X0_REG32	HcLSThreshold;	S3C24X0_REG32	HcRhDescriptorA;	S3C24X0_REG32	HcRhDescriptorB;	S3C24X0_REG32	HcRhStatus;	S3C24X0_REG32	HcRhPortStatus1;	S3C24X0_REG32	HcRhPortStatus2;} /*__attribute__((__packed__))*/ S3C24X0_USB_HOST;/* INTERRUPT (see manual chapter 14) */typedef struct {	S3C24X0_REG32	SRCPND;	S3C24X0_REG32	INTMOD;	S3C24X0_REG32	INTMSK;	S3C24X0_REG32	PRIORITY;	S3C24X0_REG32	INTPND;	S3C24X0_REG32	INTOFFSET;#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)	S3C24X0_REG32	SUBSRCPND;	S3C24X0_REG32	INTSUBMSK;#endif} /*__attribute__((__packed__))*/ S3C24X0_INTERRUPT;/* DMAS (see manual chapter 8) */typedef struct {	S3C24X0_REG32	DISRC;#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)	S3C24X0_REG32	DISRCC;#endif	S3C24X0_REG32	DIDST;#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)	S3C24X0_REG32	DIDSTC;#endif	S3C24X0_REG32	DCON;	S3C24X0_REG32	DSTAT;	S3C24X0_REG32	DCSRC;	S3C24X0_REG32	DCDST;	S3C24X0_REG32	DMASKTRIG;#ifdef CONFIG_S3C2400	S3C24X0_REG32	res[1];#endif#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)	S3C24X0_REG32	res[7];#endif} /*__attribute__((__packed__))*/ S3C24X0_DMA;typedef struct {	S3C24X0_DMA	dma[4];} /*__attribute__((__packed__))*/ S3C24X0_DMAS;/* CLOCK & POWER MANAGEMENT (see S3C2400 manual chapter 6) *//*                          (see S3C2410 manual chapter 7) */typedef struct {	S3C24X0_REG32	LOCKTIME;	S3C24X0_REG32	MPLLCON;	S3C24X0_REG32	UPLLCON;	S3C24X0_REG32	CLKCON;	S3C24X0_REG32	CLKSLOW;	S3C24X0_REG32	CLKDIVN;#ifdef CONFIG_S3C2440	S3C24X0_REG32	CAMDIVN;#endif} /*__attribute__((__packed__))*/ S3C24X0_CLOCK_POWER;/* LCD CONTROLLER (see manual chapter 15) */typedef struct {	S3C24X0_REG32	LCDCON1;	S3C24X0_REG32	LCDCON2;	S3C24X0_REG32	LCDCON3;	S3C24X0_REG32	LCDCON4;	S3C24X0_REG32	LCDCON5;	S3C24X0_REG32	LCDSADDR1;	S3C24X0_REG32	LCDSADDR2;	S3C24X0_REG32	LCDSADDR3;	S3C24X0_REG32	REDLUT;	S3C24X0_REG32	GREENLUT;	S3C24X0_REG32	BLUELUT;	S3C24X0_REG32	res[8];	S3C24X0_REG32	DITHMODE;	S3C24X0_REG32	TPAL;#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)	S3C24X0_REG32	LCDINTPND;	S3C24X0_REG32	LCDSRCPND;	S3C24X0_REG32	LCDINTMSK;	S3C24X0_REG32	LPCSEL;#endif} /*__attribute__((__packed__))*/ S3C24X0_LCD;#if defined(CONFIG_S3C2410)/* NAND FLASH (see S3C2410 manual chapter 6) */typedef struct {	S3C24X0_REG32	NFCONF;	S3C24X0_REG32	NFCMD;	S3C24X0_REG32	NFADDR;	S3C24X0_REG32	NFDATA;	S3C24X0_REG32	NFSTAT;	S3C24X0_REG32	NFECC;} /*__attribute__((__packed__))*/ S3C2410_NAND;#elif defined(CONFIG_S3C2440)/* NAND FLASH (see S3C2440 manual chapter 6) */typedef struct {	S3C24X0_REG32	NFCONF;	S3C24X0_REG32	NFCONT;	S3C24X0_REG32	NFCMD;	S3C24X0_REG32	NFADDR;	S3C24X0_REG32	NFDATA;	S3C24X0_REG32	NFMECCD0;	S3C24X0_REG32	NFMECCD1;	S3C24X0_REG32	NFSECCD;	S3C24X0_REG32	NFSTAT;	S3C24X0_REG32	NFESTAT0;	S3C24X0_REG32	NFESTAT1;	S3C24X0_REG32	NFMECC0;	S3C24X0_REG32	NFMECC1;	S3C24X0_REG32	NFSECC;	S3C24X0_REG32	NFSBLK;	S3C24X0_REG32	NFEBLK;} /*__attribute__((__packed__))*/ S3C2440_NAND;#endif/* UART (see manual chapter 11) */typedef struct {	S3C24X0_REG32	ULCON;	S3C24X0_REG32	UCON;	S3C24X0_REG32	UFCON;	S3C24X0_REG32	UMCON;	S3C24X0_REG32	UTRSTAT;	S3C24X0_REG32	UERSTAT;	S3C24X0_REG32	UFSTAT;	S3C24X0_REG32	UMSTAT;#ifdef __BIG_ENDIAN	S3C24X0_REG8	res1[3];	S3C24X0_REG8	UTXH;	S3C24X0_REG8	res2[3];	S3C24X0_REG8	URXH;#else /* Little Endian */	S3C24X0_REG8	UTXH;	S3C24X0_REG8	res1[3];	S3C24X0_REG8	URXH;	S3C24X0_REG8	res2[3];#endif	S3C24X0_REG32	UBRDIV;} /*__attribute__((__packed__))*/ S3C24X0_UART;/* PWM TIMER (see manual chapter 10) */typedef struct {	S3C24X0_REG32	TCNTB;	S3C24X0_REG32	TCMPB;	S3C24X0_REG32	TCNTO;} /*__attribute__((__packed__))*/ S3C24X0_TIMER;typedef struct {	S3C24X0_REG32	TCFG0;	S3C24X0_REG32	TCFG1;	S3C24X0_REG32	TCON;	S3C24X0_TIMER	ch[4];	S3C24X0_REG32	TCNTB4;	S3C24X0_REG32	TCNTO4;} /*__attribute__((__packed__))*/ S3C24X0_TIMERS;/* USB DEVICE (see manual chapter 13) */typedef struct {#ifdef __BIG_ENDIAN	S3C24X0_REG8	res[3];	S3C24X0_REG8	EP_FIFO_REG;#else /*  little endian */	S3C24X0_REG8	EP_FIFO_REG;	S3C24X0_REG8	res[3];#endif} /*__attribute__((__packed__))*/ S3C24X0_USB_DEV_FIFOS;typedef struct {#ifdef __BIG_ENDIAN	S3C24X0_REG8	res1[3];	S3C24X0_REG8	EP_DMA_CON;	S3C24X0_REG8	res2[3];	S3C24X0_REG8	EP_DMA_UNIT;	S3C24X0_REG8	res3[3];	S3C24X0_REG8	EP_DMA_FIFO;	S3C24X0_REG8	res4[3];	S3C24X0_REG8	EP_DMA_TTC_L;	S3C24X0_REG8	res5[3];	S3C24X0_REG8	EP_DMA_TTC_M;	S3C24X0_REG8	res6[3];	S3C24X0_REG8	EP_DMA_TTC_H;#else /*  little endian */	S3C24X0_REG8	EP_DMA_CON;	S3C24X0_REG8	res1[3];	S3C24X0_REG8	EP_DMA_UNIT;	S3C24X0_REG8	res2[3];	S3C24X0_REG8	EP_DMA_FIFO;	S3C24X0_REG8	res3[3];	S3C24X0_REG8	EP_DMA_TTC_L;	S3C24X0_REG8	res4[3];	S3C24X0_REG8	EP_DMA_TTC_M;	S3C24X0_REG8	res5[3];	S3C24X0_REG8	EP_DMA_TTC_H;	S3C24X0_REG8	res6[3];#endif} /*__attribute__((__packed__))*/ S3C24X0_USB_DEV_DMAS;typedef struct {#ifdef __BIG_ENDIAN	S3C24X0_REG8	res1[3];	S3C24X0_REG8	FUNC_ADDR_REG;	S3C24X0_REG8	res2[3];	S3C24X0_REG8	PWR_REG;	S3C24X0_REG8	res3[3];	S3C24X0_REG8	EP_INT_REG;	S3C24X0_REG8	res4[15];	S3C24X0_REG8	USB_INT_REG;	S3C24X0_REG8	res5[3];	S3C24X0_REG8	EP_INT_EN_REG;	S3C24X0_REG8	res6[15];	S3C24X0_REG8	USB_INT_EN_REG;	S3C24X0_REG8	res7[3];	S3C24X0_REG8	FRAME_NUM1_REG;	S3C24X0_REG8	res8[3];	S3C24X0_REG8	FRAME_NUM2_REG;	S3C24X0_REG8	res9[3];	S3C24X0_REG8	INDEX_REG;	S3C24X0_REG8	res10[7];	S3C24X0_REG8	MAXP_REG;	S3C24X0_REG8	res11[3];	S3C24X0_REG8	EP0_CSR_IN_CSR1_REG;	S3C24X0_REG8	res12[3];	S3C24X0_REG8	IN_CSR2_REG;	S3C24X0_REG8	res13[7];	S3C24X0_REG8	OUT_CSR1_REG;	S3C24X0_REG8	res14[3];	S3C24X0_REG8	OUT_CSR2_REG;	S3C24X0_REG8	res15[3];	S3C24X0_REG8	OUT_FIFO_CNT1_REG;	S3C24X0_REG8	res16[3];	S3C24X0_REG8	OUT_FIFO_CNT2_REG;#else /*  little endian */	S3C24X0_REG8	FUNC_ADDR_REG;		/* 140 */	S3C24X0_REG8	res1[3];	S3C24X0_REG8	PWR_REG;		/* 144 */	S3C24X0_REG8	res2[3];	S3C24X0_REG8	EP_INT_REG;		/* 148 */	S3C24X0_REG8	res3[15];	S3C24X0_REG8	USB_INT_REG;		/* 158 */	S3C24X0_REG8	res4[3];	S3C24X0_REG8	EP_INT_EN_REG;		/* 15c */	S3C24X0_REG8	res5[15];	S3C24X0_REG8	USB_INT_EN_REG;		/* 16c */	S3C24X0_REG8	res6[3];	S3C24X0_REG8	FRAME_NUM1_REG;		/* 170 */	S3C24X0_REG8	res7[3];	S3C24X0_REG8	FRAME_NUM2_REG;		/* 174 */	S3C24X0_REG8	res8[3];	S3C24X0_REG8	INDEX_REG;		/* 178 */	S3C24X0_REG8	res9[7];	S3C24X0_REG8	MAXP_REG;		/* 180 *//*	S3C24X0_REG8	res10[7];	*/	S3C24X0_REG8	res10[3];	S3C24X0_REG8	EP0_CSR_IN_CSR1_REG;	/* 184 */	S3C24X0_REG8	res11[3];	S3C24X0_REG8	IN_CSR2_REG;		/* 188 *//*	S3C24X0_REG8	res12[3];	*/	S3C24X0_REG8	res12[7];	S3C24X0_REG8	OUT_CSR1_REG;		/* 190 *//*	S3C24X0_REG8	res13[7];	*/	S3C24X0_REG8	res13[3];	S3C24X0_REG8	OUT_CSR2_REG;		/* 194 */	S3C24X0_REG8	res14[3];	S3C24X0_REG8	OUT_FIFO_CNT1_REG;	/* 198 */	S3C24X0_REG8	res15[3];	S3C24X0_REG8	OUT_FIFO_CNT2_REG;	/* 19c */	S3C24X0_REG8	res16[3];#endif /*  __BIG_ENDIAN */	S3C24X0_REG8	res17[0x20];	S3C24X0_USB_DEV_FIFOS	fifo[5];	/* 1C0 */	S3C24X0_REG8	res18[0x2c];		S3C24X0_USB_DEV_DMAS	dma[5];		/* 200 */} /*__attribute__((__packed__))*/ S3C24X0_USB_DEVICE;/* WATCH DOG TIMER (see manual chapter 18) */typedef struct {	S3C24X0_REG32	WTCON;	S3C24X0_REG32	WTDAT;	S3C24X0_REG32	WTCNT;} /*__attribute__((__packed__))*/ S3C24X0_WATCHDOG;/* IIC (see manual chapter 20) */typedef struct {	S3C24X0_REG32	IICCON;	S3C24X0_REG32	IICSTAT;	S3C24X0_REG32	IICADD;	S3C24X0_REG32	IICDS;} /*__attribute__((__packed__))*/ S3C24X0_I2C;/* IIS (see manual chapter 21) */typedef struct {#ifdef __BIG_ENDIAN	S3C24X0_REG16	res1;	S3C24X0_REG16	IISCON;	S3C24X0_REG16	res2;	S3C24X0_REG16	IISMOD;	S3C24X0_REG16	res3;	S3C24X0_REG16	IISPSR;	S3C24X0_REG16	res4;	S3C24X0_REG16	IISFCON;	S3C24X0_REG16	res5;	S3C24X0_REG16	IISFIFO;#else /*  little endian */	S3C24X0_REG16	IISCON;	S3C24X0_REG16	res1;	S3C24X0_REG16	IISMOD;	S3C24X0_REG16	res2;	S3C24X0_REG16	IISPSR;	S3C24X0_REG16	res3;	S3C24X0_REG16	IISFCON;	S3C24X0_REG16	res4;	S3C24X0_REG16	IISFIFO;	S3C24X0_REG16	res5;#endif} /*__attribute__((__packed__))*/ S3C24X0_I2S;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -