summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPradeep Goudagunta <pgoudagunta@nvidia.com>2011-01-19 20:01:22 +0530
committerNiket Sirsi <nsirsi@nvidia.com>2011-01-20 15:35:31 -0800
commit8fe92f5852821889e15b01cf55e279081c39d84a (patch)
treeb3212d88b703d14f93a5cce7968cb19ec3e2af68 /arch
parentd181e5e93b8a3525661eb4b526aff953249c2fe3 (diff)
[ARM] tegra:kbc:Misc fixes and cleanups
Following are changes: - Fixes stylistic, indenting and coding style issue. - Added option for scan timeout. - Fixes code to have only required number of key codes from board. - Remove the keycodes from driver and only based on board table. - Fixes the kbc platform data to provide better option for configuration. - Modified board files to build properly. Change-Id: I5e6b9f26ecf8db0769aabac9574cfb6d48c1f061 Reviewed-on: http://git-master/r/16254 Tested-by: Pradeep Goudagunta <pgoudagunta@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com> Tested-by: Sachin Nikam <snikam@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/board-ventana-kbc.c112
-rw-r--r--arch/arm/mach-tegra/board-whistler-kbc.c134
-rw-r--r--arch/arm/mach-tegra/include/mach/kbc.h47
3 files changed, 97 insertions, 196 deletions
diff --git a/arch/arm/mach-tegra/board-ventana-kbc.c b/arch/arm/mach-tegra/board-ventana-kbc.c
index 869af114fa90..3ea765ee5035 100644
--- a/arch/arm/mach-tegra/board-ventana-kbc.c
+++ b/arch/arm/mach-tegra/board-ventana-kbc.c
@@ -22,7 +22,6 @@
* driver instead
*/
-
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/input.h>
@@ -39,80 +38,42 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
+#define VENTANA_ROW_COUNT 15
+#define VENTANA_COL_COUNT 7
static int plain_kbd_keycode[] = {
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_RESERVED, KEY_HOME, KEY_BACK, KEY_MENU,
- KEY_VOLUMEDOWN, KEY_VOLUMEUP, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED
+ KEY_VOLUMEDOWN, KEY_VOLUMEUP, KEY_RESERVED,
};
-static int fn_kbd_keycode[] = {
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_HOME, KEY_BACK, KEY_MENU,
- KEY_VOLUMEDOWN, KEY_VOLUMEUP, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED
-};
-
-
-
-
static struct tegra_kbc_wake_key ventana_wake_cfg[] = {
[0] = {
.row = 14,
@@ -120,16 +81,18 @@ static struct tegra_kbc_wake_key ventana_wake_cfg[] = {
},
};
-
static struct tegra_kbc_platform_data ventana_kbc_platform_data = {
.debounce_cnt = 20,
.repeat_cnt = 50 * 32,
- .wake_cnt = 1,
+ .scan_timeout_cnt = 3000 * 32,
+ .plain_keycode = plain_kbd_keycode,
+ .fn_keycode = NULL,
+ .is_filter_keys = false,
+ .is_wake_on_any_key = false,
+ .wake_key_cnt = 1,
.wake_cfg = &ventana_wake_cfg[0],
- .filter_keys = true,
};
-
static struct resource ventana_kbc_resources[] = {
[0] = {
.start = TEGRA_KBC_BASE,
@@ -143,7 +106,6 @@ static struct resource ventana_kbc_resources[] = {
},
};
-
struct platform_device ventana_kbc_device = {
.name = "tegra-kbc",
.id = -1,
@@ -161,28 +123,20 @@ int __init ventana_kbc_init(void)
pr_info("KBC: ventana_kbc_init\n");
- /*
- * Setup the pin configuration information.
- */
- for (i = 0; i < KBC_MAX_ROW; i++) {
+ /* Setup the pin configuration information. */
+ for (i = 0; i < KBC_MAX_GPIO; i++) {
+ data->pin_cfg[i].num = 0;
+ data->pin_cfg[i].pin_type = kbc_pin_unused;
+ }
+ for (i = 0; i < VENTANA_ROW_COUNT; i++) {
data->pin_cfg[i].num = i;
- data->pin_cfg[i].is_row = true;
- data->pin_cfg[i].is_col = false;
+ data->pin_cfg[i].pin_type = kbc_pin_row;
}
- for (j = 0; j < 7/*KBC_MAX_COL*/; j++) {
- data->pin_cfg[i + j].num = j;
- data->pin_cfg[i + j].is_row = false;
- data->pin_cfg[i + j].is_col = true;
+ for (i = 0; i < VENTANA_COL_COUNT; i++) {
+ data->pin_cfg[i + VENTANA_ROW_COUNT].num = i;
+ data->pin_cfg[i + VENTANA_ROW_COUNT].pin_type = kbc_pin_col;
}
-
- /* tegra-kbc will use default keycodes. */
- data->plain_keycode = plain_kbd_keycode;
- data->fn_keycode = fn_kbd_keycode;
- data->filter_keys = true;
platform_device_register(&ventana_kbc_device);
return 0;
}
-
-
-
diff --git a/arch/arm/mach-tegra/board-whistler-kbc.c b/arch/arm/mach-tegra/board-whistler-kbc.c
index 6dbe66911e17..ca62d8570115 100644
--- a/arch/arm/mach-tegra/board-whistler-kbc.c
+++ b/arch/arm/mach-tegra/board-whistler-kbc.c
@@ -40,86 +40,26 @@
* should NOT be configured as KBC
*/
#ifdef CONFIG_INPUT_ALPS_GPIO_SCROLLWHEEL
-#define KBC_ROWS 3
-#define KBC_COLS 2
+#define WHISTLER_ROW_COUNT 2
+#define WHISTLER_COL_COUNT 2
#else
-#define KBC_ROWS 4
-#define KBC_COLS 6
+#define WHISTLER_ROW_COUNT 4
+#define WHISTLER_COL_COUNT 2
#endif
+#ifdef CONFIG_INPUT_ALPS_GPIO_SCROLLWHEEL
static int plain_kbd_keycode[] = {
- KEY_POWER, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_HOME, KEY_BACK, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_VOLUMEDOWN, KEY_VOLUMEUP, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED
+ KEY_POWER, KEY_RESERVED,
+ KEY_HOME, KEY_BACK,
};
-
-static int fn_kbd_keycode[] = {
- KEY_POWER, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_HOME, KEY_BACK, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+#else
+static int plain_kbd_keycode[] = {
+ KEY_POWER, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
+ KEY_HOME, KEY_BACK, KEY_RESERVED, KEY_RESERVED,
+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
KEY_VOLUMEDOWN, KEY_VOLUMEUP, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED
};
-
-
-
-
+#endif
static struct tegra_kbc_wake_key whistler_wake_cfg[] = {
[0] = {
.row = 0,
@@ -127,16 +67,18 @@ static struct tegra_kbc_wake_key whistler_wake_cfg[] = {
},
};
-
static struct tegra_kbc_platform_data whistler_kbc_platform_data = {
.debounce_cnt = 20,
.repeat_cnt = 50 * 32,
- .wake_cnt = 1,
+ .scan_timeout_cnt = 3000 * 32,
+ .plain_keycode = plain_kbd_keycode,
+ .fn_keycode = NULL,
+ .is_filter_keys = false,
+ .is_wake_on_any_key = false,
+ .wake_key_cnt = 1,
.wake_cfg = &whistler_wake_cfg[0],
- .filter_keys = true,
};
-
static struct resource whistler_kbc_resources[] = {
[0] = {
.start = TEGRA_KBC_BASE,
@@ -150,7 +92,6 @@ static struct resource whistler_kbc_resources[] = {
},
};
-
struct platform_device whistler_kbc_device = {
.name = "tegra-kbc",
.id = -1,
@@ -164,38 +105,25 @@ struct platform_device whistler_kbc_device = {
int __init whistler_kbc_init(void)
{
struct tegra_kbc_platform_data *data = &whistler_kbc_platform_data;
- int i, j;
+ int i;
pr_info("KBC: whistler_kbc_init\n");
- /*
- * Setup the pin configuration information.
- */
- for (i = 0; i < KBC_MAX_ROW; i++) {
- if (i < KBC_ROWS) {
- data->pin_cfg[i].num = i;
- data->pin_cfg[i].is_row = true;
- data->pin_cfg[i].is_col = false;
- } else {
- data->pin_cfg[i].is_row = false;
- data->pin_cfg[i].is_col = false;
- }
+ /* Setup the pin configuration information. */
+ for (i = 0; i < KBC_MAX_GPIO; i++) {
+ data->pin_cfg[i].num = 0;
+ data->pin_cfg[i].pin_type = kbc_pin_unused;
}
- for (j = 0; j < KBC_MAX_COL; j++) {
- if (j < KBC_COLS) {
- data->pin_cfg[i + j].num = j;
- data->pin_cfg[i + j].is_row = false;
- data->pin_cfg[i + j].is_col = true;
- } else {
- data->pin_cfg[i + j].is_row = false;
- data->pin_cfg[i + j].is_col = false;
- }
+ for (i = 0; i < WHISTLER_ROW_COUNT; i++) {
+ data->pin_cfg[i].num = i;
+ data->pin_cfg[i].pin_type = kbc_pin_row;
+ }
+ for (i = 0; i < WHISTLER_COL_COUNT; i++) {
+ data->pin_cfg[i + WHISTLER_ROW_COUNT].num = i;
+ data->pin_cfg[i + WHISTLER_ROW_COUNT].pin_type = kbc_pin_col;
}
- data->plain_keycode = plain_kbd_keycode;
- data->fn_keycode = fn_kbd_keycode;
- data->filter_keys = true;
platform_device_register(&whistler_kbc_device);
return 0;
}
diff --git a/arch/arm/mach-tegra/include/mach/kbc.h b/arch/arm/mach-tegra/include/mach/kbc.h
index 641a9bbd8318..4725c9815d0b 100644
--- a/arch/arm/mach-tegra/include/mach/kbc.h
+++ b/arch/arm/mach-tegra/include/mach/kbc.h
@@ -25,18 +25,16 @@
#include <linux/types.h>
-#define KBC_MAX_GPIO 24
-#define KBC_MAX_KPENT 8
+#define KBC_MAX_ROW 16
+#define KBC_MAX_COL 8
+#define KBC_MAX_GPIO (KBC_MAX_ROW + KBC_MAX_COL)
+#define KBC_MAX_KPRESS_EVENT 8
+#define KBC_MAX_KEY (KBC_MAX_ROW * KBC_MAX_COL)
-#define KBC_MAX_ROW 16
-#define KBC_MAX_COL 8
-
-#define KBC_MAX_KEY (KBC_MAX_ROW*KBC_MAX_COL)
-
-struct tegra_kbc_pin_cfg {
- bool is_row;
- bool is_col;
- unsigned char num;
+enum {
+ kbc_pin_unused = 0,
+ kbc_pin_row,
+ kbc_pin_col,
};
struct tegra_kbc_wake_key {
@@ -44,15 +42,36 @@ struct tegra_kbc_wake_key {
u8 col:4;
};
+struct tegra_kbc_pin_cfg {
+ int pin_type;
+ unsigned char num;
+};
+/**
+ * struct tegra_kbc_platform_data - Tegra kbc specific platform data for kbc
+ * driver.
+ * @debounce_cnt: Debaunce count in terms of clock ticks of 32KHz
+ * @repeat_cnt: The time to start next scan after completing the current scan
+ * in terms of clock ticks of 32KHz clock
+ * @scan_timeout_cnt: Number of clock count (32KHz) to keep scanning of keys
+ * after any key is pressed.
+ * @plain_keycode: The key code array for keys in normal mode.
+ * @fn_keycode: The key code array for keys with function key pressed.
+ * @is_filter_keys: Tells whether filter algorithms applied or not.
+ * @kbc_pin_type: The type of kbc pin whether unused or column or row.
+ * @is_wake_on_any_key: System whouls wakeup on any key or the key list from
+ * wake_cfg.
+ * @wake_key_cnt: Number of key count in wakeup list.
+ */
struct tegra_kbc_platform_data {
unsigned int debounce_cnt;
unsigned int repeat_cnt;
- int wake_cnt; /* 0:wake on any key >1:wake on wake_cfg */
+ unsigned int scan_timeout_cnt;
int *plain_keycode;
int *fn_keycode;
- int filter_keys;
+ bool is_filter_keys;
struct tegra_kbc_pin_cfg pin_cfg[KBC_MAX_GPIO];
+ bool is_wake_on_any_key;
struct tegra_kbc_wake_key *wake_cfg;
+ int wake_key_cnt;
};
#endif
-