1 /* 2 * SPDX-License-Identifier: GPL-2.0 3 */ 4 #ifndef __ASM_MACH_BMIPS_IOREMAP_H 5 #define __ASM_MACH_BMIPS_IOREMAP_H 6 7 #include <linux/types.h> 8 9 /* 10 * Allow physical addresses to be fixed up to help peripherals located 11 * outside the low 32-bit range -- generic pass-through version. 12 */ 13 static inline phys_addr_t fixup_bigphys_addr(phys_addr_t phys_addr, 14 phys_addr_t size) 15 { 16 return phys_addr; 17 } 18 19 static inline int is_bmips_internal_registers(phys_addr_t offset) 20 { 21 #if defined(CONFIG_SOC_BMIPS_BCM6358) 22 if (offset >= 0xfffe0000) 23 return 1; 24 #endif 25 26 return 0; 27 } 28 29 static inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size, 30 unsigned long flags) 31 { 32 if (is_bmips_internal_registers(offset)) 33 return (void __iomem *)offset; 34 35 return NULL; 36 } 37 38 static inline int plat_iounmap(const volatile void __iomem *addr) 39 { 40 return is_bmips_internal_registers((unsigned long)addr); 41 } 42 43 #define _page_cachable_default _CACHE_CACHABLE_NONCOHERENT 44 45 #endif /* __ASM_MACH_BMIPS_IOREMAP_H */ 46