📄 hwdefs.h
字号:
#define VICPROT_PROTECT 0x00000001
//
// Vector Control register.
//
#define VECTCNTL_E 0x00000020
#define VECTCNTL_INTSOURCE 0x0000001F
//
// Interrupt bit allocation
//
#define INT1_UNUSED1 0x00000001
#define INT1_UNUSED2 0x00000002
#define INT1_COMMRX 0x00000004
#define INT1_COMMTX 0x00000008
#define INT1_TIMER1 0x00000010
#define INT1_TIMER2 0x00000020
#define INT1_AAC 0x00000040
#define INT1_DMAM2P0 0x00000080
#define INT1_DMAM2P1 0x00000100
#define INT1_DMAM2P2 0x00000200
#define INT1_DMAM2P3 0x00000400
#define INT1_DMAM2P4 0x00000800
#define INT1_DMAM2P5 0x00001000
#define INT1_DMAM2P6 0x00002000
#define INT1_DMAM2P7 0x00004000
#define INT1_DMAM2P8 0x00008000
#define INT1_DMAM2P9 0x00010000
#define INT1_DMAM2M0 0x00020000
#define INT1_DMAM2M1 0x00040000
#define INT1_GPIO0 0x00080000
#define INT1_GPIO1 0x00100000
#define INT1_GPIO2 0x00200000
#define INT1_GPIO3 0x00400000
#define INT1_UARTRX1 0x00800000
#define INT1_UARTTX1 0x01000000
#define INT1_UARTRX2 0x02000000
#define INT1_UARTTX2 0x04000000
#define INT1_UARTRX3 0x08000000
#define INT1_UARTTX3 0x10000000
#define INT1_KEYPAD 0x20000000
#define INT1_TOUCH 0x40000000
#define INT1_GRAPHICS 0x80000000
#define INT2_EXT0 0x00000001
#define INT2_EXT1 0x00000002
#define INT2_EXT2 0x00000004
#define INT2_TINTR 0x00000008
#define INT2_WEINT 0x00000010
#define INT2_RTC 0x00000020
#define INT2_IRDA 0x00000040
#define INT2_ETHERNET 0x00000080
#define INT2_EXT3 0x00000100
#define INT2_PROG 0x00000200
#define INT2_CLK1HZ 0x00000400
#define INT2_VSYNC 0x00000800
#define INT2_VIDEOFIFO 0x00001000
#define INT2_SSPRX 0x00002000
#define INT2_SSPTX 0x00004000
#define INT2_GPIO4 0x00008000
#define INT2_GPIO5 0x00010000
#define INT2_GPIO6 0x00020000
#define INT2_GPIO7 0x00040000
#define INT2_TIMER3 0x00080000
#define INT2_UART1 0x00100000
#define INT2_SPI 0x00200000
#define INT2_UART2 0x00400000
#define INT2_UART3 0x00800000
#define INT2_USB 0x01000000
#define INT2_PME 0x02000000
#define INT2_DSP 0x04000000
#define INT2_GPIO 0x08000000//can int
#define INT2_SAI 0x10000000
//
// PCMCIA interrupt names
//
#define INT1_PCMCIA_CD1 INT1_GPIO1
#define INT1_PCMCIA_CD2 INT1_GPIO2
#define INT1_PCMCIA_BVD1 INT1_GPIO3
#define INT2_PCMCIA_BVD2 INT2_GPIO4
#define INT2_PCMCIA_IRQ INT2_GPIO6
//
// Timers
//
#define TIM_BASE (VIRTUAL_SYSTEM_ASIC_REGS_BASE + 0x00810000)
#define TIM_TIMER1LOAD (volatile ULONG *)(TIM_BASE + 0x0000)
#define TIM_TIMER1VALUE (volatile ULONG *)(TIM_BASE + 0x0004)
#define TIM_TIMER1CONTROL (volatile ULONG *)(TIM_BASE + 0x0008)
#define TIM_TIMER1CLEAR (volatile ULONG *)(TIM_BASE + 0x000C)
#define TIM_TIMER2LOAD (volatile ULONG *)(TIM_BASE + 0x0020)
#define TIM_TIMER2VALUE (volatile ULONG *)(TIM_BASE + 0x0024)
#define TIM_TIMER2CONTROL (volatile ULONG *)(TIM_BASE + 0x0028)
#define TIM_TIMER2CLEAR (volatile ULONG *)(TIM_BASE + 0x002C)
#define TIM_DEBUGVALUELOW (volatile ULONG *)(TIM_BASE + 0x0060)
#define TIM_DEBUGVALUEHIGH (volatile ULONG *)(TIM_BASE + 0x0064)
#define TIM_TIMER3LOAD (volatile ULONG *)(TIM_BASE + 0x0080)
#define TIM_TIMER3VALUE (volatile ULONG *)(TIM_BASE + 0x0084)
#define TIM_TIMER3CONTROL (volatile ULONG *)(TIM_BASE + 0x0088)
#define TIM_TIMER3CLEAR (volatile ULONG *)(TIM_BASE + 0x008C)
//
// Timer control bits. These are for Timers 1-3
//
#define TIMERCONTROL_CLKSEL 0x00000008
#define TIMERCONTROL_MODE 0x00000040
#define TIMERCONTROL_ENABLE 0x00000080
//
// Debug timer bit fields.
//
#define DEBUGVALUEHIGH_MASK 0x000000FF
#define DEBUGVALUEHIGH_ENABLE 0x00000100
#define DEBUGVALUELOW_MASK 0xFFFFFFFF
//
// I2S port
//
#define SAI_BASE (VIRTUAL_SYSTEM_ASIC_REGS_BASE + 0x00820000)
#define SAI_TX_CLKCFG (volatile ULONG *)(SAI_BASE + 0x0000)
#define SAI_RX_CLKCFG (volatile ULONG *)(SAI_BASE + 0x0004)
#define SAI_GSR (volatile ULONG *)(SAI_BASE + 0x0008)
#define SAI_GCR (volatile ULONG *)(SAI_BASE + 0x000c)
#define SAI_TX0_LEFT (volatile ULONG *)(SAI_BASE + 0x0010)
#define SAI_TX0_RIGHT (volatile ULONG *)(SAI_BASE + 0x0014)
#define SAI_TX1_LEFT (volatile ULONG *)(SAI_BASE + 0x0018)
#define SAI_TX1_RIGHT (volatile ULONG *)(SAI_BASE + 0x001c)
#define SAI_TX2_LEFT (volatile ULONG *)(SAI_BASE + 0x0020)
#define SAI_TX2_RIGHT (volatile ULONG *)(SAI_BASE + 0x0024)
#define SAI_TX_LCR (volatile ULONG *)(SAI_BASE + 0x0028)
#define SAI_TX_CR (volatile ULONG *)(SAI_BASE + 0x002C)
#define SAI_TX_WL (volatile ULONG *)(SAI_BASE + 0x0030)
#define SAI_TX0_EN (volatile ULONG *)(SAI_BASE + 0x0034)
#define SAI_TX1_EN (volatile ULONG *)(SAI_BASE + 0x0038)
#define SAI_TX2_EN (volatile ULONG *)(SAI_BASE + 0x003C)
#define SAI_RX0_LEFT (volatile ULONG *)(SAI_BASE + 0x0040)
#define SAI_RX0_RIGHT (volatile ULONG *)(SAI_BASE + 0x0044)
#define SAI_RX1_LEFT (volatile ULONG *)(SAI_BASE + 0x0048)
#define SAI_RX1_RIGHT (volatile ULONG *)(SAI_BASE + 0x004c)
#define SAI_RX2_LEFT (volatile ULONG *)(SAI_BASE + 0x0050)
#define SAI_RX2_RIGHT (volatile ULONG *)(SAI_BASE + 0x0054)
#define SAI_RX_LCR (volatile ULONG *)(SAI_BASE + 0x0058)
#define SAI_RX_CR (volatile ULONG *)(SAI_BASE + 0x005C)
#define SAI_RX_WL (volatile ULONG *)(SAI_BASE + 0x0060)
#define SAI_RX0_EN (volatile ULONG *)(SAI_BASE + 0x0064)
#define SAI_RX1_EN (volatile ULONG *)(SAI_BASE + 0x0068)
#define SAI_RX2_EN (volatile ULONG *)(SAI_BASE + 0x006C)
#define CLKCFG_POLARITY 0x00000001
#define CLKCFG_TCKP 0x00000002
#define CLKCFG_TREL 0x00000004
#define CLKCFG_MST 0x00000008
#define CLKCFG_NBCG 0x00000010
#define CLKCFG_BCR_MASK 0x00000060
#define CLKCFG_BCR_32X 0x00000000
#define CLKCFG_BCR_64X 0x00000020
#define CLKCFG_BCR_128X 0x00000040
#define TX_LCR_TXDIR 0x00000001
#define TX_LCR_UNDERFLOW_ZERO 0x00000002
#define TX_LCR_RIGHT_JUSTIFY 0x00000004
#define TX_CR_TXHALFEMPTY 0x00000001
#define TX_CR_TXUFIE 0x00000002
#define RX_LCR_RXDIR 0x00000001
#define RX_LCR_RIGHT_JUSTIFY 0x00000002
#define RX_CR_RXHALFFULL 0x00000001
#define RX_CR_OVERFLOW_INT 0x00000002
#define WL_MASK 0x00000003
#define WL_16BIT 0x00000000
#define WL_24BIT 0x00000001
#define WL_32BIT 0x00000002
#define GSR_TX0_UNDERFLOW 0x00000001
#define GSR_TX1_UNDERFLOW 0x00000002
#define GSR_TX2_UNDERFLOW 0x00000004
#define GSR_RX0_OVERFLOW 0x00000008
#define GSR_RX1_OVERFLOW 0x00000010
#define GSR_RX2_OVERFLOW 0x00000020
#define GSR_TX0_OVERFLOW 0x00000040
#define GSR_TX1_OVERFLOW 0x00000080
#define GSR_TX2_OVERFLOW 0x00000100
#define GSR_RX0_UNDERFLOW 0x00000200
#define GSR_RX1_UNDERFLOW 0x00000400
#define GSR_RX2_UNDERFLOW 0x00000800
#define GSR_TX0_FIFO_FULL 0x00001000
#define GSR_TX0_FIFO_EMPTY 0x00002000
#define GSR_TX0_FIFO_HALF_EMPTY 0x00004000
#define GSR_RX0_FIFO_FULL 0x00008000
#define GSR_RX0_FIFO_EMPTY 0x00010000
#define GSR_RX0_FIFO_HALF_FULL 0x00020000
#define GSR_TX1_FIFO_FULL 0x00040000
#define GSR_TX1_FIFO_EMPTY 0x00080000
#define GSR_TX1_FIFO_HALF_EMPTY 0x00100000
#define RX1_FIFO_FULL 0x00200000
#define RX1_FIFO_EMPTY 0x00400000
#define RX1_FIFO_HALF_FULL 0x00800000
#define TX2_FIFO_FULL 0x01000000
#define TX2_FIFO_EMPTY 0x02000000
#define TX2_FIFO_HALF_EMPTY 0x04000000
#define RX2_FIFO_FULL 0x08000000
#define RX2_FIFO_EMPTY 0x10000000
#define RX2_FIFO_HALF_FULL 0x20000000
#define GCR_PCLK 0x00000001
#define GCR_LOOPBACK 0x00000002
//
// GPIO port
//
#define GPIO_BASE (VIRTUAL_SYSTEM_ASIC_REGS_BASE + 0x00840000)
#define GPIO_PADR (volatile ULONG *)(GPIO_BASE + 0x0000)
#define GPIO_PBDR (volatile ULONG *)(GPIO_BASE + 0x0004)
#define GPIO_PCDR (volatile ULONG *)(GPIO_BASE + 0x0008)
#define GPIO_PDDR (volatile ULONG *)(GPIO_BASE + 0x000C)
#define GPIO_PADDR (volatile ULONG *)(GPIO_BASE + 0x0010)
#define GPIO_PBDDR (volatile ULONG *)(GPIO_BASE + 0x0014)
#define GPIO_PCDDR (volatile ULONG *)(GPIO_BASE + 0x0018)
#define GPIO_PDDDR (volatile ULONG *)(GPIO_BASE + 0x001C)
#define GPIO_PEDR (volatile ULONG *)(GPIO_BASE + 0x0020)
#define GPIO_PEDDR (volatile ULONG *)(GPIO_BASE + 0x0024)
#define GPIO_KSCAN (volatile ULONG *)(GPIO_BASE + 0x0028)
#define GPIO_PINMUX (volatile ULONG *)(GPIO_BASE + 0x002C)
#define GPIO_PFDR (volatile ULONG *)(GPIO_BASE + 0x0030)
#define GPIO_PFDDR (volatile ULONG *)(GPIO_BASE + 0x0034)
#define GPIO_PGDR (volatile ULONG *)(GPIO_BASE + 0x0038)
#define GPIO_PGDDR (volatile ULONG *)(GPIO_BASE + 0x003C)
#define GPIO_PHDR (volatile ULONG *)(GPIO_BASE + 0x0040)
#define GPIO_PHDDR (volatile ULONG *)(GPIO_BASE + 0x0044)
#define GPIO_RAZ (volatile ULONG *)(GPIO_BASE + 0x0048)
#define GPIO_FINTTYPE1 (volatile ULONG *)(GPIO_BASE + 0x004C)
#define GPIO_FINTTYPE2 (volatile ULONG *)(GPIO_BASE + 0x0050)
#define GPIO_FEOI (volatile ULONG *)(GPIO_BASE + 0x0054)
#define GPIO_INTENF (volatile ULONG *)(GPIO_BASE + 0x0058)
#define GPIO_INTSTATUSF (volatile ULONG *)(GPIO_BASE + 0x005c)
#define GPIO_RAWINTSTATUSF (volatile ULONG *)(GPIO_BASE + 0x0060)
#define GPIO_GPIOFDB (volatile ULONG *)(GPIO_BASE + 0x0064)
#define GPIO_AINTTYPE1 (volatile ULONG *)(GPIO_BASE + 0x0090)
#define GPIO_AINTTYPE2 (volatile ULONG *)(GPIO_BASE + 0x0094)
#define GPIO_AEOI (volatile ULONG *)(GPIO_BASE + 0x0098)
#define GPIO_AINTEN (volatile ULONG *)(GPIO_BASE + 0x009C)
#define GPIO_INTSTATUSA (volatile ULONG *)(GPIO_BASE + 0x00A0)
#define GPIO_RAWINTSTATUSA (volatile ULONG *)(GPIO_BASE + 0x00A4)
#define GPIO_GPIOADB (volatile ULONG *)(GPIO_BASE + 0x00A8)
#define GPIO_BINTTYPE1 (volatile ULONG *)(GPIO_BASE + 0x00AC)
#define GPIO_BINTTYPE2 (volatile ULONG *)(GPIO_BASE + 0x00B0)
#define GPIO_BEOI (volatile ULONG *)(GPIO_BASE + 0x00B4)
#define GPIO_BINTEN (volatile ULONG *)(GPIO_BASE + 0x00B8)
#define GPIO_INTSTATUSB (volatile ULONG *)(GPIO_BASE + 0x00BC)
#define GPIO_RAWINTSTATUSB (volatile ULONG *)(GPIO_BASE + 0x00C0)
#define GPIO_GPIOBDB (volatile ULONG *)(GPIO_BASE + 0x00C4)
#define GPIO_EEDRIVE (volatile ULONG *)(GPIO_BASE + 0x00C8)
//
// GPIO Leds
//
#define GPIOE_RLED 0x01
#define GPIOE_GLED 0x02
//
// PCMCIA control signals.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -