home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / mach-davinci / include / mach / io.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.0 KB  |  63 lines

  1. /*
  2.  * DaVinci IO address definitions
  3.  *
  4.  * Copied from include/asm/arm/arch-omap/io.h
  5.  *
  6.  * 2007 (c) MontaVista Software, Inc. This file is licensed under
  7.  * the terms of the GNU General Public License version 2. This program
  8.  * is licensed "as is" without any warranty of any kind, whether express
  9.  * or implied.
  10.  */
  11. #ifndef __ASM_ARCH_IO_H
  12. #define __ASM_ARCH_IO_H
  13.  
  14. #define IO_SPACE_LIMIT 0xffffffff
  15.  
  16. /*
  17.  * ----------------------------------------------------------------------------
  18.  * I/O mapping
  19.  * ----------------------------------------------------------------------------
  20.  */
  21. #define IO_PHYS        0x01c00000
  22. #define IO_OFFSET    0xfd000000 /* Virtual IO = 0xfec00000 */
  23. #define IO_SIZE        0x00400000
  24. #define IO_VIRT        (IO_PHYS + IO_OFFSET)
  25. #define io_v2p(va)    ((va) - IO_OFFSET)
  26. #define __IO_ADDRESS(x)    ((x) + IO_OFFSET)
  27.  
  28. /*
  29.  * We don't actually have real ISA nor PCI buses, but there is so many
  30.  * drivers out there that might just work if we fake them...
  31.  */
  32. #define PCIO_BASE               0
  33. #define __io(a)            ((void __iomem *)(PCIO_BASE + (a)))
  34. #define __mem_pci(a)        (a)
  35. #define __mem_isa(a)        (a)
  36.  
  37. #define IO_ADDRESS(pa)          IOMEM(__IO_ADDRESS(pa))
  38.  
  39. #ifdef __ASSEMBLER__
  40. #define IOMEM(x)                x
  41. #else
  42. #define IOMEM(x)                ((void __force __iomem *)(x))
  43.  
  44. /*
  45.  * Functions to access the DaVinci IO region
  46.  *
  47.  * NOTE: - Use davinci_read/write[bwl] for physical register addresses
  48.  *     - Use __raw_read/write[bwl]() for virtual register addresses
  49.  *     - Use IO_ADDRESS(phys_addr) to convert registers to virtual addresses
  50.  *     - DO NOT use hardcoded virtual addresses to allow changing the
  51.  *       IO address space again if needed
  52.  */
  53. #define davinci_readb(a)    __raw_readb(IO_ADDRESS(a))
  54. #define davinci_readw(a)    __raw_readw(IO_ADDRESS(a))
  55. #define davinci_readl(a)    __raw_readl(IO_ADDRESS(a))
  56.  
  57. #define davinci_writeb(v, a)    __raw_writeb(v, IO_ADDRESS(a))
  58. #define davinci_writew(v, a)    __raw_writew(v, IO_ADDRESS(a))
  59. #define davinci_writel(v, a)    __raw_writel(v, IO_ADDRESS(a))
  60.  
  61. #endif /* __ASSEMBLER__ */
  62. #endif /* __ASM_ARCH_IO_H */
  63.