2 * arch/arm/mach-ixp23xx/include/mach/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 static inline void __iomem
*
24 ixp23xx_ioremap(unsigned long addr
, unsigned long size
, unsigned int mtype
)
26 if (addr
>= IXP23XX_PCI_MEM_START
&&
27 addr
<= IXP23XX_PCI_MEM_START
+ IXP23XX_PCI_MEM_SIZE
) {
28 if (addr
+ size
> IXP23XX_PCI_MEM_START
+ IXP23XX_PCI_MEM_SIZE
)
31 return (void __iomem
*)
32 ((addr
- IXP23XX_PCI_MEM_START
) + IXP23XX_PCI_MEM_VIRT
);
35 return __arm_ioremap(addr
, size
, mtype
);
39 ixp23xx_iounmap(void __iomem
*addr
)
41 if ((((u32
)addr
) >= IXP23XX_PCI_MEM_VIRT
) &&
42 (((u32
)addr
) < IXP23XX_PCI_MEM_VIRT
+ IXP23XX_PCI_MEM_SIZE
))
48 #define __arch_ioremap ixp23xx_ioremap
49 #define __arch_iounmap ixp23xx_iounmap