home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-mips / sn / io.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.8 KB  |  60 lines

  1. /*
  2.  * This file is subject to the terms and conditions of the GNU General Public
  3.  * License.  See the file "COPYING" in the main directory of this archive
  4.  * for more details.
  5.  *
  6.  * Copyright (C) 2000, 2003 Ralf Baechle
  7.  * Copyright (C) 2000 Silicon Graphics, Inc.
  8.  */
  9. #ifndef _ASM_SN_IO_H
  10. #define _ASM_SN_IO_H
  11.  
  12. #if defined (CONFIG_SGI_IP27)
  13. #include <asm/sn/sn0/hubio.h>
  14. #endif
  15.  
  16.  
  17. #define IIO_ITTE_BASE        0x400160 /* base of translation table entries */
  18. #define IIO_ITTE(bigwin)    (IIO_ITTE_BASE + 8*(bigwin))
  19.  
  20. #define IIO_ITTE_OFFSET_BITS    5    /* size of offset field */
  21. #define IIO_ITTE_OFFSET_MASK    ((1<<IIO_ITTE_OFFSET_BITS)-1)
  22. #define IIO_ITTE_OFFSET_SHIFT    0
  23.  
  24. #define IIO_ITTE_WIDGET_BITS    4    /* size of widget field */
  25. #define IIO_ITTE_WIDGET_MASK    ((1<<IIO_ITTE_WIDGET_BITS)-1)
  26. #define IIO_ITTE_WIDGET_SHIFT    8
  27.  
  28. #define IIO_ITTE_IOSP        1    /* I/O Space bit */
  29. #define IIO_ITTE_IOSP_MASK    1
  30. #define IIO_ITTE_IOSP_SHIFT    12
  31. #define HUB_PIO_MAP_TO_MEM    0
  32. #define HUB_PIO_MAP_TO_IO    1
  33.  
  34. #define IIO_ITTE_INVALID_WIDGET    3    /* an invalid widget  */
  35.  
  36. #define IIO_ITTE_PUT(nasid, bigwin, io_or_mem, widget, addr) \
  37.     REMOTE_HUB_S((nasid), IIO_ITTE(bigwin), \
  38.         (((((addr) >> BWIN_SIZE_BITS) & \
  39.            IIO_ITTE_OFFSET_MASK) << IIO_ITTE_OFFSET_SHIFT) | \
  40.         (io_or_mem << IIO_ITTE_IOSP_SHIFT) | \
  41.         (((widget) & IIO_ITTE_WIDGET_MASK) << IIO_ITTE_WIDGET_SHIFT)))
  42.  
  43. #define IIO_ITTE_DISABLE(nasid, bigwin) \
  44.     IIO_ITTE_PUT((nasid), HUB_PIO_MAP_TO_MEM, \
  45.              (bigwin), IIO_ITTE_INVALID_WIDGET, 0)
  46.  
  47. #define IIO_ITTE_GET(nasid, bigwin) REMOTE_HUB_ADDR((nasid), IIO_ITTE(bigwin))
  48.  
  49. /*
  50.  * Macro which takes the widget number, and returns the
  51.  * IO PRB address of that widget.
  52.  * value _x is expected to be a widget number in the range
  53.  * 0, 8 - 0xF
  54.  */
  55. #define    IIO_IOPRB(_x)    (IIO_IOPRB_0 + ( ( (_x) < HUB_WIDGET_ID_MIN ? \
  56.             (_x) : \
  57.             (_x) - (HUB_WIDGET_ID_MIN-1)) << 3) )
  58.  
  59. #endif /* _ASM_SN_IO_H */
  60.