RT-AC66 3.0.0.4.374.130 core
[tomato.git] / release / src-rt-6.x / linux / linux-2.6 / include / asm-arm / arch-ixp23xx / io.h
blob66f5bafc315c6153cd94cd4b925d2d89cbfce5e4
1 /*
2 * include/asm-arm/arch-ixp23xx/io.h
4 * Original Author: Naeem M Afzal <naeem.m.afzal@intel.com>
5 * Maintainer: Deepak Saxena <dsaxena@plexity.net>
7 * Copyright (C) 2003-2005 Intel Corp.
8 * Copyright (C) 2005 MontaVista Software, Inc
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
15 #ifndef __ASM_ARCH_IO_H
16 #define __ASM_ARCH_IO_H
18 #define IO_SPACE_LIMIT 0xffffffff
20 #define __io(p) ((void __iomem*)((p) + IXP23XX_PCI_IO_VIRT))
21 #define __mem_pci(a) (a)
23 #include <linux/kernel.h> /* For BUG */
25 static inline void __iomem *
26 ixp23xx_ioremap(unsigned long addr, unsigned long size, unsigned int mtype)
28 if (addr >= IXP23XX_PCI_MEM_START &&
29 addr <= IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE) {
30 if (addr + size > IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE)
31 return NULL;
33 return (void __iomem *)
34 ((addr - IXP23XX_PCI_MEM_START) + IXP23XX_PCI_MEM_VIRT);
37 return __arm_ioremap(addr, size, mtype);
40 static inline void
41 ixp23xx_iounmap(void __iomem *addr)
43 if ((((u32)addr) >= IXP23XX_PCI_MEM_VIRT) &&
44 (((u32)addr) < IXP23XX_PCI_MEM_VIRT + IXP23XX_PCI_MEM_SIZE))
45 return;
47 __iounmap(addr);
50 #define __arch_ioremap(a,s,f) ixp23xx_ioremap(a,s,f)
51 #define __arch_iounmap(a) ixp23xx_iounmap(a)
54 #endif