blob: 26d2ed1fa9176bc8c811673792d7f7d65a8106f7 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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 * xtalk.h -- platform-independent crosstalk interface, derived from
7 * IRIX <sys/PCI/bridge.h>, revision 1.38.
8 *
9 * Copyright (C) 1995 - 1997, 1999 Silcon Graphics, Inc.
10 * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org)
11 */
12#ifndef _ASM_XTALK_XTALK_H
13#define _ASM_XTALK_XTALK_H
14
15#ifndef __ASSEMBLY__
16/*
17 * User-level device driver visible types
18 */
Ralf Baechle70342282013-01-22 12:59:30 +010019typedef char xwidgetnum_t; /* xtalk widget number (0..15) */
Linus Torvalds1da177e2005-04-16 15:20:36 -070020
21#define XWIDGET_NONE -1
22
Ralf Baechle70342282013-01-22 12:59:30 +010023typedef int xwidget_part_num_t; /* xtalk widget part number */
Linus Torvalds1da177e2005-04-16 15:20:36 -070024
25#define XWIDGET_PART_NUM_NONE -1
26
Ralf Baechle70342282013-01-22 12:59:30 +010027typedef int xwidget_rev_num_t; /* xtalk widget revision number */
Linus Torvalds1da177e2005-04-16 15:20:36 -070028
29#define XWIDGET_REV_NUM_NONE -1
30
31typedef int xwidget_mfg_num_t; /* xtalk widget manufacturing ID */
32
33#define XWIDGET_MFG_NUM_NONE -1
34
35typedef struct xtalk_piomap_s *xtalk_piomap_t;
36
37/* It is often convenient to fold the XIO target port
38 * number into the XIO address.
39 */
Ralf Baechle70342282013-01-22 12:59:30 +010040#define XIO_NOWHERE (0xFFFFFFFFFFFFFFFFull)
41#define XIO_ADDR_BITS (0x0000FFFFFFFFFFFFull)
42#define XIO_PORT_BITS (0xF000000000000000ull)
43#define XIO_PORT_SHIFT (60)
Linus Torvalds1da177e2005-04-16 15:20:36 -070044
Ralf Baechle70342282013-01-22 12:59:30 +010045#define XIO_PACKED(x) (((x)&XIO_PORT_BITS) != 0)
46#define XIO_ADDR(x) ((x)&XIO_ADDR_BITS)
47#define XIO_PORT(x) ((xwidgetnum_t)(((x)&XIO_PORT_BITS) >> XIO_PORT_SHIFT))
48#define XIO_PACK(p, o) ((((uint64_t)(p))<<XIO_PORT_SHIFT) | ((o)&XIO_ADDR_BITS))
Linus Torvalds1da177e2005-04-16 15:20:36 -070049
Ralf Baechle73ec78b2013-06-13 14:05:03 +020050#ifdef CONFIG_PCI
51extern int bridge_probe(nasid_t nasid, int widget, int masterwid);
52#else
53static inline int bridge_probe(nasid_t nasid, int widget, int masterwid)
54{
55 return 0;
56}
57#endif
58
Linus Torvalds1da177e2005-04-16 15:20:36 -070059#endif /* !__ASSEMBLY__ */
60
61#endif /* _ASM_XTALK_XTALK_H */