]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'smc91x' into pxa-viper
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sun, 7 Sep 2008 16:34:57 +0000 (17:34 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 7 Sep 2008 16:34:57 +0000 (17:34 +0100)
arch/arm/mach-pxa/Kconfig
arch/arm/mach-pxa/include/mach/entry-macro.S
arch/arm/mach-pxa/include/mach/irqs.h
arch/arm/mach-pxa/irq.c

index e8ee7ec9ff6dda45d0a0793c9887b37b2592769a..b0417122d4e4318e42f5efb677d81f4d3ff1ea8b 100644 (file)
@@ -38,16 +38,19 @@ config ARCH_LUBBOCK
        bool "Intel DBPXA250 Development Platform"
        select PXA25x
        select SA1111
+       select PXA_HAVE_BOARD_IRQS
 
 config MACH_LOGICPD_PXA270
        bool "LogicPD PXA270 Card Engine Development Platform"
        select PXA27x
        select HAVE_PWM
+       select PXA_HAVE_BOARD_IRQS
 
 config MACH_MAINSTONE
        bool "Intel HCDDBBVA0 Development Platform"
        select PXA27x
        select HAVE_PWM
+       select PXA_HAVE_BOARD_IRQS
 
 config ARCH_PXA_IDP
        bool "Accelent Xscale IDP"
@@ -114,10 +117,12 @@ config MACH_TOSA
        bool "Enable Sharp SL-6000x (Tosa) Support"
        depends on PXA_SHARPSL
        select PXA25x
+       select PXA_HAVE_BOARD_IRQS
 
 config ARCH_PXA_ESERIES
        bool "PXA based Toshiba e-series PDAs"
        select PXA25x
+       select PXA_HAVE_BOARD_IRQS
 
 config MACH_E330
        bool "Toshiba e330"
@@ -215,12 +220,14 @@ config MACH_MAGICIAN
        bool "Enable HTC Magician Support"
        select PXA27x
        select IWMMXT
+       select PXA_HAVE_BOARD_IRQS
 
 config MACH_PCM027
        bool "Phytec phyCORE-PXA270 CPU module (PCM-027)"
        select PXA27x
        select IWMMXT
        select PXA_SSP
+       select PXA_HAVE_BOARD_IRQS
 
 config ARCH_PXA_PALM
        bool "PXA based Palm PDAs"
@@ -343,4 +350,10 @@ config TOSA_BT
          This is a simple driver that is able to control
          the state of built in bluetooth chip on tosa.
 
+config PXA_HAVE_BOARD_IRQS
+       bool
+
+config PXA_HAVE_ISA_IRQS
+       bool
+
 endif
index de16c12d5232209c33b432d96b880d44541b3ada..f6b4bf3e73d240a69700d951197c26c5717d6eee 100644 (file)
@@ -41,7 +41,7 @@
                and     \irqstat, \irqstat, \irqnr
                clz     \irqnr, \irqstat
                rsb     \irqnr, \irqnr, #31
-               add     \irqnr, \irqnr, #32
+               add     \irqnr, \irqnr, #(32 + PXA_IRQ(0))
                b       1001f
 1003:
                mrc     p6, 0, \irqstat, c0, c0, 0      @ ICIP
@@ -52,6 +52,6 @@
                rsb     \irqstat, \irqnr, #0
                and     \irqstat, \irqstat, \irqnr
                clz     \irqnr, \irqstat
-               rsb     \irqnr, \irqnr, #31
+               rsb     \irqnr, \irqnr, #(31 + PXA_IRQ(0))
 1001:
                .endm
index 108b5db9b2af67c3d96ef9810184410332bffda4..9c163e19ada939053f8b9366816d59c872d6369f 100644 (file)
  */
 
 
-#define PXA_IRQ(x)     (x)
+#ifdef CONFIG_PXA_HAVE_ISA_IRQS
+#define PXA_ISA_IRQ(x) (x)
+#define PXA_ISA_IRQ_NUM        (16)
+#else
+#define PXA_ISA_IRQ_NUM        (0)
+#endif
+
+#define PXA_IRQ(x)     (PXA_ISA_IRQ_NUM + (x))
 
 #if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
 #define IRQ_SSP3       PXA_IRQ(0)      /* SSP3 service request */
@@ -73,7 +80,7 @@
 #define IRQ_MMC3       PXA_IRQ(55)     /* MMC3 Controller (PXA310) */
 #endif
 
-#define PXA_GPIO_IRQ_BASE      (64)
+#define PXA_GPIO_IRQ_BASE      PXA_IRQ(64)
 #define PXA_GPIO_IRQ_NUM       (128)
 
 #define GPIO_2_x_TO_IRQ(x)     (PXA_GPIO_IRQ_BASE + (x))
 #define NR_IRQS                        (IRQ_S1_BVD1_STSCHG + 1)
 #elif defined(CONFIG_SHARP_LOCOMO)
 #define NR_IRQS                        (IRQ_LOCOMO_SPI_TEND + 1)
-#elif defined(CONFIG_ARCH_LUBBOCK) || \
-      defined(CONFIG_MACH_LOGICPD_PXA270) || \
-      defined(CONFIG_MACH_TOSA) || \
-      defined(CONFIG_MACH_MAINSTONE) || \
-      defined(CONFIG_MACH_PCM027) || \
-      defined(CONFIG_ARCH_PXA_ESERIES) || \
-      defined(CONFIG_MACH_MAGICIAN)
+#elif defined(CONFIG_PXA_HAVE_BOARD_IRQS)
 #define NR_IRQS                        (IRQ_BOARD_END)
 #elif defined(CONFIG_MACH_ZYLONITE)
 #define NR_IRQS                        (IRQ_BOARD_START + 32)
index 5e95c5372fecde471b8767f2cc94d7a815377a7e..fa69c3a6a38e2f558ca2176fc271f5c031ad413f 100644 (file)
@@ -57,7 +57,7 @@ void __init pxa_init_irq(int irq_nr, set_wake_t fn)
 
        pxa_internal_irq_nr = irq_nr;
 
-       for (irq = 0; irq < irq_nr; irq += 32) {
+       for (irq = PXA_IRQ(0); irq < PXA_IRQ(irq_nr); irq += 32) {
                _ICMR(irq) = 0; /* disable all IRQs */
                _ICLR(irq) = 0; /* all IRQs are IRQ, not FIQ */
        }