Re: [PATCH] [ARM] pxa/spitz: use GPIO matrix keypad driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon 2009-07-20 19:41:54, Eric Miao wrote:
> Signed-off-by: Eric Miao <eric.y.miao@xxxxxxxxx>

Does this make some other driver obsolete? Should we disable the other
one or even remove it completely?



> diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
> index dda310f..e3156a0 100644
> --- a/arch/arm/mach-pxa/spitz.c
> +++ b/arch/arm/mach-pxa/spitz.c
> @@ -24,6 +24,7 @@
>  #include <linux/spi/ads7846.h>
>  #include <linux/spi/corgi_lcd.h>
>  #include <linux/mtd/sharpsl.h>
> +#include <linux/input/matrix_keypad.h>
>  
>  #include <asm/setup.h>
>  #include <asm/mach-types.h>
> @@ -111,6 +112,26 @@ static unsigned long spitz_pin_config[] __initdata = {
>  	GPIO105_GPIO,	/* SPITZ_GPIO_CF_IRQ */
>  	GPIO106_GPIO,	/* SPITZ_GPIO_CF2_IRQ */
>  
> +	/* GPIO matrix keypad */
> +	GPIO88_GPIO,	/* column 0 */
> +	GPIO23_GPIO,	/* column 1 */
> +	GPIO24_GPIO,	/* column 2 */
> +	GPIO25_GPIO,	/* column 3 */
> +	GPIO26_GPIO,	/* column 4 */
> +	GPIO27_GPIO,	/* column 5 */
> +	GPIO52_GPIO,	/* column 6 */
> +	GPIO103_GPIO,	/* column 7 */
> +	GPIO107_GPIO,	/* column 8 */
> +	GPIO108_GPIO,	/* column 9 */
> +	GPIO114_GPIO,	/* column 10 */
> +	GPIO12_GPIO,	/* row 0 */
> +	GPIO17_GPIO,	/* row 1 */
> +	GPIO91_GPIO,	/* row 2 */
> +	GPIO34_GPIO,	/* row 3 */
> +	GPIO36_GPIO,	/* row 4 */
> +	GPIO38_GPIO,	/* row 5 */
> +	GPIO39_GPIO,	/* row 6 */
> +
>  	/* I2C */
>  	GPIO117_I2C_SCL,
>  	GPIO118_I2C_SDA,
> @@ -242,9 +263,106 @@ EXPORT_SYMBOL(spitzscoop2_device);
>  /*
>   * Spitz Keyboard Device
>   */
> +#define SPITZ_KEY_CALENDAR	KEY_F1
> +#define SPITZ_KEY_ADDRESS	KEY_F2
> +#define SPITZ_KEY_FN		KEY_F3
> +#define SPITZ_KEY_CANCEL	KEY_F4
> +#define SPITZ_KEY_EXOK		KEY_F5
> +#define SPITZ_KEY_EXCANCEL	KEY_F6
> +#define SPITZ_KEY_EXJOGDOWN	KEY_F7
> +#define SPITZ_KEY_EXJOGUP	KEY_F8
> +#define SPITZ_KEY_JAP1		KEY_LEFTALT
> +#define SPITZ_KEY_JAP2		KEY_RIGHTCTRL
> +#define SPITZ_KEY_SYNC		KEY_F9
> +#define SPITZ_KEY_MAIL		KEY_F10
> +#define SPITZ_KEY_OK		KEY_F11
> +#define SPITZ_KEY_MENU		KEY_F12
> +
> +static const uint32_t spitzkbd_keymap[] = {
> +	KEY(0, 0, KEY_LEFTCTRL),
> +	KEY(0, 1, KEY_1),
> +	KEY(0, 2, KEY_3),
> +	KEY(0, 3, KEY_5),
> +	KEY(0, 4, KEY_6),
> +	KEY(0, 5, KEY_7),
> +	KEY(0, 6, KEY_9),
> +	KEY(0, 7, KEY_0),
> +	KEY(0, 8, KEY_BACKSPACE),
> +	KEY(0, 9, SPITZ_KEY_EXOK),	/* EXOK */
> +	KEY(0, 10, SPITZ_KEY_EXCANCEL),	/* EXCANCEL */
> +	KEY(1, 1, KEY_2),
> +	KEY(1, 2, KEY_4),
> +	KEY(1, 3, KEY_R),
> +	KEY(1, 4, KEY_Y),
> +	KEY(1, 5, KEY_8),
> +	KEY(1, 6, KEY_I),
> +	KEY(1, 7, KEY_O),
> +	KEY(1, 8, KEY_P),
> +	KEY(1, 9, SPITZ_KEY_EXJOGDOWN),	/* EXJOGDOWN */
> +	KEY(1, 10, SPITZ_KEY_EXJOGUP),	/* EXJOGUP */
> +	KEY(2, 0, KEY_TAB),
> +	KEY(2, 1, KEY_Q),
> +	KEY(2, 2, KEY_E),
> +	KEY(2, 3, KEY_T),
> +	KEY(2, 4, KEY_G),
> +	KEY(2, 5, KEY_U),
> +	KEY(2, 6, KEY_J),
> +	KEY(2, 7, KEY_K),
> +	KEY(3, 0, SPITZ_KEY_ADDRESS),	/* ADDRESS */
> +	KEY(3, 1, KEY_W),
> +	KEY(3, 2, KEY_S),
> +	KEY(3, 3, KEY_F),
> +	KEY(3, 4, KEY_V),
> +	KEY(3, 5, KEY_H),
> +	KEY(3, 6, KEY_M),
> +	KEY(3, 7, KEY_L),
> +	KEY(3, 9, KEY_RIGHTSHIFT),
> +	KEY(4, 0, SPITZ_KEY_CALENDAR),	/* CALENDAR */
> +	KEY(4, 1, KEY_A),
> +	KEY(4, 2, KEY_D),
> +	KEY(4, 3, KEY_C),
> +	KEY(4, 4, KEY_B),
> +	KEY(4, 5, KEY_N),
> +	KEY(4, 6, KEY_DOT),
> +	KEY(4, 8, KEY_ENTER),
> +	KEY(4, 9, KEY_LEFTSHIFT),
> +	KEY(5, 0, SPITZ_KEY_MAIL),	/* MAIL */
> +	KEY(5, 1, KEY_Z),
> +	KEY(5, 2, KEY_X),
> +	KEY(5, 3, KEY_MINUS),
> +	KEY(5, 4, KEY_SPACE),
> +	KEY(5, 5, KEY_COMMA),
> +	KEY(5, 7, KEY_UP),
> +	KEY(5, 10, SPITZ_KEY_FN),	/* FN */
> +	KEY(6, 0, KEY_SYSRQ),
> +	KEY(6, 1, SPITZ_KEY_JAP1),	/* JAP1 */
> +	KEY(6, 2, SPITZ_KEY_JAP2),	/* JAP2 */
> +	KEY(6, 3, SPITZ_KEY_CANCEL),	/* CANCEL */
> +	KEY(6, 4, SPITZ_KEY_OK),	/* OK */
> +	KEY(6, 5, SPITZ_KEY_MENU),	/* MENU */
> +	KEY(6, 6, KEY_LEFT),
> +	KEY(6, 7, KEY_DOWN),
> +	KEY(6, 8, KEY_RIGHT),
> +};
> +
> +static struct matrix_keypad_platform_data spitzkbd_pdata = {
> +	.keymap		= spitzkbd_keymap,
> +	.keymap_size	= ARRAY_SIZE(spitzkbd_keymap),
> +	.col_gpios	= {88, 23, 24, 25, 26, 27, 52, 103, 107, 108, 114, -1},
> +	.row_gpios	= {12, 17, 91, 34, 36, 38, 39, -1},
> +	.num_col_gpios	= 11,
> +	.num_row_gpios	= 7,
> +	.col_scan_delay_us	= 10,
> +	.debounce_ms		= 10,
> +	.wakeup			= 1,
> +};
> +
>  static struct platform_device spitzkbd_device = {
> -	.name		= "spitz-keyboard",
> +	.name		= "matrix-keypad",
>  	.id		= -1,
> +	.dev		= {
> +		.platform_data = &spitzkbd_pdata,
> +	},
>  };
>  
>  

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux