aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/s3c24xx/patches-2.6.26/0091-fix-suspend-gps-tx-level.patch.patch
blob: 41b692a1beaf7da0550c81479c475c2a0cdac1c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From 626e5a4e87bfc9471c3ded7da839c41a94088843 Mon Sep 17 00:00:00 2001
From: warmcat <andy@warmcat.com>
Date: Fri, 25 Jul 2008 23:06:02 +0100
Subject: [PATCH] fix-suspend-gps-tx-level.patch

We used to drive output high into GPS unit in suspend

Signed-off-by: Andy Green <andy@openmoko.com>
---
 arch/arm/plat-s3c24xx/neo1973_pm_gps.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_gps.c b/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
index 6bd8054..e8cfb96 100644
--- a/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
+++ b/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
@@ -485,6 +485,12 @@ static int gta01_pm_gps_suspend(struct platform_device *pdev,
 
 #ifdef CONFIG_MACH_NEO1973_GTA02
 	if (machine_is_neo1973_gta02()) {
+		/* take care not to power unpowered GPS from GPIO */
+		s3c2410_gpio_cfgpin(S3C2410_GPH4, S3C2410_GPH4_OUTP);
+		s3c2410_gpio_setpin(S3C2410_GPH4, 0);
+		/* don't let RX from unpowered GPS float */
+		s3c2410_gpio_pullup(S3C2410_GPH5, 1);
+
 		/* FIXME */
 		pcf50633_onoff_set(pcf50633_global,
 			PCF50633_REGULATOR_LDO5, 0);
@@ -505,6 +511,14 @@ static int gta01_pm_gps_resume(struct platform_device *pdev)
 
 #ifdef CONFIG_MACH_NEO1973_GTA02
 	if (machine_is_neo1973_gta02()) {
+		/*
+		 * resume TXD1 function since we power GPS now... er..
+		 * WTF?  FIXME We always power GPS on resume ??
+		 */
+		s3c2410_gpio_cfgpin(S3C2410_GPH4, S3C2410_GPH4_TXD1);
+		/* remove pulldown now it won't be floating any more */
+		s3c2410_gpio_pullup(S3C2410_GPH5, 0);
+
 		/* FIXME */
 		pcf50633_onoff_set(pcf50633_global,
 			PCF50633_REGULATOR_LDO5, 1);
-- 
1.5.6.3