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

📄 hwdefs.h

📁 ARM下加一个硬件驱动比较复杂
💻 H
📖 第 1 页 / 共 5 页
字号:
#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 + -