diff options
author | Bitan Biswas <bbiswas@nvidia.com> | 2012-05-29 22:19:09 +0530 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-07-11 06:07:32 -0700 |
commit | 48651d264bdb2ff90624e965b8a68b011077ca7c (patch) | |
tree | 3b02c2fd3122e6a6b35d0c2049d4b290b37ae2d2 /arch/arm/mach-tegra/wakeups-t2.c | |
parent | 25a4796d13bfd8ae0e7618e573ab0aad6f928a6d (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.c | 69 |
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); + |