Merge branch 'misc' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc...
[pandora-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
17 #define UNCACHEABLE_ADDR        0xfa050000
18
19
20 /*
21  * SA1100 internal I/O mappings
22  *
23  * We have the following mapping:
24  *      phys            virt
25  *      80000000        f8000000
26  *      90000000        fa000000
27  *      a0000000        fc000000
28  *      b0000000        fe000000
29  */
30
31 #define VIO_BASE        0xf8000000      /* virtual start of IO space */
32 #define VIO_SHIFT       3               /* x = IO space shrink power */
33 #define PIO_START       0x80000000      /* physical start of IO space */
34
35 #define io_p2v( x )             \
36    ( (((x)&0x00ffffff) | (((x)&0x30000000)>>VIO_SHIFT)) + VIO_BASE )
37 #define io_v2p( x )             \
38    ( (((x)&0x00ffffff) | (((x)&(0x30000000>>VIO_SHIFT))<<VIO_SHIFT)) + PIO_START )
39
40 #ifndef __ASSEMBLY__
41
42 # define __REG(x)       (*((volatile unsigned long *)io_p2v(x)))
43 # define __PREG(x)      (io_v2p((unsigned long)&(x)))
44
45 #else
46
47 # define __REG(x)       io_p2v(x)
48 # define __PREG(x)      io_v2p(x)
49
50 #endif
51
52 #include "SA-1100.h"
53
54 #ifdef CONFIG_SA1101
55 #include "SA-1101.h"
56 #endif
57
58 #endif  /* _ASM_ARCH_HARDWARE_H */