1 // SPDX-License-Identifier: GPL-2.0
3 * linux/arch/arm/mach-footbridge/ebsa285-pci.c
5 * PCI bios-type initialisation for PCI machines
7 * Bits taken from various places.
9 #include <linux/kernel.h>
10 #include <linux/pci.h>
11 #include <linux/init.h>
14 #include <asm/mach/pci.h>
15 #include <asm/mach-types.h>
17 static int irqmap_ebsa285
[] __initdata
= { IRQ_IN3
, IRQ_IN1
, IRQ_IN0
, IRQ_PCI
};
19 static int __init
ebsa285_map_irq(const struct pci_dev
*dev
, u8 slot
, u8 pin
)
21 if (dev
->vendor
== PCI_VENDOR_ID_CONTAQ
&&
22 dev
->device
== PCI_DEVICE_ID_CONTAQ_82C693
)
23 switch (PCI_FUNC(dev
->devfn
)) {
29 return irqmap_ebsa285
[(slot
+ pin
) & 3];
32 static struct hw_pci ebsa285_pci __initdata
= {
33 .map_irq
= ebsa285_map_irq
,
36 .setup
= dc21285_setup
,
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
);