Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  *  include/asm-mips/mach-tx49xx/ioremap.h
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 /* __ASM_MACH_TX49XX_IOREMAP_H */