summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/pm-irq.h10
-rw-r--r--arch/arm/mach-tegra/wakeups-t11x.c21
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;