diff options
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu-kbc.c | 44 |
1 files changed, 14 insertions, 30 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-kbc.c b/arch/arm/mach-tegra/board-cardhu-kbc.c index e91a9102815f..dada17b7fe41 100644 --- a/arch/arm/mach-tegra/board-cardhu-kbc.c +++ b/arch/arm/mach-tegra/board-cardhu-kbc.c @@ -179,7 +179,7 @@ static struct platform_device cardhu_keys_e1198_device = { }; static struct gpio_keys_button cardhu_keys_e1291[] = { - [0] = GPIO_KEY(KEY_POWER, PR0, 0), + [0] = GPIO_KEY(KEY_MENU, PR0, 0), [1] = GPIO_KEY(KEY_BACK, PR1, 0), [2] = GPIO_KEY(KEY_HOME, PR2, 0), [3] = GPIO_KEY(KEY_SEARCH, PQ3, 0), @@ -210,39 +210,21 @@ static struct platform_device cardhu_keys_e1291_device = { .wakeup = _iswake, \ .debounce_interval = _deb_int, \ } -static struct interrupt_keys_button cardhu_int_keys_e1291[] = { - [0] = INT_KEY(KEY_MENU, TPS6591X_IRQ_BASE + TPS6591X_INT_PWRON, 0, 100), - [1] = INT_KEY(KEY_POWER, TPS6591X_IRQ_BASE + TPS6591X_INT_PWRON_LP, 0, 8000), -}; - -static struct interrupt_keys_platform_data cardhu_int_keys_e1291_pdata = { - .int_buttons = cardhu_int_keys_e1291, - .nbuttons = ARRAY_SIZE(cardhu_int_keys_e1291), -}; - -static struct platform_device cardhu_int_keys_e1291_device = { - .name = "interrupt-keys", - .id = 0, - .dev = { - .platform_data = &cardhu_int_keys_e1291_pdata, - }, -}; - -static struct interrupt_keys_button cardhu_int_keys_pm269[] = { +static struct interrupt_keys_button cardhu_int_keys[] = { [0] = INT_KEY(KEY_POWER, TPS6591X_IRQ_BASE + TPS6591X_INT_PWRON, 0, 100), [1] = INT_KEY(KEY_POWER, TPS6591X_IRQ_BASE + TPS6591X_INT_PWRON_LP, 0, 8000), }; -static struct interrupt_keys_platform_data cardhu_int_keys_pm269_pdata = { - .int_buttons = cardhu_int_keys_pm269, - .nbuttons = ARRAY_SIZE(cardhu_int_keys_pm269), +static struct interrupt_keys_platform_data cardhu_int_keys_pdata = { + .int_buttons = cardhu_int_keys, + .nbuttons = ARRAY_SIZE(cardhu_int_keys), }; -static struct platform_device cardhu_int_keys_pm269_device = { +static struct platform_device cardhu_int_keys_device = { .name = "interrupt-keys", .id = 0, .dev = { - .platform_data = &cardhu_int_keys_pm269_pdata, + .platform_data = &cardhu_int_keys_pdata, }, }; @@ -266,16 +248,18 @@ int __init cardhu_keys_init(void) tegra_gpio_enable(cardhu_keys_e1291[i].gpio); platform_device_register(&cardhu_keys_e1291_device); - platform_device_register(&cardhu_int_keys_e1291_device); - } else if ((board_info.board_id == BOARD_PM269) || - (board_info.board_id == BOARD_PM305)) { - platform_device_register(&cardhu_int_keys_pm269_device); - } else { + } else if (board_info.board_id == BOARD_E1198) { /* For E1198 */ for (i = 0; i < ARRAY_SIZE(cardhu_keys_e1198); i++) tegra_gpio_enable(cardhu_keys_e1198[i].gpio); platform_device_register(&cardhu_keys_e1198_device); } + + /* Register on-key through pmu interrupt */ + if ((board_info.board_id == BOARD_E1291) || + (board_info.board_id == BOARD_PM305) || + (board_info.board_id == BOARD_PM269)) + platform_device_register(&cardhu_int_keys_device); return 0; } |