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

📄 hal_pxa2x0.h

📁 开放源码实时操作系统源码.
💻 H
📖 第 1 页 / 共 3 页
字号:
#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 + -