📄 hwdefs.h
字号:
#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
//
// 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_CSR (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 TX0_UNDERFLOW 0x00000001
#define TX1_UNDERFLOW 0x00000002
#define TX2_UNDERFLOW 0x00000004
#define RX0_OVERFLOW 0x00000008
#define RX1_OVERFLOW 0x00000010
#define RX2_OVERFLOW 0x00000020
#define TX0_OVERFLOW 0x00000040
#define TX1_OVERFLOW 0x00000080
#define TX2_OVERFLOW 0x00000100
#define RX0_UNDERFLOW 0x00000200
#define RX1_UNDERFLOW 0x00000400
#define RX2_UNDERFLOW 0x00000800
#define TX0_FIFO_FULL 0x00001000
#define TX0_FIFO_EMPTY 0x00002000
#define TX0_FIFO_HALF_EMPTY 0x00004000
#define RX0_FIFO_FULL 0x00008000
#define RX0_FIFO_EMPTY 0x00010000
#define RX0_FIFO_HALF_FULL 0x00020000
#define TX1_FIFO_FULL 0x00040000
#define TX1_FIFO_EMPTY 0x00080000
#define 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.
//
#define GPIOF_PCMCIA_WP 0x01
#define GPIOF_PCMCIA_CD1 0x02
#define GPIOF_PCMCIA_CD2 0x04
#define GPIOF_PCMCIA_BVD1 0x08
#define GPIOF_PCMCIA_BVD2 0x10
#define GPIOF_PCMCIA_VS1 0x20
#define GPIOF_PCMCIA_IRQ 0x40
#define GPIOF_PCMCIA_VS2 0x80
//
// EEprom control signals.
//
#define GPIOG_EECLK 0x01
#define GPIOG_EEDAT 0x02
#define GPIOG_SLA0 0x04
#define GPIOG_SLA1 0x08
//
// AAC/AC97 base
//
#define AC97I_BASE (VIRTUAL_SYSTEM_ASIC_REGS_BASE + 0x00880000)
#define AC97I_CH1_BASE ((volatile ULONG *)(AC97I_BASE + 0x00))
#define AC97I_CH2_BASE ((volatile ULONG *)(AC97I_BASE + 0x20))
#define AC97I_CH3_BASE ((volatile ULONG *)(AC97I_BASE + 0x40))
#define AC97I_CH4_BASE ((volatile ULONG *)(AC97I_BASE + 0x60))
#define AC97I_S1DATA ((volatile ULONG *)(AC97I_BASE + 0x80))
#define AC97I_S2DATA ((volatile ULONG *)(AC97I_BASE + 0x84))
#define AC97I_S12DATA ((volatile ULONG *)(AC97I_BASE + 0x88))
#define AC97I_RGIS ((volatile ULONG *)(AC97I_BASE + 0x8C))
#define AC97I_GIS ((volatile ULONG *)(AC97I_BASE + 0x90))
#define AC97I_IM ((volatile ULONG *)(AC97I_BASE + 0x94))
#define AC97I_EOI ((volatile ULONG *)(AC97I_BASE + 0x98))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -