Commit | Line | Data |
---|---|---|
651c74c7 | 1 | /* |
a09e64fb | 2 | * arch/arm/mach-kirkwood/include/mach/io.h |
651c74c7 SB |
3 | * |
4 | * This file is licensed under the terms of the GNU General Public | |
5 | * License version 2. This program is licensed "as is" without any | |
6 | * warranty of any kind, whether express or implied. | |
7 | */ | |
8 | ||
9 | #ifndef __ASM_ARCH_IO_H | |
10 | #define __ASM_ARCH_IO_H | |
11 | ||
12 | #include "kirkwood.h" | |
13 | ||
14 | #define IO_SPACE_LIMIT 0xffffffff | |
15 | ||
16 | static inline void __iomem *__io(unsigned long addr) | |
17 | { | |
35f029e2 | 18 | return (void __iomem *)((addr - KIRKWOOD_PCIE_IO_BUS_BASE) |
651c74c7 SB |
19 | + KIRKWOOD_PCIE_IO_VIRT_BASE); |
20 | } | |
21 | ||
797b2c80 NP |
22 | static inline void __iomem * |
23 | __arch_ioremap(unsigned long paddr, size_t size, unsigned int mtype) | |
24 | { | |
25 | void __iomem *retval; | |
26 | unsigned long offs = paddr - KIRKWOOD_REGS_PHYS_BASE; | |
27 | if (mtype == MT_DEVICE && size && offs < KIRKWOOD_REGS_SIZE && | |
28 | size <= KIRKWOOD_REGS_SIZE && offs + size <= KIRKWOOD_REGS_SIZE) { | |
29 | retval = (void __iomem *)KIRKWOOD_REGS_VIRT_BASE + offs; | |
30 | } else { | |
31 | retval = __arm_ioremap(paddr, size, mtype); | |
32 | } | |
33 | ||
34 | return retval; | |
35 | } | |
36 | ||
37 | static inline void | |
38 | __arch_iounmap(void __iomem *addr) | |
39 | { | |
40 | if (addr < (void __iomem *)KIRKWOOD_REGS_VIRT_BASE || | |
41 | addr >= (void __iomem *)(KIRKWOOD_REGS_VIRT_BASE + KIRKWOOD_REGS_SIZE)) | |
42 | __iounmap(addr); | |
43 | } | |
44 | ||
45 | #define __arch_ioremap(p, s, m) __arch_ioremap(p, s, m) | |
46 | #define __arch_iounmap(a) __arch_iounmap(a) | |
651c74c7 SB |
47 | #define __io(a) __io(a) |
48 | #define __mem_pci(a) (a) | |
49 | ||
50 | ||
51 | #endif |