/* * linux/include/asm-arm/arch-sa1100/graphicsclient.h * * Created 2000/06/11 by Nicolas Pitre * Modified 7/27/00 by Woojung * * This file contains the hardware specific definitions for the * ADS GraphicsClient/ThinClient boards. */ #ifndef __ASM_ARCH_HARDWARE_H #error "include instead" #endif #define ADS_CPLD_BASE (0x10000000) #define ADS_p2v( x ) ((x) - ADS_CPLD_BASE + 0xf0000000) #define ADS_v2p( x ) ((x) - 0xf0000000 + ADS_CPLD_BASE) /* Parallel Port */ #define _ADS_PPDR 0x10020000 /* parallel port data reg */ #define _ADS_PPSR 0x10020004 /* parallel port status reg */ /* PCMCIA */ #define _ADS_CS_STATUS 0x10040000 /* PCMCIA status reg */ #define ADS_CS_ST_A_READY (1 << 0) /* Socket A Card Ready */ #define ADS_CS_ST_A_CD (1 << 2) /* Socket A Card Detect */ #define ADS_CS_ST_A_BUSY (1 << 4) /* Socket A Card Busy */ #define ADS_CS_ST_A_STS (1 << 6) /* Socket A Card STS */ #define _ADS_CS_PR 0x10040004 /* PCMCIA Power/Reset */ #define ADS_CS_PR_A_5V_POWER (1 << 0) /* Socket A Enable 5V Power */ #define ADS_CS_PR_A_3V_POWER (1 << 0) /* Socket A Enable 3.3V Power */ #define ADS_CS_PR_A_RESET (1 << 2) /* Socket A Reset */ #define _ADS_SW_SWITCHES 0x10060000 /* Software Switches */ /* Extra IRQ Controller */ #define _ADS_INT_ST1 0x10080000 /* IRQ Status #1 */ #define _ADS_INT_ST2 0x10080004 /* IRQ Status #2 */ #define _ADS_INT_EN1 0x10080008 /* IRQ Enable #1 */ #define _ADS_INT_EN2 0x1008000c /* IRQ Enable #2 */ /* Discrete Controller (AVR:Atmel AT90LS8535) */ #define _ADS_AVR_REG 0x10080018 /* On-Board Ethernet */ #define _ADS_ETHERNET 0x100e0000 /* Ethernet */ /* Extra UARTs */ #define _ADS_UARTA 0x10100000 /* UART A */ #define _ADS_UARTB 0x10120000 /* UART B */ #define _ADS_UARTC 0x10140000 /* UART C */ #define _ADS_UARTD 0x10160000 /* UART D */ /* UART controll lines GPIOs */ #define GPIO_GC_UART0_RTS GPIO_GPIO15 #define GPIO_GC_UART1_RTS GPIO_GPIO17 #define GPIO_GC_UART2_RTS GPIO_GPIO19 #define GPIO_GC_UART0_CTS GPIO_GPIO14 #define GPIO_GC_UART1_CTS GPIO_GPIO16 #define GPIO_GC_UART2_CTS GPIO_GPIO17 /* UART controll lines IRQs */ #define IRQ_GC_UART0_CTS IRQ_GPIO14 #define IRQ_GC_UART1_CTS IRQ_GPIO16 #define IRQ_GC_UART2_CTS IRQ_GPIO17 #ifndef __ASSEMBLY__ struct gc_uart_ctrl_data_t { int cts_gpio; int cts_prev_state; struct uart_info *info; struct uart_port *port; }; #endif /* __ASSEMBLY__ */ /* LEDs */ #define ADS_LED0 GPIO_GPIO20 /* on-board D22 */ #define ADS_LED1 GPIO_GPIO21 /* on-board D21 */ #define ADS_LED2 GPIO_GPIO22 /* on-board D20 */ #define ADS_LED3 GPIO_GPIO23 /* external */ #define ADS_LED4 GPIO_GPIO24 /* external */ #define ADS_LED5 GPIO_GPIO25 /* external */ #define ADS_LED6 GPIO_GPIO26 /* external */ #define ADS_LED7 GPIO_GPIO27 /* external */ /* Virtual register addresses */ #ifndef __ASSEMBLY__ #define ADS_INT_ST1 (*((volatile u_char *) ADS_p2v(_ADS_INT_ST1))) #define ADS_INT_ST2 (*((volatile u_char *) ADS_p2v(_ADS_INT_ST2))) #define ADS_INT_EN1 (*((volatile u_char *) ADS_p2v(_ADS_INT_EN1))) #define ADS_INT_EN2 (*((volatile u_char *) ADS_p2v(_ADS_INT_EN2))) #define ADS_ETHERNET ((int) ADS_p2v(_ADS_ETHERNET)) #define ADS_AVR_REG (*((volatile u_char *) ADS_p2v(_ADS_AVR_REG))) #endif