Subject: [E3-hacking] Fwd: [RFC][PATCH 0/5] omap1: Amstrad Delta: add support for external keyboard

From: Janusz Krzysztofik <[email-masked]>
Date: Thu, 10 Dec 2009 21:55:01 +0100

Hi,

I forgot to CC: e3-hacking on submission, here is a copy, and a link:
http://www.spinics.net/lists/linux-omap/msg22001.html. I'll try to remember
about adding to CC: when replying to comments if any.

Thanks,
Janusz

----------  Original message  ----------

Subject: [RFC][PATCH 0/5] omap1: Amstrad Delta: add support for external keyboard
Date: Thursday, 10 December 2009
From: Janusz Krzysztofik <[email-masked]>
To: [email-masked]

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 MPU GPIO generated
interrupts would be converted to FIQ, the handler must include support for all
supported MPU 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 also handling interrupts generated by a GPIO line that the
  recently added hook switch hangs off.

Created and tested against linux-omap for-next,
commit 82f1d8f22f2c65e70206e40a6f17688bf64a892c dated 2009-12-02.

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 MPU 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 |   56 +++
 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         |  240 ++++++++++++++++
 11 files changed, 845 insertions(+), 1 deletion(-)

[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

---

There is one minor issue that I have not dealt with yet: 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?

Thanks,
Janusz

-------------------------------------------------------