linux/arch/arm/mach-at91
David Brownell e83aff58bf [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work
On the at91sam9263, IRQs for GPIO banks C and D don't currently work.
This is because banks C, D, and E share one clock and toplevel IRQ, but
the AT91 code setting up and handling GPIO IRQs expects no sharing.
This patch:

 - Fixes GPIO IRQ setup and handling to cope with GPIO banks that are
   shared like on sam9263 chips, by setting up a list of those banks
   and making the IRQ dispatching logic scan that list.

 - Precomputes the address of each bank's registers, saving it with
   other per-bank data so that it no longer needs to be constantly
   recomputed during IRQs and other GPIO operations.  That shrinks
   hot-path code, while helping the GPIO bank irq updates.

 - Fixes a minor bug where IRQ_TYPE_NONE was wrongly rejected (it just
   means "use the default", which is "both edges" here).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-02-04 13:16:39 +00:00
..
at91cap9_devices.c [ARM] 4764/1: [AT91] AT91CAP9 core support 2008-01-26 15:01:13 +00:00
at91cap9.c [ARM] 4764/1: [AT91] AT91CAP9 core support 2008-01-26 15:01:13 +00:00
at91rm9200_devices.c [ARM] 4760/1: [AT91] SPI CS0 errata on AT91RM9200 2008-01-26 15:00:32 +00:00
at91rm9200_time.c [ARM] 4539/1: clocksource and clockevents for at91rm9200 2007-10-12 23:43:15 +01:00
at91rm9200.c [ARM] 4656/1: AT91: Tweak interrupt priorities 2008-01-26 15:00:30 +00:00
at91sam9rl_devices.c [ARM] 4758/1: [AT91] LEDs 2008-01-26 15:00:32 +00:00
at91sam9rl.c [ARM] 4370/3: AT91: Support for Atmel AT91SAM9RL processors. 2007-05-11 21:07:54 +01:00
at91sam926x_time.c Add IRQF_IRQPOLL flag on arm 2007-05-08 11:15:22 -07:00
at91sam9260_devices.c [ARM] 4758/1: [AT91] LEDs 2008-01-26 15:00:32 +00:00
at91sam9260.c [ARM] 4656/1: AT91: Tweak interrupt priorities 2008-01-26 15:00:30 +00:00
at91sam9261_devices.c [ARM] 4738/1: at91sam9261: Remove udc pullup enabling in board initialisation 2008-01-26 15:00:33 +00:00
at91sam9261.c [ARM] 4656/1: AT91: Tweak interrupt priorities 2008-01-26 15:00:30 +00:00
at91sam9263_devices.c [ARM] 4758/1: [AT91] LEDs 2008-01-26 15:00:32 +00:00
at91sam9263.c [ARM] 4656/1: AT91: Tweak interrupt priorities 2008-01-26 15:00:30 +00:00
at91x40_time.c [ARM] 4533/1: AT91x40 timer support 2007-10-12 23:43:04 +01:00
at91x40.c [ARM] 4534/1: AT91x40 interrupt support 2007-10-12 23:43:05 +01:00
board-1arm.c [ARM] 4124/1: Rename mach-at91rm9200 and arch-at91rm9200 directories 2007-02-08 14:50:56 +00:00
board-cap9adk.c [ARM] 4765/1: [AT91] AT91CAP9A-DK board support 2008-01-26 15:01:14 +00:00
board-carmeva.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-csb337.c [ARM] 4761/1: [AT91] Board-support for NEW_LEDs 2008-01-26 15:00:32 +00:00
board-csb637.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-dk.c [ARM] 4761/1: [AT91] Board-support for NEW_LEDs 2008-01-26 15:00:32 +00:00
board-eb01.c [ARM] 4538/1: Atmel EB01 board support 2007-10-12 23:43:07 +01:00
board-eb9200.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-ek.c [ARM] 4761/1: [AT91] Board-support for NEW_LEDs 2008-01-26 15:00:32 +00:00
board-kafa.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-kb9202.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-picotux200.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-sam9rlek.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-sam9260ek.c [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio 2007-11-26 19:40:47 +00:00
board-sam9261ek.c [ARM] 4615/4: sam926[13]ek buttons updated 2008-01-27 17:54:16 +00:00
board-sam9263ek.c [ARM] 4615/4: sam926[13]ek buttons updated 2008-01-27 17:54:16 +00:00
clock.c [ARM] 4764/1: [AT91] AT91CAP9 core support 2008-01-26 15:01:13 +00:00
clock.h [ARM] 4124/1: Rename mach-at91rm9200 and arch-at91rm9200 directories 2007-02-08 14:50:56 +00:00
generic.h [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work 2008-02-04 13:16:39 +00:00
gpio.c [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work 2008-02-04 13:16:39 +00:00
irq.c [ARM] 4124/1: Rename mach-at91rm9200 and arch-at91rm9200 directories 2007-02-08 14:50:56 +00:00
Kconfig [ARM] 4765/1: [AT91] AT91CAP9A-DK board support 2008-01-26 15:01:14 +00:00
leds.c [ARM] 4758/1: [AT91] LEDs 2008-01-26 15:00:32 +00:00
Makefile [ARM] 4765/1: [AT91] AT91CAP9A-DK board support 2008-01-26 15:01:14 +00:00
Makefile.boot [ARM] 4764/1: [AT91] AT91CAP9 core support 2008-01-26 15:01:13 +00:00
pm.c Suspend: Introduce begin() and end() callbacks 2008-02-01 18:30:56 -05:00