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

📄 at91rm9200_sys.h

📁 LINUX 2.6.17.4的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * include/asm-arm/arch-at91rm9200/at91rm9200_sys.h * * Copyright (C) 2005 Ivan Kokshaysky * Copyright (C) SAN People * * System peripherals registers. * Based on AT91RM9200 datasheet revision E. * * 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. */#ifndef AT91RM9200_SYS_H#define AT91RM9200_SYS_H/* * Advanced Interrupt Controller. */#define AT91_AIC	0x000#define AT91_AIC_SMR(n)		(AT91_AIC + ((n) * 4))	/* Source Mode Registers 0-31 */#define		AT91_AIC_PRIOR		(7 << 0)		/* Priority Level */#define		AT91_AIC_SRCTYPE	(3 << 5)		/* Interrupt Source Type */#define			AT91_AIC_SRCTYPE_LOW		(0 << 5)#define			AT91_AIC_SRCTYPE_FALLING	(1 << 5)#define			AT91_AIC_SRCTYPE_HIGH		(2 << 5)#define			AT91_AIC_SRCTYPE_RISING		(3 << 5)#define AT91_AIC_SVR(n)		(AT91_AIC + 0x80 + ((n) * 4))	/* Source Vector Registers 0-31 */#define AT91_AIC_IVR		(AT91_AIC + 0x100)	/* Interrupt Vector Register */#define AT91_AIC_FVR		(AT91_AIC + 0x104)	/* Fast Interrupt Vector Register */#define AT91_AIC_ISR		(AT91_AIC + 0x108)	/* Interrupt Status Register */#define		AT91_AIC_IRQID		(0x1f << 0)		/* Current Interrupt Identifier */#define AT91_AIC_IPR		(AT91_AIC + 0x10c)	/* Interrupt Pending Register */#define AT91_AIC_IMR		(AT91_AIC + 0x110)	/* Interrupt Mask Register */#define AT91_AIC_CISR		(AT91_AIC + 0x114)	/* Core Interrupt Status Register */#define		AT91_AIC_NFIQ		(1 << 0)		/* nFIQ Status */#define		AT91_AIC_NIRQ		(1 << 1)		/* nIRQ Status */#define AT91_AIC_IECR		(AT91_AIC + 0x120)	/* Interrupt Enable Command Register */#define AT91_AIC_IDCR		(AT91_AIC + 0x124)	/* Interrupt Disable Command Register */#define AT91_AIC_ICCR		(AT91_AIC + 0x128)	/* Interrupt Clear Command Register */#define AT91_AIC_ISCR		(AT91_AIC + 0x12c)	/* Interrupt Set Command Register */#define AT91_AIC_EOICR		(AT91_AIC + 0x130)	/* End of Interrupt Command Register */#define AT91_AIC_SPU		(AT91_AIC + 0x134)	/* Spurious Interrupt Vector Register */#define AT91_AIC_DCR		(AT91_AIC + 0x138)	/* Debug Control Register */#define		AT91_AIC_DCR_PROT	(1 << 0)		/* Protection Mode */#define		AT91_AIC_DCR_GMSK	(1 << 1)		/* General Mask *//* * Debug Unit. */#define AT91_DBGU	0x200#define AT91_DBGU_CR		(AT91_DBGU + 0x00)	/* Control Register */#define AT91_DBGU_MR		(AT91_DBGU + 0x04)	/* Mode Register */#define AT91_DBGU_IER		(AT91_DBGU + 0x08)	/* Interrupt Enable Register */#define		AT91_DBGU_TXRDY		(1 << 1)		/* Transmitter Ready */#define		AT91_DBGU_TXEMPTY	(1 << 9)		/* Transmitter Empty */#define AT91_DBGU_IDR		(AT91_DBGU + 0x0c)	/* Interrupt Disable Register */#define AT91_DBGU_IMR		(AT91_DBGU + 0x10)	/* Interrupt Mask Register */#define AT91_DBGU_SR		(AT91_DBGU + 0x14)	/* Status Register */#define AT91_DBGU_RHR		(AT91_DBGU + 0x18)	/* Receiver Holding Register */#define AT91_DBGU_THR		(AT91_DBGU + 0x1c)	/* Transmitter Holding Register */#define AT91_DBGU_BRGR		(AT91_DBGU + 0x20)	/* Baud Rate Generator Register */#define AT91_DBGU_CIDR		(AT91_DBGU + 0x40)	/* Chip ID Register */#define AT91_DBGU_EXID		(AT91_DBGU + 0x44)	/* Chip ID Extension Register *//* * PIO Controllers. */#define AT91_PIOA	0x400#define AT91_PIOB	0x600#define AT91_PIOC	0x800#define AT91_PIOD	0xa00#define PIO_PER		0x00	/* Enable Register */#define PIO_PDR		0x04	/* Disable Register */#define PIO_PSR		0x08	/* Status Register */#define PIO_OER		0x10	/* Output Enable Register */#define PIO_ODR		0x14	/* Output Disable Register */#define PIO_OSR		0x18	/* Output Status Register */#define PIO_IFER	0x20	/* Glitch Input Filter Enable */#define PIO_IFDR	0x24	/* Glitch Input Filter Disable */#define PIO_IFSR	0x28	/* Glitch Input Filter Status */#define PIO_SODR	0x30	/* Set Output Data Register */#define PIO_CODR	0x34	/* Clear Output Data Register */#define PIO_ODSR	0x38	/* Output Data Status Register */#define PIO_PDSR	0x3c	/* Pin Data Status Register */#define PIO_IER		0x40	/* Interrupt Enable Register */#define PIO_IDR		0x44	/* Interrupt Disable Register */#define PIO_IMR		0x48	/* Interrupt Mask Register */#define PIO_ISR		0x4c	/* Interrupt Status Register */#define PIO_MDER	0x50	/* Multi-driver Enable Register */#define PIO_MDDR	0x54	/* Multi-driver Disable Register */#define PIO_MDSR	0x58	/* Multi-driver Status Register */#define PIO_PUDR	0x60	/* Pull-up Disable Register */#define PIO_PUER	0x64	/* Pull-up Enable Register */#define PIO_PUSR	0x68	/* Pull-up Status Register */#define PIO_ASR		0x70	/* Peripheral A Select Register */#define PIO_BSR		0x74	/* Peripheral B Select Register */#define PIO_ABSR	0x78	/* AB Status Register */#define PIO_OWER	0xa0	/* Output Write Enable Register */#define PIO_OWDR	0xa4	/* Output Write Disable Register */#define PIO_OWSR	0xa8	/* Output Write Status Register */#define AT91_PIO_P(n)	(1 << (n))/* * Power Management Controller. */#define	AT91_PMC	0xc00#define	AT91_PMC_SCER		(AT91_PMC + 0x00)	/* System Clock Enable Register */#define	AT91_PMC_SCDR		(AT91_PMC + 0x04)	/* System Clock Disable Register */#define	AT91_PMC_SCSR		(AT91_PMC + 0x08)	/* System Clock Status Register */#define		AT91_PMC_PCK		(1 <<  0)		/* Processor Clock */#define		AT91_PMC_UDP		(1 <<  1)		/* USB Devcice Port Clock */#define		AT91_PMC_MCKUDP		(1 <<  2)		/* USB Device Port Master Clock Automatic Disable on Suspend */#define		AT91_PMC_UHP		(1 <<  4)		/* USB Host Port Clock */#define		AT91_PMC_PCK0		(1 <<  8)		/* Programmable Clock 0 */#define		AT91_PMC_PCK1		(1 <<  9)		/* Programmable Clock 1 */#define		AT91_PMC_PCK2		(1 << 10)		/* Programmable Clock 2 */#define		AT91_PMC_PCK3		(1 << 11)		/* Programmable Clock 3 */#define	AT91_PMC_PCER		(AT91_PMC + 0x10)	/* Peripheral Clock Enable Register */#define	AT91_PMC_PCDR		(AT91_PMC + 0x14)	/* Peripheral Clock Disable Register */#define	AT91_PMC_PCSR		(AT91_PMC + 0x18)	/* Peripheral Clock Status Register */#define	AT91_CKGR_MOR		(AT91_PMC + 0x20)	/* Main Oscillator Register */#define		AT91_PMC_MOSCEN		(1    << 0)		/* Main Oscillator Enable */#define		AT91_PMC_OSCOUNT	(0xff << 8)		/* Main Oscillator Start-up Time */#define	AT91_CKGR_MCFR		(AT91_PMC + 0x24)	/* Main Clock Frequency Register */#define		AT91_PMC_MAINF		(0xffff <<  0)		/* Main Clock Frequency */#define		AT91_PMC_MAINRDY	(1	<< 16)		/* Main Clock Ready */#define	AT91_CKGR_PLLAR		(AT91_PMC + 0x28)	/* PLL A Register */#define	AT91_CKGR_PLLBR		(AT91_PMC + 0x2c)	/* PLL B Register */#define		AT91_PMC_DIV		(0xff  <<  0)		/* Divider */#define		AT91_PMC_PLLCOUNT	(0x3f  <<  8)		/* PLL Counter */#define		AT91_PMC_OUT		(3     << 14)		/* PLL Clock Frequency Range */#define		AT91_PMC_MUL		(0x7ff << 16)		/* PLL Multiplier */#define		AT91_PMC_USB96M		(1     << 28)		/* Divider by 2 Enable (PLLB only) */#define	AT91_PMC_MCKR		(AT91_PMC + 0x30)	/* Master Clock Register */#define		AT91_PMC_CSS		(3 <<  0)		/* Master Clock Selection */#define			AT91_PMC_CSS_SLOW		(0 << 0)#define			AT91_PMC_CSS_MAIN		(1 << 0)#define			AT91_PMC_CSS_PLLA		(2 << 0)#define			AT91_PMC_CSS_PLLB		(3 << 0)#define		AT91_PMC_PRES		(7 <<  2)		/* Master Clock Prescaler */#define 		AT91_PMC_PRES_1			(0 << 2)#define			AT91_PMC_PRES_2			(1 << 2)#define			AT91_PMC_PRES_4			(2 << 2)#define			AT91_PMC_PRES_8			(3 << 2)#define			AT91_PMC_PRES_16		(4 << 2)#define			AT91_PMC_PRES_32		(5 << 2)#define			AT91_PMC_PRES_64		(6 << 2)#define		AT91_PMC_MDIV		(3 <<  8)		/* Master Clock Division */#define			AT91_PMC_MDIV_1			(0 << 8)#define			AT91_PMC_MDIV_2			(1 << 8)#define			AT91_PMC_MDIV_3			(2 << 8)#define			AT91_PMC_MDIV_4			(3 << 8)#define	AT91_PMC_PCKR(n)	(AT91_PMC + 0x40 + ((n) * 4))	/* Programmable Clock 0-3 Registers */#define	AT91_PMC_IER		(AT91_PMC + 0x60)	/* Interrupt Enable Register */#define	AT91_PMC_IDR		(AT91_PMC + 0x64)	/* Interrupt Disable Register */#define	AT91_PMC_SR		(AT91_PMC + 0x68)	/* Status Register */#define		AT91_PMC_MOSCS		(1 <<  0)		/* MOSCS Flag */#define		AT91_PMC_LOCKA		(1 <<  1)		/* PLLA Lock */#define		AT91_PMC_LOCKB		(1 <<  2)		/* PLLB Lock */#define		AT91_PMC_MCKRDY		(1 <<  3)		/* Master Clock */#define		AT91_PMC_PCK0RDY	(1 <<  8)		/* Programmable Clock 0 */#define		AT91_PMC_PCK1RDY	(1 <<  9)		/* Programmable Clock 1 */#define		AT91_PMC_PCK2RDY	(1 << 10)		/* Programmable Clock 2 */#define		AT91_PMC_PCK3RDY	(1 << 11)		/* Programmable Clock 3 */#define	AT91_PMC_IMR		(AT91_PMC + 0x6c)	/* Interrupt Mask Register *//* * System Timer. */#define	AT91_ST		0xd00#define	AT91_ST_CR		(AT91_ST + 0x00)	/* Control Register */#define 	AT91_ST_WDRST		(1 << 0)		/* Watchdog Timer Restart */#define	AT91_ST_PIMR		(AT91_ST + 0x04)	/* Period Interval Mode Register */#define		AT91_ST_PIV		(0xffff <<  0)		/* Period Interval Value */#define	AT91_ST_WDMR		(AT91_ST + 0x08)	/* Watchdog Mode Register */#define		AT91_ST_WDV		(0xffff <<  0)		/* Watchdog Counter Value */#define		AT91_ST_RSTEN		(1	<< 16)		/* Reset Enable */#define		AT91_ST_EXTEN		(1	<< 17)		/* External Signal Assertion Enable */#define	AT91_ST_RTMR		(AT91_ST + 0x0c)	/* Real-time Mode Register */#define		AT91_ST_RTPRES		(0xffff <<  0)		/* Real-time Prescalar Value */#define	AT91_ST_SR		(AT91_ST + 0x10)	/* Status Register */#define		AT91_ST_PITS		(1 << 0)		/* Period Interval Timer Status */#define		AT91_ST_WDOVF		(1 << 1) 		/* Watchdog Overflow */#define		AT91_ST_RTTINC		(1 << 2) 		/* Real-time Timer Increment */#define		AT91_ST_ALMS		(1 << 3) 		/* Alarm Status */#define	AT91_ST_IER		(AT91_ST + 0x14)	/* Interrupt Enable Register */#define	AT91_ST_IDR		(AT91_ST + 0x18)	/* Interrupt Disable Register */#define	AT91_ST_IMR		(AT91_ST + 0x1c)	/* Interrupt Mask Register */#define	AT91_ST_RTAR		(AT91_ST + 0x20)	/* Real-time Alarm Register */#define		AT91_ST_ALMV		(0xfffff << 0)		/* Alarm Value */

⌨️ 快捷键说明

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