Root/target/linux/s3c24xx/patches-2.6.30/050-s3c2442-touchscreen.patch

1--- a/arch/arm/plat-s3c24xx/devs.c
2+++ b/arch/arm/plat-s3c24xx/devs.c
3@@ -26,6 +26,8 @@
4 #include <asm/mach/irq.h>
5 #include <mach/fb.h>
6 #include <mach/hardware.h>
7+#include <mach/ts.h>
8+#include <asm/io.h>
9 #include <asm/irq.h>
10 
11 #include <plat/regs-serial.h>
12@@ -199,6 +201,24 @@ struct platform_device s3c_device_nand =
13 
14 EXPORT_SYMBOL(s3c_device_nand);
15 
16+/* Touchscreen */
17+struct platform_device s3c_device_ts = {
18+ .name = "s3c2410-ts",
19+ .id = -1,
20+};
21+
22+EXPORT_SYMBOL(s3c_device_ts);
23+
24+static struct s3c2410_ts_mach_info s3c2410ts_info;
25+
26+void set_s3c2410ts_info(const struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
27+{
28+ memcpy(&s3c2410ts_info, hard_s3c2410ts_info,
29+ sizeof(struct s3c2410_ts_mach_info));
30+ s3c_device_ts.dev.platform_data = &s3c2410ts_info;
31+}
32+EXPORT_SYMBOL(set_s3c2410ts_info);
33+
34 /* USB Device (Gadget)*/
35 
36 static struct resource s3c_usbgadget_resource[] = {
37--- a/arch/arm/plat-s3c24xx/s3c244x.c
38+++ b/arch/arm/plat-s3c24xx/s3c244x.c
39@@ -59,6 +59,8 @@ void __init s3c244x_init_uarts(struct s3
40     s3c24xx_init_uartdevs("s3c2440-uart", s3c2410_uart_resources, cfg, no);
41 }
42 
43+extern struct platform_device s3c_device_ts;
44+
45 void __init s3c244x_map_io(void)
46 {
47     /* register our io-tables */
48@@ -70,6 +72,7 @@ void __init s3c244x_map_io(void)
49     s3c_device_sdi.name = "s3c2440-sdi";
50     s3c_device_i2c0.name = "s3c2440-i2c";
51     s3c_device_nand.name = "s3c2440-nand";
52+ s3c_device_ts.name = "s3c2440-ts";
53     s3c_device_usbgadget.name = "s3c2440-usbgadget";
54 }
55 
56--- a/drivers/input/touchscreen/Kconfig
57+++ b/drivers/input/touchscreen/Kconfig
58@@ -124,6 +124,24 @@ config TOUCHSCREEN_FUJITSU
59       To compile this driver as a module, choose M here: the
60       module will be called fujitsu-ts.
61 
62+config TOUCHSCREEN_S3C2410
63+ tristate "Samsung S3C2410 touchscreen input driver"
64+ depends on ARCH_S3C2410 && INPUT && INPUT_TOUCHSCREEN
65+ select SERIO
66+ help
67+ Say Y here if you have the s3c2410 touchscreen.
68+
69+ If unsure, say N.
70+
71+ To compile this driver as a module, choose M here: the
72+ module will be called s3c2410_ts.
73+
74+config TOUCHSCREEN_S3C2410_DEBUG
75+ boolean "Samsung S3C2410 touchscreen debug messages"
76+ depends on TOUCHSCREEN_S3C2410
77+ help
78+ Select this if you want debug messages
79+
80 config TOUCHSCREEN_GUNZE
81     tristate "Gunze AHL-51S touchscreen"
82     select SERIO
83--- a/drivers/input/touchscreen/Makefile
84+++ b/drivers/input/touchscreen/Makefile
85@@ -37,3 +37,4 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) +
86 wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) += wm9713.o
87 obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
88 obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE) += zylonite-wm97xx.o
89+obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
90--- /dev/null
91+++ b/arch/arm/mach-s3c2410/include/mach/ts.h
92@@ -0,0 +1,35 @@
93+/* arch/arm/mach-s3c2410/include/mach/ts.h
94+ *
95+ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
96+ *
97+ *
98+ * This program is free software; you can redistribute it and/or modify
99+ * it under the terms of the GNU General Public License version 2 as
100+ * published by the Free Software Foundation.
101+ *
102+ *
103+ * Changelog:
104+ * 24-Mar-2005 RTP Created file
105+ * 03-Aug-2005 RTP Renamed to ts.h
106+ */
107+
108+#ifndef __ASM_ARM_TS_H
109+#define __ASM_ARM_TS_H
110+
111+#include <linux/touchscreen/ts_filter.h>
112+
113+struct s3c2410_ts_mach_info {
114+ /* Touchscreen delay. */
115+ int delay;
116+ /* Prescaler value. */
117+ int presc;
118+ /*
119+ * Null-terminated array of pointers to filter APIs and configurations
120+ * we want to use. In the same order they will be applied.
121+ */
122+ const struct ts_filter_chain_configuration *filter_config;
123+};
124+
125+void set_s3c2410ts_info(const struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
126+
127+#endif /* __ASM_ARM_TS_H */
128--- a/arch/arm/plat-s3c/include/plat/devs.h
129+++ b/arch/arm/plat-s3c/include/plat/devs.h
130@@ -50,10 +50,11 @@ extern struct platform_device s3c_device
131 
132 extern struct platform_device s3c_device_usbgadget;
133 
134+extern struct platform_device s3c_device_ts;
135+
136 /* s3c2440 specific devices */
137 
138 #ifdef CONFIG_CPU_S3C2440
139 
140 extern struct platform_device s3c_device_camif;
141-
142 #endif
143

Archive Download this file



interactive