Allocated a wskbd entry for the Nokia N900
Pre-allocated more potential interrupt sources for the N900. It features
the regular 6 * 32 GPIO pins on the main core, plus 18 pins on the TPS65950
companion chip, for a total of at least 210 such interrupt sources.
Allow interrupt handlers to be temporarily disabled or enabled again,
including from within interrupt context: returning non-zero keeps the
handler enabled (as previously), while returning zero disables the
interrupt until a call to intr_enable().

This is necessary with the TPS65950 companion chip because:
- it interrupts on the main code (via IRQ_SYS_nIRQ0)
- interrupt handling requires I2C traffic (to access registers)
- interrupt-based interaction is necessary with this chip (keypad, GPIO...)

XXX Affects other ARM devices using the ARM PIC code, additional code
    review is required to address them.
Added two locators for I2C devices: "intr" and "intrbase".

They are required to allow the TPS65950 companion chip to both handle its
interrupts on the system, and allow its extra GPIO pins to be used as
interrupts as well.

XXX This change is not adequate because intr_establish() is a MD interface,
    so it will have to be re-designed before merging to the main tree.
Added the base registers for SPI support.
Added a locator for interrupts on the GPIO bus. This allows ARM devices
(like the Nokia N900) to register interrupt handlers as specified within
their respective kernel configuration file.

XXX This change is not adequate because intr_establish() is a MD interface,
    so it will have to be re-designed before merging to the main tree.
Just like for the I2C and GPIO buses, added an interrupt locator to the SPI
bus, so that ARM device drivers on either of these buses (like on the Nokia
N900) can register and react on system interrupts. These interrupts are
typically triggered via GPIO pins.

XXX This change is not adequate because intr_establish() is a MD interface,
    so it will have to be re-designed before merging to the main tree.
Imported omapspi(4), a driver for Multichannel SPI as found on the OMAP 2/3
from Texas Instruments.

Partly tested on the Nokia N900 (OMAP 3430).
Enable support for the SPI bus
Moved register values to a separate file
Let the device drivers on the GPIO bus use the interrupt locator.
Beginning to handle interrupts from the TPS65950 companion chip.
Added GPIO support to the TPS65950 companion chip. I haven't been able to
test it properly thus far unfortunately.

XXX Implement level-triggered interrupts.
tps65950pm(4) can now expose a GPIO bus.
Removed debugging code
Added keyboard support for the TPS65950 companion chip.

Tested on the Nokia N900 (multi-user)
Removed a bogus assertion.
Make sure interrupts are cleared on the current channel when initiating a
transfer. Also force the current transfer to be terminated upon end of
transmission.
Let the bus speed of SPI devices be specified within the kernel
configuration.
Seems to be much closer to working correctly. Apparently one has to read
back anything transmitted, as well as transmit 0's to be able to read
anything. This would explain the whole juggling with chunks, counts and
pointers.