diff options
author | Jin Park <jinyoungp@nvidia.com> | 2011-10-27 17:59:26 +0900 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:50:09 -0800 |
commit | 0d5cc04ec726e709f8856df72aa33221ba14bed1 (patch) | |
tree | 029f1439c70c01c9852165eaf5791d34ef86a794 | |
parent | 134243741a2ace3ec9b66dafa4d1c3fffd4687d4 (diff) |
arm: tegra: cardhu: KEY_POWER event through ONKEY for PM298
ONKEY is connected with PMU and PMU generates power-on interrupt.
PM298's power-on interrupt was handled as KEY_POWER event using
interrupt keys driver.
Bug 849360
Reviewed-on: http://git-master/r/60654
(cherry picked from commit 733e3c5dd9b8748c2431eb28accb9b3638919c48)
Change-Id: I15b8fc6d672af5987e0f790ffc8b005e38340458
Signed-off-by: Jin Park <jinyoungp@nvidia.com>
Reviewed-on: http://git-master/r/64868
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Rebase-Id: Rb67a1dcf46e426ba3700e238bc58088f681e0a92
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu-kbc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-kbc.c b/arch/arm/mach-tegra/board-cardhu-kbc.c index 29e9bfc2dd8a..46353b671224 100644 --- a/arch/arm/mach-tegra/board-cardhu-kbc.c +++ b/arch/arm/mach-tegra/board-cardhu-kbc.c @@ -26,6 +26,7 @@ #include <linux/gpio.h> #include <linux/gpio_keys.h> #include <linux/mfd/tps6591x.h> +#include <linux/mfd/max77663-core.h> #include <linux/interrupt_keys.h> #include <linux/gpio_scrollwheel.h> @@ -224,6 +225,11 @@ static struct interrupt_keys_button cardhu_int_keys[] = { [1] = INT_KEY(KEY_POWER, TPS6591X_IRQ_BASE + TPS6591X_INT_PWRON_LP, 0, 8000), }; +static struct interrupt_keys_button cardhu_pm298_int_keys[] = { + [0] = INT_KEY(KEY_POWER, MAX77663_IRQ_BASE + MAX77663_IRQ_ONOFF_EN0_FALLING, 0, 100), + [1] = INT_KEY(KEY_POWER, MAX77663_IRQ_BASE + MAX77663_IRQ_ONOFF_EN0_1SEC, 0, 3000), +}; + static struct interrupt_keys_button cardhu_pm299_int_keys[] = { [0] = INT_KEY(KEY_POWER, RICOH583_IRQ_BASE + RICOH583_IRQ_ONKEY, 0, 100), }; @@ -275,6 +281,12 @@ int __init cardhu_keys_init(void) /* Register on-key through pmu interrupt */ tegra_get_pmu_board_info(&pmu_board_info); + if (pmu_board_info.board_id == BOARD_PMU_PM298) { + cardhu_int_keys_pdata.int_buttons = cardhu_pm298_int_keys; + cardhu_int_keys_pdata.nbuttons = + ARRAY_SIZE(cardhu_pm298_int_keys); + } + if (pmu_board_info.board_id == BOARD_PMU_PM299) { cardhu_int_keys_pdata.int_buttons = cardhu_pm299_int_keys; cardhu_int_keys_pdata.nbuttons = |