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 + -
显示快捷键?