/*
* Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include
#include
#include
#include
#include
#include
#include
#include "board.h"
#include "tegra-board-id.h"
#include "gpio-names.h"
#include "iomap.h"
static int tegra_gpio_wakes[] = {
TEGRA_GPIO_PL0, /* wake0 */
TEGRA_GPIO_PL2, /* wake1 */
TEGRA_GPIO_PM2, /* wake2 */
TEGRA_GPIO_PB4, /* wake3 */
TEGRA_GPIO_PM4, /* wake4 */
TEGRA_GPIO_PM7, /* wake5 */
TEGRA_GPIO_PN1, /* wake6 */
TEGRA_GPIO_PO0, /* wake7 */
TEGRA_GPIO_PO1, /* wake8 */
TEGRA_GPIO_PO2, /* wake9 */
TEGRA_GPIO_PC3, /* wake10 */
TEGRA_GPIO_PO3, /* wake11 */
TEGRA_GPIO_PO4, /* wake12 */
TEGRA_GPIO_PA4, /* wake13 */
TEGRA_GPIO_PO5, /* wake14 */
TEGRA_GPIO_PO6, /* wake15 */
-EINVAL, /* wake16 */
-EINVAL, /* wake17 */
-EINVAL, /* wake18 */
-EINVAL, /* wake19 */
-EINVAL, /* wake20 */
-EINVAL, /* wake21 */
-EINVAL, /* wake22 */
TEGRA_GPIO_PJ5, /* wake23 */
TEGRA_GPIO_PJ6, /* wake24 */
TEGRA_GPIO_PJ1, /* wake25 */
TEGRA_GPIO_PJ2, /* wake26 */
TEGRA_GPIO_PJ3, /* wake27 */
TEGRA_GPIO_PJ4, /* wake28 */
TEGRA_GPIO_PJ0, /* wake29 */
-EINVAL, /* wake30 */
-EINVAL, /* wake31 */
-EINVAL, /* wake32 */
TEGRA_GPIO_PJ0, /* wake33 */
TEGRA_GPIO_PK2, /* wake34 */
TEGRA_GPIO_PI6, /* wake35 */
-EINVAL, /* wake36 */
-EINVAL, /* wake37 */
-EINVAL, /* wake38 */
-EINVAL, /* wake39 */
-EINVAL, /* wake40 */
-EINVAL, /* wake41 */
-EINVAL, /* wake42 */
-EINVAL, /* wake43 */
-EINVAL, /* wake44 */
TEGRA_GPIO_PBB6, /* wake45 */
-EINVAL, /* wake46 */
TEGRA_GPIO_PL6, /* wake47 */
-EINVAL, /* wake48 */
TEGRA_GPIO_PR7, /* wake49 */
TEGRA_GPIO_PR4, /* wake50 */
-EINVAL, /* wake51 */
TEGRA_GPIO_PN5, /* wake52 */
-EINVAL, /* wake53 */
TEGRA_GPIO_PQ5, /* wake54 */
TEGRA_GPIO_PK3, /* wake55 */
-EINVAL, /* wake56 */
-EINVAL, /* wake57 */
-EINVAL, /* wake58 */
-EINVAL, /* wake59 */
-EINVAL, /* wake60 */
-EINVAL, /* wake61 */
-EINVAL, /* wake62 */
-EINVAL, /* wake63 */
};
static int tegra_wake_event_irq[] = {
-EAGAIN, /* SPI3_MOSI */ /* wake0 */
-EAGAIN, /* SPI3_SCK */ /* wake1 */
-EAGAIN, /* BT_WAKE_AP */ /* wake2 */
-EAGAIN, /* SDMMC3 DAT1 */ /* wake3 */
-EAGAIN, /* NFC_INT_L */ /* wake4 */
-EAGAIN, /* MOTION_INT_L */ /* wake5 */
-EAGAIN, /* TOUCH_INT_L */ /* wake6 */
-EAGAIN, /* wake7 */
-EAGAIN, /* wake8 */
-EAGAIN, /* UART3 RXD */ /* wake9 */
-EAGAIN, /* SDMMC4 DAT1 */ /* wake10 */
-EAGAIN, /* wake11 */
-EAGAIN, /* wake12 */
-EAGAIN, /* SDMMC1 DAT1 */ /* wake13 */
-EAGAIN, /* wake14 */
-EAGAIN, /* INT_EDP */ /* wake15 */
-EINVAL, /* Tegra RTC */ /* wake16 */
-EINVAL, /* Tegra KBC */ /* wake17 */
INT_EXTERNAL_PMU, /* wake18 */
-EINVAL, /* removed USB1 VBUS wake */ /* wake19 */
-EINVAL, /* removed USB2 VBUS wake */ /* wake20 */
-EINVAL, /* removed USB1 ID wake */ /* wake21 */
-EINVAL, /* removed USB2 ID wake */ /* wake22 */
-EAGAIN, /* wake23 */
-EAGAIN, /* wake24 */
-EAGAIN, /* KB_ROW0 */ /* wake25 */
-EAGAIN, /* KB_ROW1 */ /* wake26 */
-EAGAIN, /* KB_ROW2 */ /* wake27 */
-EAGAIN, /* KB_COL0 */ /* wake28 */
-EINVAL, /* INT_MIPI_BIF - BCL */ /* wake29 */
-EINVAL, /* I2S0 SDATA OUT */ /* wake30 */
-EINVAL, /* wake31 */
-EINVAL, /* ULPI DATA3 */ /* wake32 */
-EAGAIN, /* wake33 */
-EAGAIN, /* wake34 */
-EAGAIN, /* wake35 */
-EINVAL, /* wake36 */
-EINVAL, /* removed USB3 VBUS wake */ /* wake37 */
-EINVAL, /* removed USB3 ID wake */ /* wake38 */
INT_USB, /* USB1 UTMIP */ /* wake39 */
-EINVAL, /* removed USB2 UTMIP wake */ /* wake40 */
-EINVAL, /* removed USB3 UTMIP wake */ /* wake41 */
INT_USB2, /* USB2 UHSIC PHY */ /* wake42 */
-EINVAL, /* removed USB3 UHSIC PHY wake */ /* wake43 */
-EINVAL, /* I2C1 DAT */ /* wake44 */
-EAGAIN, /* wake45 */
-EINVAL, /* PWR I2C DAT */ /* wake46 */
-EAGAIN, /* I2C2 DAT */ /* wake47 */
-EINVAL, /* I2C3 DAT */ /* wake48 */
-EAGAIN, /* wake49 */
-EAGAIN, /* wake50 */
-EINVAL, /* KBC11 */ /* wake51 */
-EAGAIN, /* HDMI CEC */ /* wake52 */
-EINVAL, /* I2C3 CLK */ /* wake53 */
-EAGAIN, /* wake54 */
-EAGAIN, /* UART3 CTS */ /* wake55 */
-EINVAL, /* wake56 */
-EINVAL, /* wake57 */
-EINVAL, /* wake58 */
INT_BB2AP_INT0, /* wake59 */
-EINVAL, /* wake60 */
-EINVAL, /* wake61 */
-EINVAL, /* wake62 */
-EINVAL, /* wake63 */
};
static int __init tegra14x_wakeup_table_init(void)
{
tegra_gpio_wake_table = tegra_gpio_wakes;
tegra_irq_wake_table = tegra_wake_event_irq;
tegra_wake_table_len = ARRAY_SIZE(tegra_gpio_wakes);
return 0;
}
int __init tegra_wakeup_table_init(void)
{
return tegra14x_wakeup_table_init();
}