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; 2104712f3fSMaxime Bizon case BCM6368_CPU_ID: 2204712f3fSMaxime Bizon if (offset >= 0xb0000000 && offset < 0xb1000000) 2304712f3fSMaxime Bizon return 1; 2404712f3fSMaxime Bizon break; 25455a503fSMaxime Bizon } 26455a503fSMaxime Bizon return 0; 27455a503fSMaxime Bizon } 28455a503fSMaxime Bizon 29455a503fSMaxime Bizon static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size, 30455a503fSMaxime Bizon unsigned long flags) 31455a503fSMaxime Bizon { 32455a503fSMaxime Bizon if (is_bcm63xx_internal_registers(offset)) 33455a503fSMaxime Bizon return (void __iomem *)offset; 34455a503fSMaxime Bizon return NULL; 35455a503fSMaxime Bizon } 36455a503fSMaxime Bizon 37455a503fSMaxime Bizon static inline int plat_iounmap(const volatile void __iomem *addr) 38455a503fSMaxime Bizon { 39455a503fSMaxime Bizon return is_bcm63xx_internal_registers((unsigned long)addr); 40455a503fSMaxime Bizon } 41455a503fSMaxime Bizon 42455a503fSMaxime Bizon #endif /* BCM63XX_IOREMAP_H_ */ 43