summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu-kbc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu-kbc.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu-kbc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-kbc.c b/arch/arm/mach-tegra/board-cardhu-kbc.c
index 586e5ffa6ed9..29e9bfc2dd8a 100644
--- a/arch/arm/mach-tegra/board-cardhu-kbc.c
+++ b/arch/arm/mach-tegra/board-cardhu-kbc.c
@@ -224,6 +224,10 @@ 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_pm299_int_keys[] = {
+ [0] = INT_KEY(KEY_POWER, RICOH583_IRQ_BASE + RICOH583_IRQ_ONKEY, 0, 100),
+};
+
static struct interrupt_keys_platform_data cardhu_int_keys_pdata = {
.int_buttons = cardhu_int_keys,
.nbuttons = ARRAY_SIZE(cardhu_int_keys),
@@ -241,6 +245,7 @@ int __init cardhu_keys_init(void)
{
int i;
struct board_info board_info;
+ struct board_info pmu_board_info;
tegra_get_board_info(&board_info);
if (!((board_info.board_id == BOARD_E1198) ||
@@ -268,6 +273,14 @@ 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_PM299) {
+ cardhu_int_keys_pdata.int_buttons = cardhu_pm299_int_keys;
+ cardhu_int_keys_pdata.nbuttons =
+ ARRAY_SIZE(cardhu_pm299_int_keys);
+ }
+
if ((board_info.board_id == BOARD_E1291) ||
(board_info.board_id == BOARD_E1198) ||
(board_info.board_id == BOARD_E1257) ||