aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorBenoit Goby <benoit@android.com>2011-08-08 21:41:49 -0700
committerBenoit Goby <benoit@android.com>2011-08-09 14:21:30 -0700
commit3398dae5619bc54d465b3865b710ecbf412126c2 (patch)
treec5b5c43416e8d2daa24be8e45974776d57c56222 /arch/arm
parent464898ffd730251fde5de666eadd62864c78a69e (diff)
downloadkernel_samsung_tuna-3398dae5619bc54d465b3865b710ecbf412126c2.zip
kernel_samsung_tuna-3398dae5619bc54d465b3865b710ecbf412126c2.tar.gz
kernel_samsung_tuna-3398dae5619bc54d465b3865b710ecbf412126c2.tar.bz2
modem_if: usb_link: Add LTE modem wake platform device
Add platform device to set the lte slave-wakeup gpio high before the ehci driver is resumed. The device must be registered before the ehci driver so that its resume callback is called first. Change-Id: I17a34e7497d7520fd67839acbb029b286df80713 Signed-off-by: Benoit Goby <benoit@android.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/board-tuna-modems.c13
-rw-r--r--arch/arm/mach-omap2/board-tuna.c4
-rw-r--r--arch/arm/mach-omap2/board-tuna.h1
3 files changed, 17 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/board-tuna-modems.c b/arch/arm/mach-omap2/board-tuna-modems.c
index 23b7ca3..8e1c3b3 100644
--- a/arch/arm/mach-omap2/board-tuna-modems.c
+++ b/arch/arm/mach-omap2/board-tuna-modems.c
@@ -704,6 +704,11 @@ static struct resource lte_modem_res[] = {
},
};
+static struct platform_device lte_modem_wake = {
+ .name = "modem_lte_wake",
+ .id = -1,
+};
+
static struct platform_device lte_modem = {
.name = "modem_if",
.id = 2,
@@ -714,6 +719,14 @@ static struct platform_device lte_modem = {
},
};
+/* lte_modem_wake must be registered before the ehci driver */
+void __init modem_toro_init(void)
+{
+ lte_modem_wake.dev.platform_data =
+ (void*)lte_modem_data.gpio_slave_wakeup;
+ platform_device_register(&lte_modem_wake);
+}
+
static int __init init_modem(void)
{
pr_debug("[MODEM_IF] init_modem\n");
diff --git a/arch/arm/mach-omap2/board-tuna.c b/arch/arm/mach-omap2/board-tuna.c
index e450be1..6db68ca 100644
--- a/arch/arm/mach-omap2/board-tuna.c
+++ b/arch/arm/mach-omap2/board-tuna.c
@@ -976,8 +976,10 @@ static void __init tuna_init(void)
omap_hsi_init();
#endif
#ifdef CONFIG_USB_EHCI_HCD_OMAP
- if (TUNA_TYPE_TORO == omap4_tuna_get_type())
+ if (TUNA_TYPE_TORO == omap4_tuna_get_type()) {
+ modem_toro_init();
omap4_ehci_init();
+ }
#endif
}
diff --git a/arch/arm/mach-omap2/board-tuna.h b/arch/arm/mach-omap2/board-tuna.h
index f700456..c09e199 100644
--- a/arch/arm/mach-omap2/board-tuna.h
+++ b/arch/arm/mach-omap2/board-tuna.h
@@ -37,6 +37,7 @@ int tuna_wlan_init(void);
int omap_hsi_init(void);
void omap4_tuna_emif_init(void);
void omap4_ehci_init(void);
+void modem_toro_init(void);
extern struct mmc_platform_data tuna_wifi_data;
extern struct class *sec_class;