2 * linux/arch/arm/mach-footbridge/ebsa285-pci.c
4 * PCI bios-type initialisation for PCI machines
6 * Bits taken from various places.
8 #include <linux/kernel.h>
10 #include <linux/init.h>
13 #include <asm/mach/pci.h>
14 #include <asm/mach-types.h>
16 static int irqmap_ebsa285
[] __initdata
= { IRQ_IN3
, IRQ_IN1
, IRQ_IN0
, IRQ_PCI
};
18 static int __init
ebsa285_map_irq(struct pci_dev
*dev
, u8 slot
, u8 pin
)
20 if (dev
->vendor
== PCI_VENDOR_ID_CONTAQ
&&
21 dev
->device
== PCI_DEVICE_ID_CONTAQ_82C693
)
22 switch (PCI_FUNC(dev
->devfn
)) {
28 return irqmap_ebsa285
[(slot
+ pin
) & 3];
31 static struct hw_pci ebsa285_pci __initdata
= {
32 .swizzle
= pci_std_swizzle
,
33 .map_irq
= ebsa285_map_irq
,
35 .setup
= dc21285_setup
,
36 .scan
= dc21285_scan_bus
,
37 .preinit
= dc21285_preinit
,
38 .postinit
= dc21285_postinit
,
41 static int __init
ebsa285_init_pci(void)
43 if (machine_is_ebsa285())
44 pci_common_init(&ebsa285_pci
);
48 subsys_initcall(ebsa285_init_pci
);