1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ASM_MACH_BMIPS_IOREMAP_H 3#define __ASM_MACH_BMIPS_IOREMAP_H 4 5#include <linux/types.h> 6 7/* 8 * Allow physical addresses to be fixed up to help peripherals located 9 * outside the low 32-bit range -- generic pass-through version. 10 */ 11static inline phys_addr_t fixup_bigphys_addr(phys_addr_t phys_addr, 12 phys_addr_t size) 13{ 14 return phys_addr; 15} 16 17static inline int is_bmips_internal_registers(phys_addr_t offset) 18{ 19#if defined(CONFIG_SOC_BMIPS_BCM6338) || \ 20 defined(CONFIG_SOC_BMIPS_BCM6348) || \ 21 defined(CONFIG_SOC_BMIPS_BCM6358) 22 if (offset >= 0xfffe0000) 23 return 1; 24#endif 25 26 return 0; 27} 28 29static 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 38static 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