mc68328.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 1,267 行 · 第 1/3 页

H
1,267
字号
#define SPIMCONT_IRQEN		 0x0040 /* IRQ Enable */#define SPIMCONT_SPIMIRQ	 0x0080	/* Interrupt Request */#define SPIMCONT_XCH		 0x0100	/* Exchange */#define SPIMCONT_RSPIMEN	 0x0200	/* Enable SPIM */#define SPIMCONT_DATA_RATE_MASK	 0xe000	/* SPIM Data Rate */#define SPIMCONT_DATA_RATE_SHIFT 13/* 'EZ328-compatible definitions */#define SPIMCONT_IRQ	SPIMCONT_SPIMIRQ#define SPIMCONT_ENABLE	SPIMCONT_SPIMEN/********** * * 0xFFFFF9xx -- UART * **********//* * UART Status/Control Register */#define USTCNT_ADDR	0xfffff900#define USTCNT		WORD_REF(USTCNT_ADDR)#define USTCNT_TXAVAILEN	0x0001	/* Transmitter Available Int Enable */#define USTCNT_TXHALFEN		0x0002	/* Transmitter Half Empty Int Enable */#define USTCNT_TXEMPTYEN	0x0004	/* Transmitter Empty Int Enable */#define USTCNT_RXREADYEN	0x0008	/* Receiver Ready Interrupt Enable */#define USTCNT_RXHALFEN		0x0010	/* Receiver Half-Full Int Enable */#define USTCNT_RXFULLEN		0x0020	/* Receiver Full Interrupt Enable */#define USTCNT_CTSDELTAEN	0x0040	/* CTS Delta Interrupt Enable */#define USTCNT_GPIODELTAEN	0x0080	/* Old Data Interrupt Enable */#define USTCNT_8_7		0x0100	/* Eight or seven-bit transmission */#define USTCNT_STOP		0x0200	/* Stop bit transmission */#define USTCNT_ODD_EVEN		0x0400	/* Odd Parity */#define	USTCNT_PARITYEN		0x0800	/* Parity Enable */#define USTCNT_CLKMODE		0x1000	/* Clock Mode Select */#define	USTCNT_TXEN		0x2000	/* Transmitter Enable */#define USTCNT_RXEN		0x4000	/* Receiver Enable */#define USTCNT_UARTEN		0x8000	/* UART Enable *//* 'EZ328-compatible definitions */#define USTCNT_TXAE	USTCNT_TXAVAILEN #define USTCNT_TXHE	USTCNT_TXHALFEN#define USTCNT_TXEE	USTCNT_TXEMPTYEN#define USTCNT_RXRE	USTCNT_RXREADYEN#define USTCNT_RXHE	USTCNT_RXHALFEN#define USTCNT_RXFE	USTCNT_RXFULLEN#define USTCNT_CTSD	USTCNT_CTSDELTAEN#define USTCNT_ODD	USTCNT_ODD_EVEN#define USTCNT_PEN	USTCNT_PARITYEN#define USTCNT_CLKM	USTCNT_CLKMODE#define USTCNT_UEN	USTCNT_UARTEN/* * UART Baud Control Register */#define UBAUD_ADDR	0xfffff902#define UBAUD		WORD_REF(UBAUD_ADDR)#define UBAUD_PRESCALER_MASK	0x003f	/* Actual divisor is 65 - PRESCALER */#define UBAUD_PRESCALER_SHIFT	0#define UBAUD_DIVIDE_MASK	0x0700	/* Baud Rate freq. divizor */#define UBAUD_DIVIDE_SHIFT	8#define UBAUD_BAUD_SRC		0x0800	/* Baud Rate Source */#define UBAUD_GPIOSRC		0x1000	/* GPIO source */#define UBAUD_GPIODIR		0x2000	/* GPIO Direction */#define UBAUD_GPIO		0x4000	/* Current GPIO pin status */#define UBAUD_GPIODELTA		0x8000	/* GPIO pin value changed *//* * UART Receiver Register  */#define URX_ADDR	0xfffff904#define URX		WORD_REF(URX_ADDR)#define URX_RXDATA_ADDR	0xfffff905#define URX_RXDATA	BYTE_REF(URX_RXDATA_ADDR)#define URX_RXDATA_MASK	 0x00ff	/* Received data */#define URX_RXDATA_SHIFT 0#define URX_PARITY_ERROR 0x0100	/* Parity Error */#define URX_BREAK	 0x0200	/* Break Detected */#define URX_FRAME_ERROR	 0x0400	/* Framing Error */#define URX_OVRUN	 0x0800	/* Serial Overrun */#define URX_DATA_READY	 0x2000	/* Data Ready (FIFO not empty) */#define URX_FIFO_HALF	 0x4000 /* FIFO is Half-Full */#define URX_FIFO_FULL	 0x8000	/* FIFO is Full *//* * UART Transmitter Register  */#define UTX_ADDR	0xfffff906#define UTX		WORD_REF(UTX_ADDR)#define UTX_TXDATA_ADDR	0xfffff907#define UTX_TXDATA	BYTE_REF(UTX_TXDATA_ADDR)#define UTX_TXDATA_MASK	 0x00ff	/* Data to be transmitted */#define UTX_TXDATA_SHIFT 0#define UTX_CTS_DELTA	 0x0100	/* CTS changed */#define UTX_CTS_STATUS	 0x0200	/* CTS State */#define	UTX_IGNORE_CTS	 0x0800	/* Ignore CTS */#define UTX_SEND_BREAK	 0x1000	/* Send a BREAK */#define UTX_TX_AVAIL	 0x2000	/* Transmit FIFO has a slot available */#define UTX_FIFO_HALF	 0x4000	/* Transmit FIFO is half empty */#define UTX_FIFO_EMPTY	 0x8000	/* Transmit FIFO is empty *//* 'EZ328-compatible definitions */#define UTX_CTS_STAT	UTX_CTS_STATUS#define UTX_NOCTS	UTX_IGNORE_CTS/* * UART Miscellaneous Register  */#define UMISC_ADDR	0xfffff908#define UMISC		WORD_REF(UMISC_ADDR)#define UMISC_TX_POL	 0x0004	/* Transmit Polarity */#define UMISC_RX_POL	 0x0008	/* Receive Polarity */#define UMISC_IRDA_LOOP	 0x0010	/* IrDA Loopback Enable */#define UMISC_IRDA_EN	 0x0020	/* Infra-Red Enable */#define UMISC_RTS	 0x0040	/* Set RTS status */#define UMISC_RTSCONT	 0x0080	/* Choose RTS control */#define UMISC_LOOP	 0x1000	/* Serial Loopback Enable */#define UMISC_FORCE_PERR 0x2000	/* Force Parity Error */#define UMISC_CLKSRC	 0x4000	/* Clock Source *//* generalization of uart control registers to support multiple ports: */typedef volatile struct {  volatile unsigned short int ustcnt;  volatile unsigned short int ubaud;  union {    volatile unsigned short int w;    struct {      volatile unsigned char status;      volatile unsigned char rxdata;    } b;  } urx;  union {    volatile unsigned short int w;    struct {      volatile unsigned char status;      volatile unsigned char txdata;    } b;  } utx;  volatile unsigned short int umisc;  volatile unsigned short int pad1;  volatile unsigned short int pad2;  volatile unsigned short int pad3;} m68328_uart __attribute__((packed));/********** * * 0xFFFFFAxx -- LCD Controller * **********//* * LCD Screen Starting Address Register  */#define LSSA_ADDR	0xfffffa00#define LSSA		LONG_REF(LSSA_ADDR)#define LSSA_SSA_MASK	0xfffffffe	/* Bit 0 is reserved *//* * LCD Virtual Page Width Register  */#define LVPW_ADDR	0xfffffa05#define LVPW		BYTE_REF(LVPW_ADDR)/* * LCD Screen Width Register (not compatible with 'EZ328 !!!) */#define LXMAX_ADDR	0xfffffa08#define LXMAX		WORD_REF(LXMAX_ADDR)#define LXMAX_XM_MASK	0x02ff		/* Bits 0-3 are reserved *//* * LCD Screen Height Register */#define LYMAX_ADDR	0xfffffa0a#define LYMAX		WORD_REF(LYMAX_ADDR)#define LYMAX_YM_MASK	0x02ff		/* Bits 10-15 are reserved *//* * LCD Cursor X Position Register */#define LCXP_ADDR	0xfffffa18#define LCXP		WORD_REF(LCXP_ADDR)#define LCXP_CC_MASK	0xc000		/* Cursor Control */#define   LCXP_CC_TRAMSPARENT	0x0000#define   LCXP_CC_BLACK		0x4000#define   LCXP_CC_REVERSED	0x8000#define   LCXP_CC_WHITE		0xc000#define LCXP_CXP_MASK	0x02ff		/* Cursor X position *//* * LCD Cursor Y Position Register */#define LCYP_ADDR	0xfffffa1a#define LCYP		WORD_REF(LCYP_ADDR)#define LCYP_CYP_MASK	0x01ff		/* Cursor Y Position *//* * LCD Cursor Width and Heigth Register */#define LCWCH_ADDR	0xfffffa1c#define LCWCH		WORD_REF(LCWCH_ADDR)#define LCWCH_CH_MASK	0x001f		/* Cursor Height */#define LCWCH_CH_SHIFT	0#define LCWCH_CW_MASK	0x1f00		/* Cursor Width */#define LCWCH_CW_SHIFT	8/* * LCD Blink Control Register */#define LBLKC_ADDR	0xfffffa1f#define LBLKC		BYTE_REF(LBLKC_ADDR)#define LBLKC_BD_MASK	0x7f	/* Blink Divisor */#define LBLKC_BD_SHIFT	0#define LBLKC_BKEN	0x80	/* Blink Enabled *//* * LCD Panel Interface Configuration Register  */#define LPICF_ADDR	0xfffffa20#define LPICF		BYTE_REF(LPICF_ADDR)#define LPICF_GS_MASK	 0x01	 /* Gray-Scale Mode */#define	  LPICF_GS_BW	   0x00#define   LPICF_GS_GRAY_4  0x01#define LPICF_PBSIZ_MASK 0x06	/* Panel Bus Width */#define   LPICF_PBSIZ_1	   0x00#define   LPICF_PBSIZ_2    0x02#define   LPICF_PBSIZ_4    0x04/* * LCD Polarity Configuration Register  */#define LPOLCF_ADDR	0xfffffa21#define LPOLCF		BYTE_REF(LPOLCF_ADDR)#define LPOLCF_PIXPOL	0x01	/* Pixel Polarity */#define LPOLCF_LPPOL	0x02	/* Line Pulse Polarity */#define LPOLCF_FLMPOL	0x04	/* Frame Marker Polarity */#define LPOLCF_LCKPOL	0x08	/* LCD Shift Lock Polarity *//* * LACD (LCD Alternate Crystal Direction) Rate Control Register */#define LACDRC_ADDR	0xfffffa23#define LACDRC		BYTE_REF(LACDRC_ADDR)#define LACDRC_ACD_MASK	 0x0f	/* Alternate Crystal Direction Control */#define LACDRC_ACD_SHIFT 0/* * LCD Pixel Clock Divider Register */#define LPXCD_ADDR	0xfffffa25#define LPXCD		BYTE_REF(LPXCD_ADDR)#define	LPXCD_PCD_MASK	0x3f 	/* Pixel Clock Divider */#define LPXCD_PCD_SHIFT	0/* * LCD Clocking Control Register */#define LCKCON_ADDR	0xfffffa27#define LCKCON		BYTE_REF(LCKCON_ADDR)#define LCKCON_PCDS	 0x01	/* Pixel Clock Divider Source Select */#define LCKCON_DWIDTH	 0x02	/* Display Memory Width  */#define LCKCON_DWS_MASK	 0x3c	/* Display Wait-State */#define LCKCON_DWS_SHIFT 2#define LCKCON_DMA16	 0x40	/* DMA burst length */#define LCKCON_LCDON	 0x80	/* Enable LCD Controller *//* 'EZ328-compatible definitions */#define LCKCON_DW_MASK	LCKCON_DWS_MASK#define LCKCON_DW_SHIFT	LCKCON_DWS_SHIFT/* * LCD Last Buffer Address Register */#define LLBAR_ADDR	0xfffffa29#define LLBAR		BYTE_REF(LLBAR_ADDR)#define LLBAR_LBAR_MASK	 0x7f	/* Number of memory words to fill 1 line */#define LLBAR_LBAR_SHIFT 0/* * LCD Octet Terminal Count Register  */#define LOTCR_ADDR	0xfffffa2b#define LOTCR		BYTE_REF(LOTCR_ADDR)/* * LCD Panning Offset Register */#define LPOSR_ADDR	0xfffffa2d#define LPOSR		BYTE_REF(LPOSR_ADDR)#define LPOSR_BOS	0x08	/* Byte offset (for B/W mode only */#define LPOSR_POS_MASK	0x07	/* Pixel Offset Code */#define LPOSR_POS_SHIFT	0/* * LCD Frame Rate Control Modulation Register */#define LFRCM_ADDR	0xfffffa31#define LFRCM		BYTE_REF(LFRCM_ADDR)#define LFRCM_YMOD_MASK	 0x0f	/* Vertical Modulation */#define LFRCM_YMOD_SHIFT 0#define LFRCM_XMOD_MASK	 0xf0	/* Horizontal Modulation */#define LFRCM_XMOD_SHIFT 4/* * LCD Gray Palette Mapping Register */#define LGPMR_ADDR	0xfffffa32#define LGPMR		WORD_REF(LGPMR_ADDR)#define LGPMR_GLEVEL3_MASK	0x000f#define LGPMR_GLEVEL3_SHIFT	0 #define LGPMR_GLEVEL2_MASK	0x00f0#define LGPMR_GLEVEL2_SHIFT	4 #define LGPMR_GLEVEL0_MASK	0x0f00#define LGPMR_GLEVEL0_SHIFT	8 #define LGPMR_GLEVEL1_MASK	0xf000#define LGPMR_GLEVEL1_SHIFT	12/********** * * 0xFFFFFBxx -- Real-Time Clock (RTC) * **********//* * RTC Hours Minutes and Seconds Register */#define RTCTIME_ADDR	0xfffffb00#define RTCTIME		LONG_REF(RTCTIME_ADDR)#define RTCTIME_SECONDS_MASK	0x0000003f	/* Seconds */#define RTCTIME_SECONDS_SHIFT	0#define RTCTIME_MINUTES_MASK	0x003f0000	/* Minutes */#define RTCTIME_MINUTES_SHIFT	16#define RTCTIME_HOURS_MASK	0x1f000000	/* Hours */#define RTCTIME_HOURS_SHIFT	24/* *  RTC Alarm Register  */#define RTCALRM_ADDR    0xfffffb04#define RTCALRM         LONG_REF(RTCALRM_ADDR)#define RTCALRM_SECONDS_MASK    0x0000003f      /* Seconds */#define RTCALRM_SECONDS_SHIFT   0#define RTCALRM_MINUTES_MASK    0x003f0000      /* Minutes */#define RTCALRM_MINUTES_SHIFT   16#define RTCALRM_HOURS_MASK      0x1f000000      /* Hours */#define RTCALRM_HOURS_SHIFT     24/* * RTC Control Register */#define RTCCTL_ADDR	0xfffffb0c#define RTCCTL		WORD_REF(RTCCTL_ADDR)#define RTCCTL_384	0x0020	/* Crystal Selection */#define RTCCTL_ENABLE	0x0080	/* RTC Enable *//* 'EZ328-compatible definitions */#define RTCCTL_XTL	RTCCTL_384#define RTCCTL_EN	RTCCTL_ENABLE/* * RTC Interrupt Status Register  */#define RTCISR_ADDR	0xfffffb0e#define RTCISR		WORD_REF(RTCISR_ADDR)#define RTCISR_SW	0x0001	/* Stopwatch timed out */#define RTCISR_MIN	0x0002	/* 1-minute interrupt has occurred */#define RTCISR_ALM	0x0004	/* Alarm interrupt has occurred */#define RTCISR_DAY	0x0008	/* 24-hour rollover interrupt has occurred */#define RTCISR_1HZ	0x0010	/* 1Hz interrupt has occurred *//* * RTC Interrupt Enable Register */#define RTCIENR_ADDR	0xfffffb10#define RTCIENR		WORD_REF(RTCIENR_ADDR)#define RTCIENR_SW	0x0001	/* Stopwatch interrupt enable */#define RTCIENR_MIN	0x0002	/* 1-minute interrupt enable */#define RTCIENR_ALM	0x0004	/* Alarm interrupt enable */#define RTCIENR_DAY	0x0008	/* 24-hour rollover interrupt enable */#define RTCIENR_1HZ	0x0010	/* 1Hz interrupt enable *//*  * Stopwatch Minutes Register */#define STPWCH_ADDR	0xfffffb12#define STPWCH		WORD_REF(STPWCH)#define STPWCH_CNT_MASK	 0x00ff	/* Stopwatch countdown value */#define SPTWCH_CNT_SHIFT 0#endif /* _MC68328_H_ */

⌨️ 快捷键说明

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