io.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * S390 version
  3. * Copyright IBM Corp. 1999
  4. * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  5. *
  6. * Derived from "include/asm-i386/io.h"
  7. */
  8. #ifndef _S390_IO_H
  9. #define _S390_IO_H
  10. #include <linux/kernel.h>
  11. #include <asm/page.h>
  12. #include <asm/pci_io.h>
  13. #define xlate_dev_mem_ptr xlate_dev_mem_ptr
  14. void *xlate_dev_mem_ptr(phys_addr_t phys);
  15. #define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
  16. void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
  17. /*
  18. * Convert a virtual cached pointer to an uncached pointer
  19. */
  20. #define xlate_dev_kmem_ptr(p) p
  21. #define IO_SPACE_LIMIT 0
  22. #ifdef CONFIG_PCI
  23. #define ioremap_nocache(addr, size) ioremap(addr, size)
  24. #define ioremap_wc ioremap_nocache
  25. static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
  26. {
  27. return (void __iomem *) offset;
  28. }
  29. static inline void iounmap(volatile void __iomem *addr)
  30. {
  31. }
  32. static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
  33. {
  34. return NULL;
  35. }
  36. static inline void ioport_unmap(void __iomem *p)
  37. {
  38. }
  39. /*
  40. * s390 needs a private implementation of pci_iomap since ioremap with its
  41. * offset parameter isn't sufficient. That's because BAR spaces are not
  42. * disjunctive on s390 so we need the bar parameter of pci_iomap to find
  43. * the corresponding device and create the mapping cookie.
  44. */
  45. #define pci_iomap pci_iomap
  46. #define pci_iounmap pci_iounmap
  47. #define memcpy_fromio(dst, src, count) zpci_memcpy_fromio(dst, src, count)
  48. #define memcpy_toio(dst, src, count) zpci_memcpy_toio(dst, src, count)
  49. #define memset_io(dst, val, count) zpci_memset_io(dst, val, count)
  50. #define __raw_readb zpci_read_u8
  51. #define __raw_readw zpci_read_u16
  52. #define __raw_readl zpci_read_u32
  53. #define __raw_readq zpci_read_u64
  54. #define __raw_writeb zpci_write_u8
  55. #define __raw_writew zpci_write_u16
  56. #define __raw_writel zpci_write_u32
  57. #define __raw_writeq zpci_write_u64
  58. #endif /* CONFIG_PCI */
  59. #include <asm-generic/io.h>
  60. #endif