ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / asm-arm / arch-sa1100 / graphicsclient.h
1 /*
2  * linux/include/asm-arm/arch-sa1100/graphicsclient.h
3  *
4  * Created 2000/06/11 by Nicolas Pitre <nico@cam.org>
5  * Modified 7/27/00 by Woojung <whuh@applieddata.net>
6  *
7  * This file contains the hardware specific definitions for the 
8  * ADS GraphicsClient/ThinClient boards.
9  */
10
11 #ifndef __ASM_ARCH_HARDWARE_H
12 #error "include <asm/hardware.h> instead"
13 #endif
14
15
16 #define ADS_CPLD_BASE           (0x10000000)
17 #define ADS_p2v( x )            ((x) - ADS_CPLD_BASE + 0xf0000000)
18 #define ADS_v2p( x )            ((x) - 0xf0000000 + ADS_CPLD_BASE)
19
20
21 /* Parallel Port */
22
23 #define _ADS_PPDR               0x10020000      /* parallel port data reg */
24 #define _ADS_PPSR               0x10020004      /* parallel port status reg */
25
26
27 /* PCMCIA */
28
29 #define _ADS_CS_STATUS          0x10040000      /* PCMCIA status reg */
30 #define ADS_CS_ST_A_READY       (1 << 0)        /* Socket A Card Ready */
31 #define ADS_CS_ST_A_CD          (1 << 2)        /* Socket A Card Detect */
32 #define ADS_CS_ST_A_BUSY        (1 << 4)        /* Socket A Card Busy */
33 #define ADS_CS_ST_A_STS         (1 << 6)        /* Socket A Card STS */
34
35 #define _ADS_CS_PR              0x10040004      /* PCMCIA Power/Reset */
36 #define ADS_CS_PR_A_5V_POWER    (1 << 0)        /* Socket A Enable 5V Power */
37 #define ADS_CS_PR_A_3V_POWER    (1 << 0)        /* Socket A Enable 3.3V Power */
38 #define ADS_CS_PR_A_RESET               (1 << 2)        /* Socket A Reset */
39
40
41 #define _ADS_SW_SWITCHES        0x10060000      /* Software Switches */
42
43
44 /* Extra IRQ Controller */
45
46 #define _ADS_INT_ST1            0x10080000      /* IRQ Status #1 */
47 #define _ADS_INT_ST2            0x10080004      /* IRQ Status #2 */
48 #define _ADS_INT_EN1            0x10080008      /* IRQ Enable #1 */
49 #define _ADS_INT_EN2            0x1008000c      /* IRQ Enable #2 */
50
51 /* Discrete Controller (AVR:Atmel AT90LS8535) */
52 #define _ADS_AVR_REG            0x10080018
53
54 /* On-Board Ethernet */
55
56 #define _ADS_ETHERNET           0x100e0000      /* Ethernet */
57
58
59 /* Extra UARTs */
60
61 #define _ADS_UARTA              0x10100000      /* UART A */
62 #define _ADS_UARTB              0x10120000      /* UART B */
63 #define _ADS_UARTC              0x10140000      /* UART C */
64 #define _ADS_UARTD              0x10160000      /* UART D */
65
66 /* UART control lines GPIOs */
67 #define GPIO_GC_UART0_RTS       GPIO_GPIO15
68 #define GPIO_GC_UART1_RTS           GPIO_GPIO17
69 #define GPIO_GC_UART2_RTS           GPIO_GPIO19
70 #define GPIO_GC_UART0_CTS       GPIO_GPIO14
71 #define GPIO_GC_UART1_CTS       GPIO_GPIO16
72 #define GPIO_GC_UART2_CTS       GPIO_GPIO17
73
74 /* UART control lines IRQs */
75 #define IRQ_GC_UART0_CTS       IRQ_GPIO14
76 #define IRQ_GC_UART1_CTS       IRQ_GPIO16
77 #define IRQ_GC_UART2_CTS       IRQ_GPIO17
78
79 /* LEDs */
80
81 #define ADS_LED0        GPIO_GPIO20             /* on-board D22 */
82 #define ADS_LED1        GPIO_GPIO21             /* on-board D21 */
83 #define ADS_LED2        GPIO_GPIO22             /* on-board D20 */
84 #define ADS_LED3        GPIO_GPIO23             /* external */
85 #define ADS_LED4        GPIO_GPIO24             /* external */
86 #define ADS_LED5        GPIO_GPIO25             /* external */
87 #define ADS_LED6        GPIO_GPIO26             /* external */
88 #define ADS_LED7        GPIO_GPIO27             /* external */
89
90
91 /* Virtual register addresses */
92
93 #ifndef __ASSEMBLY__
94 #define ADS_INT_ST1     (*((volatile u_char *) ADS_p2v(_ADS_INT_ST1)))
95 #define ADS_INT_ST2     (*((volatile u_char *) ADS_p2v(_ADS_INT_ST2)))
96 #define ADS_INT_EN1     (*((volatile u_char *) ADS_p2v(_ADS_INT_EN1)))
97 #define ADS_INT_EN2     (*((volatile u_char *) ADS_p2v(_ADS_INT_EN2)))
98 #define ADS_ETHERNET    ((int) ADS_p2v(_ADS_ETHERNET))
99 #define ADS_AVR_REG     (*((volatile u_char *) ADS_p2v(_ADS_AVR_REG)))
100 #endif