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_BCM6348) || \ 22 defined(CONFIG_SOC_BMIPS_BCM6358) 23 if (offset >= 0xfffe0000) 24 return 1; 25 #endif 26 27 return 0; 28 } 29 30 static inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size, 31 unsigned long flags) 32 { 33 if (is_bmips_internal_registers(offset)) 34 return (void __iomem *)offset; 35 36 return NULL; 37 } 38 39 static inline int plat_iounmap(const volatile void __iomem *addr) 40 { 41 return is_bmips_internal_registers((unsigned long)addr); 42 } 43 44 #define _page_cachable_default _CACHE_CACHABLE_NONCOHERENT 45 46 #endif /* __ASM_MACH_BMIPS_IOREMAP_H */ 47