ioremap.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. * include/asm-mips/mach-tx49xx/ioremap.h
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version
  7. * 2 of the License, or (at your option) any later version.
  8. */
  9. #ifndef __ASM_MACH_TX49XX_IOREMAP_H
  10. #define __ASM_MACH_TX49XX_IOREMAP_H
  11. #include <linux/types.h>
  12. /*
  13. * Allow physical addresses to be fixed up to help peripherals located
  14. * outside the low 32-bit range -- generic pass-through version.
  15. */
  16. static inline phys_addr_t fixup_bigphys_addr(phys_addr_t phys_addr, phys_addr_t size)
  17. {
  18. return phys_addr;
  19. }
  20. static inline void __iomem *plat_ioremap(phys_addr_t offset, unsigned long size,
  21. unsigned long flags)
  22. {
  23. #ifdef CONFIG_64BIT
  24. #define TXX9_DIRECTMAP_BASE 0xfff000000ul
  25. #else
  26. #define TXX9_DIRECTMAP_BASE 0xff000000ul
  27. #endif
  28. if (offset >= TXX9_DIRECTMAP_BASE &&
  29. offset < TXX9_DIRECTMAP_BASE + 0x400000)
  30. return (void __iomem *)(unsigned long)(int)offset;
  31. return NULL;
  32. }
  33. static inline int plat_iounmap(const volatile void __iomem *addr)
  34. {
  35. return (unsigned long)addr >=
  36. (unsigned long)(int)(TXX9_DIRECTMAP_BASE & 0xffffffff);
  37. }
  38. #endif /* __ASM_MACH_TX49XX_IOREMAP_H */