| 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 | |