Hi all,

I thought the simplest correction is to set GPG[15:13] as input during
s3c2410_ts suspending. 

And I do the patch and test it. Suspend/resume procedure is OK. TS
module worked quite fine after suspend/resume cycle. 

Like Harald said, I can't sure whether this is an elegant approach.
Let me know your opinion.

Cheers,

Matt
Index: linux-2.6.21/drivers/input/touchscreen/s3c2410_ts.c
===================================================================
--- linux-2.6.21.orig/drivers/input/touchscreen/s3c2410_ts.c	2007-05-23 14:13:53.000000000 +0800
+++ linux-2.6.21/drivers/input/touchscreen/s3c2410_ts.c	2007-05-23 14:19:18.000000000 +0800
@@ -333,6 +333,14 @@
 
 	clk_disable(adc_clock);
 
+#if defined(CONFIG_CPU_S3C2440)
+
+	/* GPG[15:13] must be set as input for starting up after wakeup from sleep mode. */
+	s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_INP);
+	s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_INP);
+	s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_INP);
+
+#endif
 	return 0;
 }
 
@@ -359,6 +367,13 @@
 
 	writel(WAIT4INT(0), base_addr+S3C2410_ADCTSC);
 
+#if defined(CONFIG_CPU_S3C2440)
+
+	s3c2410_gpio_cfgpin(S3C2410_GPG13, S3C2410_GPG13_nXPON);
+	s3c2410_gpio_cfgpin(S3C2410_GPG14, S3C2410_GPG14_YMON);
+	s3c2410_gpio_cfgpin(S3C2410_GPG15, S3C2410_GPG15_nYPON);
+
+#endif
 	return 0;
 }
 

Reply via email to