📄 hal_pxa2x0.h
字号:
#define PXA2X0_GPSR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0118 )
#define PXA2X0_GPCR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0124 )
#define PXA2X0_GRER3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0130 )
#define PXA2X0_GFER3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x013c )
#define PXA2X0_GEDR3 PXA2X0_REGISTER( PXA2X0_GPIO_BASE+0x0148 )
#define PXA2X0_GPIO_NORM 0x00
#define PXA2X0_GPIO_AF1 0x01
#define PXA2X0_GPIO_AF2 0x02
#define PXA2X0_GPIO_AF3 0x03
#define PXA2X0_GPIO_IN 0
#define PXA2X0_GPIO_OUT 1
// Power Manager and Reset Control
#define PXA2X0_PM_BASE ( PXA2X0_PERIPHERALS_BASE + 0x0f00000 )
#define PXA2X0_PMCR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0000 )
#define PXA2X0_PSSR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0004 )
#define PXA2X0_PSPR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0008 )
#define PXA2X0_PWER PXA2X0_REGISTER( PXA2X0_PM_BASE+0x000c )
#define PXA2X0_PRER PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0010 )
#define PXA2X0_PFER PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0014 )
#define PXA2X0_PEDR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0018 )
#define PXA2X0_PCFR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x001c )
#define PXA2X0_PGSR0 PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0020 )
#define PXA2X0_PGSR1 PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0024 )
#define PXA2X0_PGSR2 PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0028 )
#define PXA2X0_RCSR PXA2X0_REGISTER( PXA2X0_PM_BASE+0x0030 )
// SSP
#define PXA2X0_SSP_BASE ( PXA2X0_PERIPHERALS_BASE + 0x1000000 )
#define PXA2X0_SSCR0 PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0000 )
#define PXA2X0_SSCR1 PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0004 )
#define PXA2X0_SSSR PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0008 )
#define PXA2X0_SSITR PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x000c )
#define PXA2X0_SSDR PXA2X0_REGISTER( PXA2X0_SSP_BASE+0x0010 )
// MMC Controller
#define PXA2X0_MMC_BASE ( PXA2X0_PERIPHERALS_BASE + 0x1100000 )
#define PXA2X0_MMC_STRPCL PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0000 )
#define PXA2X0_MMC_STAT PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0004 )
#define PXA2X0_MMC_CLKRT PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0008 )
#define PXA2X0_MMC_SPI PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x000c )
#define PXA2X0_MMC_CMDAT PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0010 )
#define PXA2X0_MMC_RESTO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0014 )
#define PXA2X0_MMC_RDTO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0018 )
#define PXA2X0_MMC_BLKLEN PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x001c )
#define PXA2X0_MMC_NOB PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0020 )
#define PXA2X0_MMC_PRTBUF PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0024 )
#define PXA2X0_MMC_I_MASK PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0028 )
#define PXA2X0_MMC_I_REG PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x002c )
#define PXA2X0_MMC_CMD PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0030 )
#define PXA2X0_MMC_ARGH PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0034 )
#define PXA2X0_MMC_ARGL PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0038 )
#define PXA2X0_MMC_RES PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x003c )
#define PXA2X0_MMC_RXFIFO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0040 )
#define PXA2X0_MMC_TXFIFO PXA2X0_REGISTER( PXA2X0_MMC_BASE+0x0044 )
// Clocks Manager
#define PXA2X0_CLK_BASE ( PXA2X0_PERIPHERALS_BASE + 0x1300000 )
#define PXA2X0_CCCR PXA2X0_REGISTER( PXA2X0_CLK_BASE+0x0000 )
#define PXA2X0_CKEN PXA2X0_REGISTER( PXA2X0_CLK_BASE+0x0004 )
#define PXA2X0_OSCC PXA2X0_REGISTER( PXA2X0_CLK_BASE+0x0008 )
// PXA25x CCCR bits
#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA25X
// Crystal Frequency to Memory Frequency multiplier
# define PXA2X0_CCCR_L09 (0x1f)
# define PXA2X0_CCCR_L27 (0x01)
# define PXA2X0_CCCR_L32 (0x02)
# define PXA2X0_CCCR_L36 (0x03)
# define PXA2X0_CCCR_L40 (0x04)
# define PXA2X0_CCCR_L45 (0x05)
// Memory frequency to to run mode frequency multiplier
# define PXA2X0_CCCR_M1 (0x1 << 5)
# define PXA2X0_CCCR_M2 (0x2 << 5)
# define PXA2X0_CCCR_M4 (0x3 << 5)
// Run mode frequency to turbo mode frequency multiplier
# define PXA2X0_CCCR_N10 (0x2 << 7) // N=1.0
# define PXA2X0_CCCR_N15 (0x3 << 7) // N=1.5
# define PXA2X0_CCCR_N20 (0x4 << 7) // N=2.0
# define PXA2X0_CCCR_N25 (0x5 << 7) // N=2.5
# define PXA2X0_CCCR_N30 (0x6 << 7) // N=3.0
#endif
// PXA27x CCCR bits
#ifdef CYGOPT_HAL_ARM_XSCALE_PXA2X0_VARIANT_PXA27X
// Run-mode-to-oscillator ratio
# define PXA27X_CCCR_L8 (0x08)
# define PXA27X_CCCR_L16 (0x10)
// Turbo-mode-to-run-mode ratio
# define PXA27X_CCCR_N1 (0x02 << 7)
# define PXA27X_CCCR_N1_5 (0x03 << 7)
# define PXA27X_CCCR_N2 (0x04 << 7)
# define PXA27X_CCCR_N2_5 (0x05 << 7)
# define PXA27X_CCCR_N3 (0x06 << 7)
# define PXA27X_CCCR_A (0x02000000)
# define PXA27X_CCCR_PLL_EARLY_EN (0x04000000)
# define PXA27X_CCCR_LCD_26 (0x08000000)
# define PXA27X_CCCR_PPDIS (0x40000000)
# define PXA27X_CCCR_CPDIS (0x80000000)
#endif
// LCD Controller
#define PXA2X0_LCCR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0000 )
#define PXA2X0_LCCR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0004 )
#define PXA2X0_LCCR2 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0008 )
#define PXA2X0_LCCR3 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x000c )
#define PXA2X0_FDADR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0200 )
#define PXA2X0_FSADR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0204 )
#define PXA2X0_FIDR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0208 )
#define PXA2X0_LDCMD0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x020c )
#define PXA2X0_FDADR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0210 )
#define PXA2X0_FSADR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0214 )
#define PXA2X0_FIDR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0218 )
#define PXA2X0_LDCMD1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x021c )
#define PXA2X0_FBR0 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0020 )
#define PXA2X0_FBR1 PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0024 )
#define PXA2X0_LCSR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0038 )
#define PXA2X0_LIIDR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x003c )
#define PXA2X0_TRGBR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0040 )
#define PXA2X0_TCR PXA2X0_REGISTER( PXA2X0_LCD_BASE+0x0044 )
// Memory Controller
#define PXA2X0_MDCNFG PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0000 )
#define PXA2X0_MDREFR PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0004 )
#define PXA2X0_MSC0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0008 )
#define PXA2X0_MSC1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x000c )
#define PXA2X0_MSC2 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0010 )
#define PXA2X0_MECR PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0014 )
#define PXA2X0_SXCNFG PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x001c )
#define PXA2X0_SXMRS PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0024 )
#define PXA2X0_MCMEM0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0028 )
#define PXA2X0_MCMEM1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x002c )
#define PXA2X0_MCATT0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0030 )
#define PXA2X0_MCATT1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0034 )
#define PXA2X0_MCIO0 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0038 )
#define PXA2X0_MCIO1 PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x003c )
#define PXA2X0_MDMRS PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0040 )
#define PXA2X0_BOOT_DEF PXA2X0_REGISTER( PXA2X0_MEMORY_CTL_BASE+0x0044 )
// UART definitions
// Register offsets
#define PXA2X0_UART_RBR ( 0x0000 ) // Receive Buffer Register
#define PXA2X0_UART_THR ( 0x0000 ) // Transmit Hold Register
#define PXA2X0_UART_IER ( 0x0004 ) // Interrupt Enable Register
#define PXA2X0_UART_IIR ( 0x0008 ) // Interrupt ID Register
#define PXA2X0_UART_FCR ( 0x0008 )
#define PXA2X0_UART_LCR ( 0x000c )
#define PXA2X0_UART_MCR ( 0x0010 )
#define PXA2X0_UART_LSR ( 0x0014 )
#define PXA2X0_UART_MSR ( 0x0018 )
#define PXA2X0_UART_SPR ( 0x001c )
#define PXA2X0_UART_ISR ( 0x0020 )
#define PXA2X0_UART_DLL ( 0x0000 )
#define PXA2X0_UART_DLH ( 0x0004 )
// The interrupt enable register bits.
#define PXA2X0_UART_IER_RAVIE 0x01 // enable received data available irq
#define PXA2X0_UART_IER_TIE 0x02 // enable transmit data request interrupt
#define PXA2X0_UART_IER_RLSE 0x04 // enable receiver line status irq
#define PXA2X0_UART_IER_MIE 0x08 // enable modem status interrupt
#define PXA2X0_UART_IER_RTOIE 0x10 // enable Rx timeout interrupt
#define PXA2X0_UART_IER_NRZE 0x20 // enable NRZ coding
#define PXA2X0_UART_IER_UUE 0x40 // enable the UART unit
#define PXA2X0_UART_IER_DMAE 0x80 // enable DMA requests
// The interrupt identification register bits.
#define PXA2X0_UART_IIR_IP 0x01 // 0 if interrupt pending
#define PXA2X0_UART_Tx 0x02
#define PXA2X0_UART_Rx 0x04
#define PXA2X0_UART_IIR_ID_MASK 0xff // mask for interrupt ID bits
// The line status register bits.
#define PXA2X0_UART_LSR_DR 0x01 // data ready
#define PXA2X0_UART_LSR_OE 0x02 // overrun error
#define PXA2X0_UART_LSR_PE 0x04 // parity error
#define PXA2X0_UART_LSR_FE 0x08 // framing error
#define PXA2X0_UART_LSR_BI 0x10 // break interrupt
#define PXA2X0_UART_LSR_THRE 0x20 // transmitter holding register empty
#define PXA2X0_UART_LSR_TEMT 0x40 // transmitter holding and Tx shift registers empty
#define PXA2X0_UART_LSR_ERR 0x80 // any error condition (FIFOE)
// The modem status register bits.
#define PXA2X0_UART_MSR_DCTS 0x01 // delta clear to send
#define PXA2X0_UART_MSR_DDSR 0x02 // delta data set ready
#define PXA2X0_UART_MSR_TERI 0x04 // trailing edge ring indicator
#define PXA2X0_UART_MSR_DDCD 0x08 // delta data carrier detect
#define PXA2X0_UART_MSR_CTS 0x10 // clear to send
#define PXA2X0_UART_MSR_DSR 0x20 // data set ready
#define PXA2X0_UART_MSR_RI 0x40 // ring indicator
#define PXA2X0_UART_MSR_DCD 0x80 // data carrier detect
// The line control register bits.
#define PXA2X0_UART_LCR_WLS0 0x01 // word length select bit 0
#define PXA2X0_UART_LCR_WLS1 0x02 // word length select bit 1
#define PXA2X0_UART_LCR_STB 0x04 // number of stop bits
#define PXA2X0_UART_LCR_PEN 0x08 // parity enable
#define PXA2X0_UART_LCR_EPS 0x10 // even parity select
#define PXA2X0_UART_LCR_SP 0x20 // stick parity
#define PXA2X0_UART_LCR_SB 0x40 // set break
#define PXA2X0_UART_LCR_DLAB 0x80 // divisor latch access bit
// The FIFO control register
#define PXA2X0_UART_FCR_FCR0 0x01 // enable xmit and rcvr fifos
#define PXA2X0_UART_FCR_FCR1 0x02 // clear RCVR FIFO
#define PXA2X0_UART_FCR_FCR2 0x04 // clear XMIT FIFO
#define PXA2X0_UART_FCR_ITL0 0x40 // Interrupt trigger level (ITL) bit 0
#define PXA2X0_UART_FCR_ITL1 0x80 // Interrupt trigger level (ITL) bit 1
#define PXA2X0_UART_FCR_ITL_1BYTE 0x00 // i byte triggers interrupt
#define PXA2X0_UART_BAUD_RATE_DIVISOR(x) ((14745600/(16*(x))))
#endif // CYGONCE_HAL_ARM_PXA2X0_H
// EOF hal_pxa2x0.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -