Re: [PATCH v1] input: tegra-kbc: Add Function keymap.

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

 



On Tue, Feb 08, 2011 at 12:56:24PM -0800, riyer@xxxxxxxxxx wrote:
> From: Rakesh Iyer <riyer@xxxxxxxxxx>
> 
> Add Fn keymap support to allow for internal processing of Fn keys.
> 
> Signed-off-by: Rakesh Iyer <riyer@xxxxxxxxxx>
> ---
> Added support for Fn keymap within tegra keyboard driver.
> 
>  arch/arm/mach-tegra/include/mach/kbc.h |    1 +
>  drivers/input/keyboard/tegra-kbc.c     |   50 ++++++++++++++++++++++++++++++--
>  2 files changed, 48 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-tegra/include/mach/kbc.h b/arch/arm/mach-tegra/include/mach/kbc.h
> index 66ad276..04c7798 100644
> --- a/arch/arm/mach-tegra/include/mach/kbc.h
> +++ b/arch/arm/mach-tegra/include/mach/kbc.h
> @@ -57,5 +57,6 @@ struct tegra_kbc_platform_data {
>  	const struct matrix_keymap_data *keymap_data;
>  
>  	bool wakeup;
> +	bool use_fn_map;
>  };
>  #endif
> diff --git a/drivers/input/keyboard/tegra-kbc.c b/drivers/input/keyboard/tegra-kbc.c
> index ac471b7..9f7bd2e 100644
> --- a/drivers/input/keyboard/tegra-kbc.c
> +++ b/drivers/input/keyboard/tegra-kbc.c
> @@ -60,7 +60,7 @@
>  #define KBC_KP_ENT1_0	0x34
>  #define KBC_ROW0_MASK_0	0x38
>  
> -#define KBC_ROW_SHIFT	3
> +#define KBC_ROW_SHIFT	4
>  
>  struct tegra_kbc {
>  	void __iomem *mmio;
> @@ -71,8 +71,9 @@ struct tegra_kbc {
>  	spinlock_t lock;
>  	unsigned int repoll_dly;
>  	unsigned long cp_dly_jiffies;
> +	bool use_fn_map;
>  	const struct tegra_kbc_platform_data *pdata;
> -	unsigned short keycode[KBC_MAX_KEY];
> +	unsigned short keycode[KBC_MAX_KEY * 2];
>  	unsigned short current_keys[KBC_MAX_KPENT];
>  	unsigned int num_pressed_keys;
>  	struct timer_list timer;
> @@ -107,6 +108,7 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(4, 5, KEY_V),
>  	KEY(4, 6, KEY_C),
>  	KEY(4, 7, KEY_SPACE),
> +	KEY(4, 8, KEY_7),
>  
>  	KEY(5, 0, KEY_9),
>  	KEY(5, 1, KEY_8),
> @@ -116,6 +118,10 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(5, 5, KEY_N),
>  	KEY(5, 6, KEY_B),
>  	KEY(5, 7, KEY_BACKSLASH),
> +	KEY(5, 8, KEY_9),
> +	KEY(5, 9, KEY_8),
> +	KEY(5, 10, KEY_4),
> +	KEY(5, 12, KEY_1),

I think Fn emulates keypad here, so KEY_KP9, KEY_KP8, etc.

>  
>  	KEY(6, 0, KEY_MINUS),
>  	KEY(6, 1, KEY_0),
> @@ -125,6 +131,12 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(6, 5, KEY_K),
>  	KEY(6, 6, KEY_COMMA),
>  	KEY(6, 7, KEY_M),
> +	KEY(6, 9, KEY_SLASH),
> +	KEY(6, 10, KEY_6),
> +	KEY(6, 11, KEY_5),
> +	KEY(6, 12, KEY_3),
> +	KEY(6, 13, KEY_2),
> +	KEY(6, 15, KEY_0),
>  
>  	KEY(7, 1, KEY_EQUAL),
>  	KEY(7, 2, KEY_RIGHTBRACE),
> @@ -143,6 +155,10 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(11, 3, KEY_SEMICOLON),
>  	KEY(11, 4, KEY_SLASH),
>  	KEY(11, 5, KEY_DOT),
> +	KEY(11, 9, KEY_KPASTERISK),
> +	KEY(11, 11, KEY_KPMINUS),
> +	KEY(11, 12, KEY_KPPLUS),
> +	KEY(11, 13, KEY_DOT),
>  
>  	KEY(12, 0, KEY_F10),
>  	KEY(12, 1, KEY_F9),
> @@ -152,6 +168,7 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(12, 5, KEY_UP),
>  	KEY(12, 6, KEY_PRINT),
>  	KEY(12, 7, KEY_PAUSE),
> +	KEY(12, 13, KEY_VOLUMEUP),
>  
>  	KEY(13, 0, KEY_INSERT),
>  	KEY(13, 1, KEY_DELETE),
> @@ -160,6 +177,11 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(13, 5, KEY_RIGHT),
>  	KEY(13, 6, KEY_DOWN),
>  	KEY(13, 7, KEY_LEFT),
> +	KEY(13, 11, KEY_HOME),
> +	KEY(13, 12, KEY_END),
> +	KEY(13, 13, KEY_BRIGHTNESSDOWN),
> +	KEY(13, 14, KEY_VOLUMEDOWN),
> +	KEY(13, 15, KEY_BRIGHTNESSUP),
>  
>  	KEY(14, 0, KEY_F11),
>  	KEY(14, 1, KEY_F12),
> @@ -169,6 +191,9 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(14, 5, KEY_F3),
>  	KEY(14, 6, KEY_1),
>  	KEY(14, 7, KEY_F7),
> +	KEY(14, 8, KEY_NUMLOCK),
> +	KEY(14, 9, KEY_SCROLLLOCK),
> +	KEY(14, 10, KEY_MUTE),
>  
>  	KEY(15, 0, KEY_ESC),
>  	KEY(15, 1, KEY_GRAVE),
> @@ -178,6 +203,7 @@ static const u32 tegra_kbc_default_keymap[] = {
>  	KEY(15, 5, KEY_F2),
>  	KEY(15, 6, KEY_CAPSLOCK),
>  	KEY(15, 7, KEY_F6),
> +	KEY(15, 12, KEY_QUESTION),

Not KEY_SLASH or similar?

-- 
Dmitry
--
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