v2.4.8 -> v2.4.8.1
[opensuse:kernel.git] / include / asm-arm / arch-sa1100 / hardware.h
1 /*
2  * linux/include/asm-arm/arch-sa1100/hardware.h
3  *
4  * Copyright (C) 1998 Nicolas Pitre <nico@cam.org>
5  *
6  * This file contains the hardware definitions for SA1100 architecture
7  *
8  * 2000/05/23 John Dorsey <john+@cs.cmu.edu>
9  *      Definitions for SA1111 added.
10  */
11
12 #ifndef __ASM_ARCH_HARDWARE_H
13 #define __ASM_ARCH_HARDWARE_H
14
15 #include <linux/config.h>
16 #include <asm/mach-types.h>
17
18
19 /* Flushing areas */
20 #define FLUSH_BASE_PHYS         0xe0000000      /* SA1100 zero bank */
21 #define FLUSH_BASE              0xf5000000
22 #define FLUSH_BASE_MINICACHE    0xf5800000
23 #define UNCACHEABLE_ADDR        0xfa050000
24
25
26 /*
27  * Those are statically mapped PCMCIA IO space for designs using it as a
28  * generic IO bus, typically with ISA parts, hardwired IDE interfaces, etc.
29  * The actual PCMCIA code is mapping required IO region at run time.
30  */
31 #define PCMCIA_IO_0_BASE        0xf6000000
32 #define PCMCIA_IO_1_BASE        0xf7000000
33
34
35 /*
36  * We requires absolute addresses i.e. (PCMCIA_IO_0_BASE + 0x3f8) for 
37  * in*()/out*() macros to be usable for all cases.
38  */
39 #define PCIO_BASE               0
40
41
42 /*
43  * SA1100 internal I/O mappings
44  *
45  * We have the following mapping:
46  *      phys            virt
47  *      80000000        f8000000
48  *      90000000        fa000000
49  *      a0000000        fc000000
50  *      b0000000        fe000000
51  */
52
53 #define VIO_BASE        0xf8000000      /* virtual start of IO space */
54 #define VIO_SHIFT       3               /* x = IO space shrink power */
55 #define PIO_START       0x80000000      /* physical start of IO space */
56
57 #define io_p2v( x )             \
58    ( (((x)&0x00ffffff) | (((x)&0x30000000)>>VIO_SHIFT)) + VIO_BASE )
59 #define io_v2p( x )             \
60    ( (((x)&0x00ffffff) | (((x)&(0x30000000>>VIO_SHIFT))<<VIO_SHIFT)) + PIO_START )
61
62 #include "SA-1100.h"
63
64
65 /*
66  * SA1100 GPIO edge detection for IRQs:
67  * IRQs are generated on Falling-Edge, Rising-Edge, or both.
68  * This must be called *before* the corresponding IRQ is registered.
69  * Use this instead of directly setting GRER/GFER.
70  */
71 #define GPIO_FALLING_EDGE       1
72 #define GPIO_RISING_EDGE        2
73 #define GPIO_BOTH_EDGES         3
74 #ifndef __ASSEMBLY__
75 extern void set_GPIO_IRQ_edge( int gpio_mask, int edge_mask );
76
77 /*
78  * Return the current CPU clock frequency in units of 100kHz
79  */
80 extern unsigned short get_cclk_frequency(void);
81
82 #endif
83
84
85 /*
86  * Implementation specifics
87  */
88
89 #ifdef CONFIG_SA1100_PANGOLIN
90 #include "pangolin.h"
91 #endif
92
93 #ifdef CONFIG_SA1100_ASSABET
94 #include "assabet.h"
95 #else
96 #define machine_has_neponset()  (0)
97 #endif
98
99
100 #ifdef CONFIG_SA1100_HUW_WEBPANEL
101 #include "huw_webpanel.h"
102 #endif
103
104 #ifdef CONFIG_SA1100_PFS168
105 #include "pfs168.h"
106 #endif
107
108
109 #ifdef CONFIG_SA1100_YOPY
110 #include "yopy.h"
111 #endif
112
113 #ifdef CONFIG_SA1100_FREEBIRD
114 #include "freebird.h"
115 #endif
116
117 #ifdef CONFIG_SA1100_CERF
118 #include "cerf.h"
119 #endif
120
121 #ifdef CONFIG_SA1100_EMPEG
122 #include "empeg.h"
123 #endif
124
125 #ifdef CONFIG_SA1100_BITSY
126 #include "bitsy.h"
127 #endif
128
129 #ifdef CONFIG_SA1100_ITSY
130 #include "itsy.h"
131 #endif
132
133 #if defined(CONFIG_SA1100_GRAPHICSCLIENT)
134 #include "graphicsclient.h"
135 #endif
136
137 #if defined(CONFIG_SA1100_OMNIMETER)
138 #include "omnimeter.h"
139 #endif
140
141 #if defined(CONFIG_SA1100_JORNADA720)
142 #include "jornada720.h"
143 #endif
144
145 #if defined(CONFIG_SA1100_PLEB)
146 #include "pleb.h"
147 #endif
148
149 #if defined(CONFIG_SA1100_LART)
150 #include "lart.h"
151 #endif
152
153 #ifdef CONFIG_SA1100_SIMPAD
154 #include "simpad.h"
155 #endif
156
157 #ifdef CONFIG_SA1101
158
159 /*
160  * We have mapped the sa1101 depending on the value of SA1101_BASE.
161  * It then appears from 0xf4000000.
162  */
163
164 #define SA1101_p2v( x )         ((x) - SA1101_BASE + 0xf4000000)
165 #define SA1101_v2p( x )         ((x) - 0xf4000000  + SA1101_BASE)
166
167 #include "SA-1101.h"
168
169 #endif
170
171 #if defined(CONFIG_SA1100_OMNIMETER)
172 #include "omnimeter.h"
173 #endif
174
175 #if defined(CONFIG_SA1100_JORNADA720)
176 #include "jornada720.h"
177 #endif
178
179 #if defined(CONFIG_SA1100_FLEXANET)
180 #include "flexanet.h"
181 #endif
182
183 #ifdef CONFIG_SA1111
184
185 #define SA1111_p2v( x )         ((x) - SA1111_BASE + 0xf4000000)
186 #define SA1111_v2p( x )         ((x) - 0xf4000000 + SA1111_BASE)
187
188 #include "SA-1111.h"
189
190 #endif
191
192 #endif  /* _ASM_ARCH_HARDWARE_H */