loki: Enable Gamepad wakeup
Jun Yan [Mon, 23 Dec 2013 22:41:56 +0000 (14:41 -0800)]
Enable gamepad wake up host from LP0. It
is functioning as a GPIO.

Bug 1430154

Change-Id: If2381e6b62f6fd5b8f5671cac3486ec302d9a72c
Signed-off-by: Jun Yan <juyan@nvidia.com>
Reviewed-on: http://git-master/r/349131
Reviewed-by: Raymond Poudrier <rapoudrier@nvidia.com>
Tested-by: Raymond Poudrier <rapoudrier@nvidia.com>

arch/arm/mach-tegra/board-loki-kbc.c
arch/arm/mach-tegra/board-loki-pinmux-t12x.h

index d468483..a27a20e 100644 (file)
@@ -76,6 +76,16 @@ static struct gpio_keys_button loki_int_keys[] = {
                .wakeup = 1,
                .debounce_interval = 0,
        },
+       [2] = {
+               .code = KEY_WAKEUP,
+               .gpio = TEGRA_GPIO_PS6,
+               .irq = -1,
+               .type = EV_KEY,
+               .desc = "Gamepad",
+               .active_low = 1,
+               .wakeup = 1,
+               .debounce_interval = 0,
+       },
 };
 
 static struct gpio_keys_platform_data loki_int_keys_pdata = {
@@ -104,6 +114,8 @@ static int loki_wakeup_key(void)
                wakeup_key = KEY_POWER;
        else if (status & (1UL << TEGRA_WAKE_GPIO_PS0))
                wakeup_key = SW_LID;
+       else if (status & (1UL << TEGRA_WAKE_GPIO_PS6))
+               wakeup_key = KEY_WAKEUP;
        else
                wakeup_key = -1;
 
index 49cda91..036b01b 100644 (file)
@@ -210,6 +210,7 @@ static __initdata struct tegra_pingroup_config loki_pinmux_common[] = {
        GPIO_PINMUX_NON_OD(KB_ROW11, NORMAL, NORMAL, OUTPUT),
        GPIO_PINMUX_NON_OD(KB_ROW12, PULL_UP, NORMAL, OUTPUT),
        GPIO_PINMUX_NON_OD(KB_ROW13, PULL_DOWN, NORMAL, OUTPUT),
+       GPIO_PINMUX_NON_OD(KB_ROW14, PULL_DOWN, NORMAL, INPUT),
        GPIO_PINMUX_NON_OD(KB_ROW15, PULL_DOWN, NORMAL, INPUT),
        GPIO_PINMUX_NON_OD(KB_ROW2, PULL_UP, NORMAL, INPUT),
        GPIO_PINMUX_NON_OD(KB_ROW3, NORMAL, NORMAL, OUTPUT),
@@ -270,7 +271,6 @@ static __initdata struct tegra_pingroup_config unused_pins_lowpower[] = {
        UNUSED_PINMUX(KB_COL1),
        UNUSED_PINMUX(KB_COL4),
        UNUSED_PINMUX(KB_COL7),
-       UNUSED_PINMUX(KB_ROW14),
        UNUSED_PINMUX(KB_ROW16),
        UNUSED_PINMUX(KB_ROW17),
        UNUSED_PINMUX(KB_ROW9),
@@ -325,6 +325,7 @@ static struct gpio_init_pin_info init_gpio_mode_loki_common[] = {
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PR1, false, 0),
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PS4, true, 0),
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PS5, false, 0),
+       GPIO_INIT_PIN_MODE(TEGRA_GPIO_PS6, true, 0),
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PS7, true, 0),
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PR2, true, 0),
        GPIO_INIT_PIN_MODE(TEGRA_GPIO_PR3, false, 0),