ar71xx: build ALFA AP96 images with default profile as well
[oweals/openwrt.git] / target / linux / ar71xx / files / arch / mips / ar71xx / pci.c
index 6a07697f0ddcdde023fcd11bde3d04e220b4bdcf..f3c64524185c8666b38e55dfd1ababfaa9d51be2 100644 (file)
@@ -52,6 +52,10 @@ int __init pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
                break;
 
        case AR71XX_SOC_AR7240:
+       case AR71XX_SOC_AR7241:
+       case AR71XX_SOC_AR7242:
+       case AR71XX_SOC_AR9342:
+       case AR71XX_SOC_AR9344:
                ret = ar724x_pcibios_map_irq(dev, slot, pin);
                break;
 
@@ -64,6 +68,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
 
 int __init ar71xx_pci_init(unsigned nr_irqs, struct ar71xx_pci_irq *map)
 {
+       u32 t;
        int ret = 0;
 
        switch (ar71xx_soc) {
@@ -75,9 +80,20 @@ int __init ar71xx_pci_init(unsigned nr_irqs, struct ar71xx_pci_irq *map)
                break;
 
        case AR71XX_SOC_AR7240:
-               ret = ar724x_pcibios_init();
+       case AR71XX_SOC_AR7241:
+       case AR71XX_SOC_AR7242:
+               ret = ar724x_pcibios_init(AR71XX_CPU_IRQ_IP2);
                break;
 
+       case AR71XX_SOC_AR9342:
+       case AR71XX_SOC_AR9344:
+               t = ar71xx_reset_rr(AR934X_RESET_REG_BOOTSTRAP);
+               if (t & AR934X_BOOTSTRAP_PCIE_RC) {
+                       ret = ar724x_pcibios_init(AR934X_IP2_IRQ_PCIE);
+                       break;
+               }
+
+               /* fall through */
        default:
                return 0;
        }