summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/wakeups-t2.c
diff options
context:
space:
mode:
authorBitan Biswas <bbiswas@nvidia.com>2012-05-29 22:19:09 +0530
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-07-11 06:07:32 -0700
commit48651d264bdb2ff90624e965b8a68b011077ca7c (patch)
tree3b02c2fd3122e6a6b35d0c2049d4b290b37ae2d2 /arch/arm/mach-tegra/wakeups-t2.c
parent25a4796d13bfd8ae0e7618e573ab0aad6f928a6d (diff)
ARM: tegra: support multiple wake sources with same irq
Earlier implementation only allowed single wake source for a particular irq in wake table. Changed implementation to support multiple wake sources ==> single irq mapping. bug 980993 Change-Id: Iacb00487531129ef19c53128824aba802e80350e Signed-off-by: Bitan Biswas <bbiswas@nvidia.com> Reviewed-on: http://git-master/r/103140 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/wakeups-t2.c')
-rw-r--r--arch/arm/mach-tegra/wakeups-t2.c69
1 files changed, 35 insertions, 34 deletions
diff --git a/arch/arm/mach-tegra/wakeups-t2.c b/arch/arm/mach-tegra/wakeups-t2.c
index 8079e6820145..adfe136c8118 100644
--- a/arch/arm/mach-tegra/wakeups-t2.c
+++ b/arch/arm/mach-tegra/wakeups-t2.c
@@ -24,39 +24,40 @@
#include "gpio-names.h"
#include "wakeups.h"
-static int tegra_wake_event_irq_t2[] = {
- [0] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PO5),
- [1] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV3),
- [2] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PL1),
- [3] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PB6),
- [4] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PN7),
- [5] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PA0),
- [6] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU5),
- [7] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6),
- [8] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PC7),
- [9] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS2),
- [10] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PAA1),
- [11] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PW3),
- [12] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PW2),
- [13] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PY6),
- [14] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV6),
- [15] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PJ7),
- [16] = INT_RTC,
- [17] = INT_KBC,
- [18] = INT_EXTERNAL_PMU,
- [19] = -EINVAL, /* TEGRA_USB1_VBUS, */
- [20] = -EINVAL, /* TEGRA_USB3_VBUS, */
- [21] = -EINVAL, /* TEGRA_USB1_ID, */
- [22] = -EINVAL, /* TEGRA_USB3_ID, */
- [23] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PI5),
- [24] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV2),
- [25] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS4),
- [26] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS5),
- [27] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS0),
- [28] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PQ6),
- [29] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PQ7),
- [30] = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PN2),
+static struct tegra_wake_info tegra_wake_event_data_t2[] = {
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PO5), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV3), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PL1), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PB6), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PN7), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PA0), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU5), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PC7), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS2), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PAA1), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PW3), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PW2), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PY6), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV6), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PJ7), POLARITY_NONE},
+ {INT_RTC, POLARITY_NONE},
+ {INT_KBC, POLARITY_NONE},
+ {INT_EXTERNAL_PMU, POLARITY_NONE},
+ {INT_USB, POLARITY_EDGE_ANY}, /* TEGRA_USB1_VBUS, */
+ {-EINVAL, POLARITY_EDGE_ANY}, /* TEGRA_USB3_VBUS, */
+ {-EINVAL, POLARITY_EDGE_ANY}, /* TEGRA_USB1_ID, */
+ {-EINVAL, POLARITY_EDGE_ANY}, /* TEGRA_USB3_ID, */
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PI5), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV2), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS4), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS5), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS0), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PQ6), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PQ7), POLARITY_NONE},
+ {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PN2), POLARITY_NONE},
};
-int *tegra_wake_event_irq = tegra_wake_event_irq_t2;
-unsigned int tegra_wake_event_irq_size = ARRAY_SIZE(tegra_wake_event_irq_t2);
+struct tegra_wake_info *tegra_wake_event_data = tegra_wake_event_data_t2;
+unsigned int tegra_wake_event_data_size = ARRAY_SIZE(tegra_wake_event_data_t2);
+