aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-common
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-04-15 13:04:59 -0400
committerMike Frysinger <vapier@gentoo.org>2011-05-25 08:13:43 -0400
commit8c0541035007bd8bbacfc5d71c696cdf37696794 (patch)
tree3731d537dcb31b6decfc5493be6f4d5f3d055fb2 /arch/blackfin/mach-common
parente2a8092c3fa9766248e9515252ae44e6df2d97a0 (diff)
Blackfin: bf537: demux port H mask A and emac rx ints
The BF537 SIC combines the gpio port H mask A interrupts with the emac rx interrupt, so we need to demux this in software. It also combines the gpio port H mask B and the emac tx interrupts, and the watchdog and port F mask B interrupts, but since we don't support mask B yet, just add the defines for now. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-common')
-rw-r--r--arch/blackfin/mach-common/ints-priority.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index ad28eb12003a..1177369f9922 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -582,22 +582,20 @@ static void bfin_demux_gpio_block(unsigned int irq)
582 } 582 }
583} 583}
584 584
585static void bfin_demux_gpio_irq(unsigned int inta_irq, 585void bfin_demux_gpio_irq(unsigned int inta_irq,
586 struct irq_desc *desc) 586 struct irq_desc *desc)
587{ 587{
588 unsigned int irq; 588 unsigned int irq;
589 589
590 switch (inta_irq) { 590 switch (inta_irq) {
591#if defined(BF537_FAMILY) 591#if defined(BF537_FAMILY)
592 case IRQ_PROG_INTA: 592 case IRQ_PF_INTA_PG_INTA:
593 bfin_demux_gpio_block(IRQ_PF0); 593 bfin_demux_gpio_block(IRQ_PF0);
594 irq = IRQ_PG0; 594 irq = IRQ_PG0;
595 break; 595 break;
596# if !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) 596 case IRQ_PH_INTA_MAC_RX:
597 case IRQ_MAC_RX:
598 irq = IRQ_PH0; 597 irq = IRQ_PH0;
599 break; 598 break;
600# endif
601#elif defined(BF533_FAMILY) 599#elif defined(BF533_FAMILY)
602 case IRQ_PROG_INTA: 600 case IRQ_PROG_INTA:
603 irq = IRQ_PF0; 601 irq = IRQ_PF0;
@@ -881,8 +879,8 @@ static int bfin_gpio_set_wake(struct irq_data *d, unsigned int state)
881# define bfin_gpio_set_wake NULL 879# define bfin_gpio_set_wake NULL
882#endif 880#endif
883 881
884static void bfin_demux_gpio_irq(unsigned int inta_irq, 882void bfin_demux_gpio_irq(unsigned int inta_irq,
885 struct irq_desc *desc) 883 struct irq_desc *desc)
886{ 884{
887 u32 bank, pint_val; 885 u32 bank, pint_val;
888 u32 request, irq; 886 u32 request, irq;
@@ -1001,11 +999,11 @@ int __init init_arch_irq(void)
1001 irq_set_chip(irq, &bfin_internal_irqchip); 999 irq_set_chip(irq, &bfin_internal_irqchip);
1002 1000
1003 switch (irq) { 1001 switch (irq) {
1004#if defined(CONFIG_BF53x) 1002#if defined(BF537_FAMILY)
1003 case IRQ_PH_INTA_MAC_RX:
1004 case IRQ_PF_INTA_PG_INTA:
1005#elif defined(BF533_FAMILY)
1005 case IRQ_PROG_INTA: 1006 case IRQ_PROG_INTA:
1006# if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE))
1007 case IRQ_MAC_RX:
1008# endif
1009#elif defined(CONFIG_BF54x) 1007#elif defined(CONFIG_BF54x)
1010 case IRQ_PINT0: 1008 case IRQ_PINT0:
1011 case IRQ_PINT1: 1009 case IRQ_PINT1: