diff options
-rw-r--r-- | arch/arm/mach-tegra/pm-irq.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-tegra/wakeups-t11x.c | 21 |
2 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/pm-irq.h b/arch/arm/mach-tegra/pm-irq.h index 10e00e9e513b..1d50e93fe48f 100644 --- a/arch/arm/mach-tegra/pm-irq.h +++ b/arch/arm/mach-tegra/pm-irq.h @@ -23,11 +23,21 @@ u64 tegra_read_pmc_wake_status(void); int tegra_pm_irq_set_wake(int wake, int enable); int tegra_pm_irq_set_wake_type(int wake, int flow_type); bool tegra_pm_irq_lp0_allowed(void); +int tegra_set_wake_gpio(unsigned int wake, int gpio); +int tegra_set_wake_irq(unsigned int wake, int irq); int tegra_gpio_to_wake(int gpio); int tegra_irq_to_wake(int irq); int tegra_wake_to_irq(int wake); int tegra_disable_wake_source(int wake); #else +static inline int tegra_set_wake_gpio(unsigned int wake, int gpio) +{ + return 0; +} +static inline int tegra_set_wake_irq(unsigned int wake, int irq) +{ + return 0; +} static inline int tegra_pm_irq_set_wake_type(int wake, int flow_type) { return 0; diff --git a/arch/arm/mach-tegra/wakeups-t11x.c b/arch/arm/mach-tegra/wakeups-t11x.c index eb00a78b1f75..5b9b09c797d4 100644 --- a/arch/arm/mach-tegra/wakeups-t11x.c +++ b/arch/arm/mach-tegra/wakeups-t11x.c @@ -150,6 +150,27 @@ static int tegra_wake_event_irq[] = { static int last_gpio = -1; +int tegra_set_wake_gpio(unsigned int wake, int gpio) +{ + if (wake < 0 || wake >= ARRAY_SIZE(tegra_gpio_wakes)) + return -EINVAL; + + tegra_wake_event_irq[wake] = -EAGAIN; + tegra_gpio_wakes[wake] = gpio; + + return 0; +} + +int tegra_set_wake_irq(unsigned int wake, int irq) +{ + if (wake < 0 || wake >= ARRAY_SIZE(tegra_wake_event_irq)) + return -EINVAL; + + tegra_wake_event_irq[wake] = irq; + + return 0; +} + int tegra_gpio_to_wake(int gpio) { int i; |