1/* $Id: isa.h,v 1.1.1.1 2008/10/15 03:29:18 james26_jang Exp $
2 * isa.h: Sparc64 layer for PCI to ISA bridge devices.
3 *
4 * Copyright (C) 2001 David S. Miller (davem@redhat.com)
5 */
6
7#ifndef __SPARC64_ISA_H
8#define __SPARC64_ISA_H
9
10#include <asm/pbm.h>
11#include <asm/oplib.h>
12
13struct isa_device {
14	struct isa_device	*next;
15	struct isa_device	*child;
16	struct isa_bridge	*bus;
17	int			prom_node;
18	char			prom_name[64];
19	char			compatible[64];
20	struct resource		resource;
21	unsigned int		irq;
22};
23
24struct isa_bridge {
25	struct isa_bridge	*next;
26	struct isa_device	*devices;
27	struct pci_pbm_info	*parent;
28	struct pci_dev		*self;
29	int			index;
30	int			prom_node;
31	char			prom_name[64];
32#define linux_prom_isa_ranges linux_prom_ebus_ranges
33	struct linux_prom_isa_ranges	isa_ranges[PROMREG_MAX];
34	int			num_isa_ranges;
35};
36
37extern struct isa_bridge	*isa_chain;
38
39extern void isa_init(void);
40
41#define for_each_isa(bus)						\
42        for((bus) = isa_chain; (bus); (bus) = (bus)->next)
43
44#define for_each_isadev(dev, bus)					\
45        for((dev) = (bus)->devices; (dev); (dev) = (dev)->next)
46
47#endif /* !(__SPARC64_ISA_H) */
48