1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * This file is subject to the terms and conditions of the GNU General Public 3*4882a593Smuzhiyun * License. See the file "COPYING" in the main directory of this archive 4*4882a593Smuzhiyun * for more details. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * xtalk.h -- platform-independent crosstalk interface, derived from 7*4882a593Smuzhiyun * IRIX <sys/PCI/bridge.h>, revision 1.38. 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * Copyright (C) 1995 - 1997, 1999 Silcon Graphics, Inc. 10*4882a593Smuzhiyun * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org) 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun #ifndef _ASM_XTALK_XTALK_H 13*4882a593Smuzhiyun #define _ASM_XTALK_XTALK_H 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 16*4882a593Smuzhiyun /* 17*4882a593Smuzhiyun * User-level device driver visible types 18*4882a593Smuzhiyun */ 19*4882a593Smuzhiyun typedef char xwidgetnum_t; /* xtalk widget number (0..15) */ 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #define XWIDGET_NONE -1 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun typedef int xwidget_part_num_t; /* xtalk widget part number */ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #define XWIDGET_PART_NUM_NONE -1 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun typedef int xwidget_rev_num_t; /* xtalk widget revision number */ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define XWIDGET_REV_NUM_NONE -1 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun typedef int xwidget_mfg_num_t; /* xtalk widget manufacturing ID */ 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #define XWIDGET_MFG_NUM_NONE -1 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun typedef struct xtalk_piomap_s *xtalk_piomap_t; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun /* It is often convenient to fold the XIO target port 38*4882a593Smuzhiyun * number into the XIO address. 39*4882a593Smuzhiyun */ 40*4882a593Smuzhiyun #define XIO_NOWHERE (0xFFFFFFFFFFFFFFFFull) 41*4882a593Smuzhiyun #define XIO_ADDR_BITS (0x0000FFFFFFFFFFFFull) 42*4882a593Smuzhiyun #define XIO_PORT_BITS (0xF000000000000000ull) 43*4882a593Smuzhiyun #define XIO_PORT_SHIFT (60) 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #define XIO_PACKED(x) (((x)&XIO_PORT_BITS) != 0) 46*4882a593Smuzhiyun #define XIO_ADDR(x) ((x)&XIO_ADDR_BITS) 47*4882a593Smuzhiyun #define XIO_PORT(x) ((xwidgetnum_t)(((x)&XIO_PORT_BITS) >> XIO_PORT_SHIFT)) 48*4882a593Smuzhiyun #define XIO_PACK(p, o) ((((uint64_t)(p))<<XIO_PORT_SHIFT) | ((o)&XIO_ADDR_BITS)) 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #endif /* !__ASSEMBLY__ */ 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #endif /* _ASM_XTALK_XTALK_H */ 53