[RFC][PATCH v2 0/5] omap1: Amstrad Delta: add support for external keyboard
Janusz Krzysztofik
jkrzyszt at tis.icnet.pl
Mon Mar 29 10:19:23 EDT 2010
This series of patches adds support for an external keyboard (called
mailboard) connected to the Amstrad Delta (E3) videophone.
The series is based on a patch by Matt Callow, created against
linux-omap-2.6.19[1], initially submitted to the e3-hacking mailing list in
April 2006[2].
Since the keyboard serial clock line is connected to a GPIO line, it generates
interrupts every single bit received. In order to handle this correctly, the
code makes use of a FIQ hardware feature. Since all GPIO generated interrupts
would be converted to FIQ, the handler must include support for all supported
GPIO connected devices: the keyboard, a modem and a hook switch.
My modifications to the original patch include:
- split into several patches,
- refresh against a recent linux version,
- a lot of cleanups, mainly to get rid of checkpatch reported issues,
- add support for handling interrupts generated by a GPIO line that the
meanwhile activated hook switch hangs off.
v2 changes:
- remove scan code to key code mapping from the serio driver, that doesn't
belong here and should be set up from userspace; thanks to Dmitry Torokhov
for advising this,
- no funtional changes in FIQ part (there were no comments in round 1).
There is still one minor issue that I was not able to deal with: when built
with CONFIG_OMAP_RESET_CLOCKS=y, the keyboard driver stops working. I have no
idea how I could find which clock I should enable to get it working regardless
of boot loader used. Any suggestions?
Created and tested against linux-2.6.34-rc2.
Janusz Krzysztofik(5)
omap1: Amstrad Delta: add FIQ handler for serial keyboard port interrupt
processing
omap1: Amstrad Delta: add a handler for processing interrupts generated by
the FIQ routine
omap1: Amstrad Delta: use FIQ for processing GPIO interrupts
input: serio: add support for Amstrad Delta serial keyboard port
omap1: Amstrad Delta: modify defconfig for external keyboard support
arch/arm/configs/ams_delta_defconfig | 2
arch/arm/mach-omap1/Kconfig | 8
arch/arm/mach-omap1/Makefile | 3
arch/arm/mach-omap1/ams-delta-fiq-handler.S | 342 +++++++++++++++++++++++
arch/arm/mach-omap1/ams-delta-fiq.c | 175 +++++++++++
arch/arm/mach-omap1/board-ams-delta.c | 6
arch/arm/mach-omap1/include/mach/ams-delta-fiq.h | 57 +++
arch/arm/plat-omap/include/plat/irqs.h | 4
drivers/input/serio/Kconfig | 9
drivers/input/serio/Makefile | 1
drivers/input/serio/ams_delta_keyboard.c | 171 +++++++++++
11 files changed, 777 insertions(+), 1 deletion(-)
Thanks,
Janusz
[1] http://the.earth.li/pub/e3/2.6.19/ams-delta-keyboard.patch
[2] http://www.earth.li/pipermail/e3-hacking/2006-April/000453.html
More information about the linux-arm-kernel
mailing list