1455a503fSMaxime Bizon #ifndef BCM63XX_IOREMAP_H_ 2455a503fSMaxime Bizon #define BCM63XX_IOREMAP_H_ 3455a503fSMaxime Bizon 4455a503fSMaxime Bizon #include <bcm63xx_cpu.h> 5455a503fSMaxime Bizon 6455a503fSMaxime Bizon static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size) 7455a503fSMaxime Bizon { 8455a503fSMaxime Bizon return phys_addr; 9455a503fSMaxime Bizon } 10455a503fSMaxime Bizon 11455a503fSMaxime Bizon static inline int is_bcm63xx_internal_registers(phys_t offset) 12455a503fSMaxime Bizon { 13455a503fSMaxime Bizon switch (bcm63xx_get_cpu_id()) { 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; 21455a503fSMaxime Bizon } 22455a503fSMaxime Bizon return 0; 23455a503fSMaxime Bizon } 24455a503fSMaxime Bizon 25455a503fSMaxime Bizon static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size, 26455a503fSMaxime Bizon unsigned long flags) 27455a503fSMaxime Bizon { 28455a503fSMaxime Bizon if (is_bcm63xx_internal_registers(offset)) 29455a503fSMaxime Bizon return (void __iomem *)offset; 30455a503fSMaxime Bizon return NULL; 31455a503fSMaxime Bizon } 32455a503fSMaxime Bizon 33455a503fSMaxime Bizon static inline int plat_iounmap(const volatile void __iomem *addr) 34455a503fSMaxime Bizon { 35455a503fSMaxime Bizon return is_bcm63xx_internal_registers((unsigned long)addr); 36455a503fSMaxime Bizon } 37455a503fSMaxime Bizon 38455a503fSMaxime Bizon #endif /* BCM63XX_IOREMAP_H_ */ 39