1/* 2 * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. 3 */ 4 5/* 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11#ifndef __ASM_ARCH_MXC_IO_H__ 12#define __ASM_ARCH_MXC_IO_H__ 13 14/* Allow IO space to be anywhere in the memory */ 15#define IO_SPACE_LIMIT 0xffffffff 16 17#ifdef CONFIG_ARCH_MX3 18#define __arch_ioremap __mx3_ioremap 19#define __arch_iounmap __iounmap 20 21static inline void __iomem * 22__mx3_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype) 23{ 24 if (mtype == MT_DEVICE) { 25 /* Access all peripherals below 0x80000000 as nonshared device 26 * but leave l2cc alone. 27 */ 28 if ((phys_addr < 0x80000000) && ((phys_addr < 0x30000000) || 29 (phys_addr >= 0x30000000 + SZ_1M))) 30 mtype = MT_DEVICE_NONSHARED; 31 } 32 33 return __arm_ioremap(phys_addr, size, mtype); 34} 35#endif 36 37/* io address mapping macro */ 38#define __io(a) __typesafe_io(a) 39 40#define __mem_pci(a) (a) 41 42#endif 43