0001
0002
0003
0004
0005 #ifndef __ASM_MACH_TX49XX_IOREMAP_H
0006 #define __ASM_MACH_TX49XX_IOREMAP_H
0007
0008 #include <linux/types.h>
0009
0010 static inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size,
0011 unsigned long flags)
0012 {
0013 #ifdef CONFIG_64BIT
0014 #define TXX9_DIRECTMAP_BASE 0xfff000000ul
0015 #else
0016 #define TXX9_DIRECTMAP_BASE 0xff000000ul
0017 #endif
0018 if (offset >= TXX9_DIRECTMAP_BASE &&
0019 offset < TXX9_DIRECTMAP_BASE + 0x400000)
0020 return (void __iomem *)(unsigned long)(int)offset;
0021 return NULL;
0022 }
0023
0024 static inline int plat_iounmap(const volatile void __iomem *addr)
0025 {
0026 return (unsigned long)addr >=
0027 (unsigned long)(int)(TXX9_DIRECTMAP_BASE & 0xffffffff);
0028 }
0029
0030 #endif