root/arch/arm/mach-footbridge/netwinder-pci.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. netwinder_map_irq
  2. netwinder_pci_init

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * linux/arch/arm/mach-footbridge/netwinder-pci.c
   4  *
   5  * PCI bios-type initialisation for PCI machines
   6  *
   7  * Bits taken from various places.
   8  */
   9 #include <linux/kernel.h>
  10 #include <linux/pci.h>
  11 #include <linux/init.h>
  12 
  13 #include <asm/irq.h>
  14 #include <asm/mach/pci.h>
  15 #include <asm/mach-types.h>
  16 
  17 /*
  18  * We now use the slot ID instead of the device identifiers to select
  19  * which interrupt is routed where.
  20  */
  21 static int __init netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
  22 {
  23         switch (slot) {
  24         case 0:  /* host bridge */
  25                 return 0;
  26 
  27         case 9:  /* CyberPro */
  28                 return IRQ_NETWINDER_VGA;
  29 
  30         case 10: /* DC21143 */
  31                 return IRQ_NETWINDER_ETHER100;
  32 
  33         case 12: /* Winbond 553 */
  34                 return IRQ_ISA_HARDDISK1;
  35 
  36         case 13: /* Winbond 89C940F */
  37                 return IRQ_NETWINDER_ETHER10;
  38 
  39         default:
  40                 printk(KERN_ERR "PCI: unknown device in slot %s\n",
  41                         pci_name(dev));
  42                 return 0;
  43         }
  44 }
  45 
  46 static struct hw_pci netwinder_pci __initdata = {
  47         .map_irq                = netwinder_map_irq,
  48         .nr_controllers         = 1,
  49         .ops                    = &dc21285_ops,
  50         .setup                  = dc21285_setup,
  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);

/* [<][>][^][v][top][bottom][index][help] */