1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2455a503fSMaxime Bizon #ifndef BCM63XX_IOREMAP_H_ 3455a503fSMaxime Bizon #define BCM63XX_IOREMAP_H_ 4455a503fSMaxime Bizon 5455a503fSMaxime Bizon #include <bcm63xx_cpu.h> 6455a503fSMaxime Bizon is_bcm63xx_internal_registers(phys_addr_t offset)715d45cceSRalf Baechlestatic inline int is_bcm63xx_internal_registers(phys_addr_t offset) 8455a503fSMaxime Bizon { 9455a503fSMaxime Bizon switch (bcm63xx_get_cpu_id()) { 107b933421SFlorian Fainelli case BCM3368_CPU_ID: 117b933421SFlorian Fainelli if (offset >= 0xfff80000) 127b933421SFlorian Fainelli return 1; 137b933421SFlorian Fainelli break; 14455a503fSMaxime Bizon case BCM6338_CPU_ID: 15455a503fSMaxime Bizon case BCM6345_CPU_ID: 16455a503fSMaxime Bizon case BCM6348_CPU_ID: 17455a503fSMaxime Bizon case BCM6358_CPU_ID: 18455a503fSMaxime Bizon if (offset >= 0xfff00000) 19455a503fSMaxime Bizon return 1; 20455a503fSMaxime Bizon break; 21e5766aeaSJonas Gorski case BCM6328_CPU_ID: 222c8aaf71SJonas Gorski case BCM6362_CPU_ID: 2304712f3fSMaxime Bizon case BCM6368_CPU_ID: 2404712f3fSMaxime Bizon if (offset >= 0xb0000000 && offset < 0xb1000000) 2504712f3fSMaxime Bizon return 1; 2604712f3fSMaxime Bizon break; 27455a503fSMaxime Bizon } 28455a503fSMaxime Bizon return 0; 29455a503fSMaxime Bizon } 30455a503fSMaxime Bizon plat_ioremap(phys_addr_t offset,unsigned long size,unsigned long flags)3115d45cceSRalf Baechlestatic inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size, 32455a503fSMaxime Bizon unsigned long flags) 33455a503fSMaxime Bizon { 34455a503fSMaxime Bizon if (is_bcm63xx_internal_registers(offset)) 35455a503fSMaxime Bizon return (void __iomem *)offset; 36455a503fSMaxime Bizon return NULL; 37455a503fSMaxime Bizon } 38455a503fSMaxime Bizon plat_iounmap(const volatile void __iomem * addr)39455a503fSMaxime Bizonstatic inline int plat_iounmap(const volatile void __iomem *addr) 40455a503fSMaxime Bizon { 41455a503fSMaxime Bizon return is_bcm63xx_internal_registers((unsigned long)addr); 42455a503fSMaxime Bizon } 43455a503fSMaxime Bizon 44455a503fSMaxime Bizon #endif /* BCM63XX_IOREMAP_H_ */ 45