~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/arm/mach-footbridge/netwinder-pci.c

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * linux/arch/arm/mach-footbridge/netwinder-pci.c
 
3
 *
 
4
 * PCI bios-type initialisation for PCI machines
 
5
 *
 
6
 * Bits taken from various places.
 
7
 */
 
8
#include <linux/kernel.h>
 
9
#include <linux/pci.h>
 
10
#include <linux/init.h>
 
11
 
 
12
#include <asm/irq.h>
 
13
#include <asm/mach/pci.h>
 
14
#include <asm/mach-types.h>
 
15
 
 
16
/*
 
17
 * We now use the slot ID instead of the device identifiers to select
 
18
 * which interrupt is routed where.
 
19
 */
 
20
static int __init netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
 
21
{
 
22
        switch (slot) {
 
23
        case 0:  /* host bridge */
 
24
                return 0;
 
25
 
 
26
        case 9:  /* CyberPro */
 
27
                return IRQ_NETWINDER_VGA;
 
28
 
 
29
        case 10: /* DC21143 */
 
30
                return IRQ_NETWINDER_ETHER100;
 
31
 
 
32
        case 12: /* Winbond 553 */
 
33
                return IRQ_ISA_HARDDISK1;
 
34
 
 
35
        case 13: /* Winbond 89C940F */
 
36
                return IRQ_NETWINDER_ETHER10;
 
37
 
 
38
        default:
 
39
                printk(KERN_ERR "PCI: unknown device in slot %s\n",
 
40
                        pci_name(dev));
 
41
                return 0;
 
42
        }
 
43
}
 
44
 
 
45
static struct hw_pci netwinder_pci __initdata = {
 
46
        .swizzle                = pci_std_swizzle,
 
47
        .map_irq                = netwinder_map_irq,
 
48
        .nr_controllers         = 1,
 
49
        .setup                  = dc21285_setup,
 
50
        .scan                   = dc21285_scan_bus,
 
51
        .preinit                = dc21285_preinit,
 
52
        .postinit               = dc21285_postinit,
 
53
};
 
54
 
 
55
static int __init netwinder_pci_init(void)
 
56
{
 
57
        if (machine_is_netwinder())
 
58
                pci_common_init(&netwinder_pci);
 
59
        return 0;
 
60
}
 
61
 
 
62
subsys_initcall(netwinder_pci_init);