summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu-kbc.c
diff options
context:
space:
mode:
authorJin Park <jinyoungp@nvidia.com>2011-10-27 17:59:26 +0900
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:50:09 -0800
commit0d5cc04ec726e709f8856df72aa33221ba14bed1 (patch)
tree029f1439c70c01c9852165eaf5791d34ef86a794 /arch/arm/mach-tegra/board-cardhu-kbc.c
parent134243741a2ace3ec9b66dafa4d1c3fffd4687d4 (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
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu-kbc.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu-kbc.c12
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 =