diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-15 18:29:07 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-15 18:29:07 -0400 |
commit | 82638844d9a8581bbf33201cc209a14876eca167 (patch) | |
tree | 961d7f9360194421a71aa644a9d0c176a960ce49 /include/asm-arm/arch-omap/io.h | |
parent | 9982fbface82893e77d211fbabfbd229da6bdde6 (diff) | |
parent | 63cf13b77ab785e87c867defa8545e6d4a989774 (diff) |
Merge branch 'linus' into cpus4096
Conflicts:
arch/x86/xen/smp.c
kernel/sched_rt.c
net/iucv/iucv.c
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-arm/arch-omap/io.h')
-rw-r--r-- | include/asm-arm/arch-omap/io.h | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/include/asm-arm/arch-omap/io.h b/include/asm-arm/arch-omap/io.h index 160578e1f557..0b13557fd30b 100644 --- a/include/asm-arm/arch-omap/io.h +++ b/include/asm-arm/arch-omap/io.h | |||
@@ -60,6 +60,7 @@ | |||
60 | #define IO_SIZE 0x40000 | 60 | #define IO_SIZE 0x40000 |
61 | #define IO_VIRT (IO_PHYS - IO_OFFSET) | 61 | #define IO_VIRT (IO_PHYS - IO_OFFSET) |
62 | #define IO_ADDRESS(pa) ((pa) - IO_OFFSET) | 62 | #define IO_ADDRESS(pa) ((pa) - IO_OFFSET) |
63 | #define OMAP1_IO_ADDRESS(pa) ((pa) - IO_OFFSET) | ||
63 | #define io_p2v(pa) ((pa) - IO_OFFSET) | 64 | #define io_p2v(pa) ((pa) - IO_OFFSET) |
64 | #define io_v2p(va) ((va) + IO_OFFSET) | 65 | #define io_v2p(va) ((va) + IO_OFFSET) |
65 | 66 | ||
@@ -91,6 +92,7 @@ | |||
91 | 92 | ||
92 | #define IO_OFFSET 0x90000000 | 93 | #define IO_OFFSET 0x90000000 |
93 | #define IO_ADDRESS(pa) ((pa) + IO_OFFSET) /* Works for L3 and L4 */ | 94 | #define IO_ADDRESS(pa) ((pa) + IO_OFFSET) /* Works for L3 and L4 */ |
95 | #define OMAP2_IO_ADDRESS(pa) ((pa) + IO_OFFSET) /* Works for L3 and L4 */ | ||
94 | #define io_p2v(pa) ((pa) + IO_OFFSET) /* Works for L3 and L4 */ | 96 | #define io_p2v(pa) ((pa) + IO_OFFSET) /* Works for L3 and L4 */ |
95 | #define io_v2p(va) ((va) - IO_OFFSET) /* Works for L3 and L4 */ | 97 | #define io_v2p(va) ((va) - IO_OFFSET) /* Works for L3 and L4 */ |
96 | 98 | ||
@@ -148,6 +150,7 @@ | |||
148 | 150 | ||
149 | #define IO_OFFSET 0x90000000 | 151 | #define IO_OFFSET 0x90000000 |
150 | #define IO_ADDRESS(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ | 152 | #define IO_ADDRESS(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ |
153 | #define OMAP2_IO_ADDRESS(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ | ||
151 | #define io_p2v(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ | 154 | #define io_p2v(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ |
152 | #define io_v2p(va) ((va) - IO_OFFSET)/* Works for L3 and L4 */ | 155 | #define io_v2p(va) ((va) - IO_OFFSET)/* Works for L3 and L4 */ |
153 | 156 | ||
@@ -183,35 +186,12 @@ | |||
183 | #define omap_writew(v,a) (*(volatile unsigned short *)IO_ADDRESS(a) = (v)) | 186 | #define omap_writew(v,a) (*(volatile unsigned short *)IO_ADDRESS(a) = (v)) |
184 | #define omap_writel(v,a) (*(volatile unsigned int *)IO_ADDRESS(a) = (v)) | 187 | #define omap_writel(v,a) (*(volatile unsigned int *)IO_ADDRESS(a) = (v)) |
185 | 188 | ||
186 | /* 16 bit uses LDRH/STRH, base +/- offset_8 */ | ||
187 | typedef struct { volatile u16 offset[256]; } __regbase16; | ||
188 | #define __REGV16(vaddr) ((__regbase16 *)((vaddr)&~0xff)) \ | ||
189 | ->offset[((vaddr)&0xff)>>1] | ||
190 | #define __REG16(paddr) __REGV16(io_p2v(paddr)) | ||
191 | |||
192 | /* 8/32 bit uses LDR/STR, base +/- offset_12 */ | ||
193 | typedef struct { volatile u8 offset[4096]; } __regbase8; | ||
194 | #define __REGV8(vaddr) ((__regbase8 *)((vaddr)&~4095)) \ | ||
195 | ->offset[((vaddr)&4095)>>0] | ||
196 | #define __REG8(paddr) __REGV8(io_p2v(paddr)) | ||
197 | |||
198 | typedef struct { volatile u32 offset[4096]; } __regbase32; | ||
199 | #define __REGV32(vaddr) ((__regbase32 *)((vaddr)&~4095)) \ | ||
200 | ->offset[((vaddr)&4095)>>2] | ||
201 | #define __REG32(paddr) __REGV32(io_p2v(paddr)) | ||
202 | |||
203 | extern void omap1_map_common_io(void); | 189 | extern void omap1_map_common_io(void); |
204 | extern void omap1_init_common_hw(void); | 190 | extern void omap1_init_common_hw(void); |
205 | 191 | ||
206 | extern void omap2_map_common_io(void); | 192 | extern void omap2_map_common_io(void); |
207 | extern void omap2_init_common_hw(void); | 193 | extern void omap2_init_common_hw(void); |
208 | 194 | ||
209 | #else | ||
210 | |||
211 | #define __REG8(paddr) io_p2v(paddr) | ||
212 | #define __REG16(paddr) io_p2v(paddr) | ||
213 | #define __REG32(paddr) io_p2v(paddr) | ||
214 | |||
215 | #endif | 195 | #endif |
216 | 196 | ||
217 | #endif | 197 | #endif |