arm: tegra: sd: enable sd dpd
[linux-2.6.git] / arch / arm / mach-tegra / wakeups-t3.c
1 /*
2  * Copyright (c) 2011, NVIDIA Corporation.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  */
14
15 #include <linux/kernel.h>
16 #include <linux/gpio.h>
17 #include <linux/init.h>
18 #include <linux/io.h>
19
20 #include <mach/iomap.h>
21 #include <mach/irqs.h>
22 #include <mach/gpio.h>
23
24 #include "gpio-names.h"
25 #include "wakeups.h"
26
27 static struct tegra_wake_info tegra_wake_event_data_t3[] = {
28         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PO5), POLARITY_NONE},     /* wake0 */
29         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV1), POLARITY_NONE},     /* wake1 */
30         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PL1), POLARITY_NONE},     /* wake2 */
31         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PB6), POLARITY_NONE},     /* wake3 */
32         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PN7), POLARITY_NONE},     /* wake4 */
33         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PBB6), POLARITY_NONE},    /* wake5 */
34         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU5), POLARITY_NONE},     /* wake6 */
35         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6), POLARITY_NONE},     /* wake7 */
36         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PC7), POLARITY_NONE},     /* wake8 */
37         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS2), POLARITY_NONE},     /* wake9 */
38         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PAA1), POLARITY_NONE},    /* wake10 */
39         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PW3), POLARITY_NONE},     /* wake11 */
40         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PW2), POLARITY_NONE},     /* wake12 */
41         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PY6), POLARITY_NONE},     /* wake13 */
42         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PDD3), POLARITY_NONE},    /* wake14 */
43         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PJ2), POLARITY_NONE},     /* wake15 */
44         {INT_RTC, POLARITY_NONE},                               /* wake16 */
45         {INT_KBC, POLARITY_NONE},                               /* wake17 */
46         {INT_EXTERNAL_PMU, POLARITY_NONE},                      /* wake18 */
47         {INT_USB, POLARITY_EDGE_ANY}, /* TEGRA_USB1_VBUS, */            /* wake19 */
48         {-EINVAL, POLARITY_EDGE_ANY}, /* TEGRA_USB2_VBUS, */            /* wake20 */
49         {INT_USB, POLARITY_EDGE_ANY}, /* TEGRA_USB1_ID, */              /* wake21 */
50         {-EINVAL, POLARITY_EDGE_ANY}, /* TEGRA_USB2_ID, */              /* wake22 */
51         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PI5), POLARITY_NONE},     /* wake23 */
52         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PV0), POLARITY_NONE},     /* wake24 */
53         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS4), POLARITY_NONE},     /* wake25 */
54         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS5), POLARITY_NONE},     /* wake26 */
55         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS0), POLARITY_NONE},     /* wake27 */
56         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS6), POLARITY_NONE},     /* wake28 */
57         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS7), POLARITY_NONE},     /* wake29 */
58         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PN2), POLARITY_NONE},     /* wake30 */
59         {-EINVAL, POLARITY_NONE}, /* not used */                        /* wake31 */
60         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PO4), POLARITY_NONE},     /* wake32 */
61         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PJ0), POLARITY_NONE},     /* wake33 */
62         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PK2), POLARITY_NONE},     /* wake34 */
63         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PI6), POLARITY_NONE},     /* wake35 */
64         {TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PBB1), POLARITY_NONE},    /* wake36 */
65         {-EINVAL, POLARITY_NONE}, /* TEGRA_USB3_VBUS, */                /* wake37 */
66         {-EINVAL, POLARITY_NONE}, /* TEGRA_USB3_ID, */          /* wake38 */
67         {INT_USB, POLARITY_LEVEL_HI}, /* TEGRA_USB1_UTMIP, */           /* wake39 */
68         {INT_USB2, POLARITY_LEVEL_HI}, /* TEGRA_USB2_UTMIP, */  /* wake40 */
69         {INT_USB3, POLARITY_LEVEL_HI} /* TEGRA_USB3_UTMIP, */   /* wake41 */
70 };
71
72 struct tegra_wake_info *tegra_wake_event_data = tegra_wake_event_data_t3;
73 unsigned int tegra_wake_event_data_size = ARRAY_SIZE(tegra_wake_event_data_t3);
74