sh: SuperH KEYSC platform driver

Add a platform driver for the SuperH KEYSC block.  The driver expects to get
mode, timing information and keypad layout from the board code as platform
data.  The board code is resonsible for pin configuration.

Both sh7343 and sh7722 should be supported, but only the sh7722 processor has
been tested so far.  SH_KEYSC_MODE_3 is yet to be tested.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Cc: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Magnus Damm 2008-03-04 15:23:45 -08:00 • committed by Paul Mundt
commit 795e6bf335
4 changed files with 304 additions and 0 deletions

13
include/asm-sh/sh_keysc.h Normal file
View file

@ -0,0 +1,13 @@
#ifndef __ASM_KEYSC_H__
#define __ASM_KEYSC_H__
#define SH_KEYSC_MAXKEYS 30
struct sh_keysc_info {
enum { SH_KEYSC_MODE_1, SH_KEYSC_MODE_2, SH_KEYSC_MODE_3 } mode;
int scan_timing; /* 0 -> 7, see KYCR1, SCN[2:0] */
int delay;
int keycodes[SH_KEYSC_MAXKEYS];
};
#endif /* __ASM_KEYSC_H__ */