On Fri, May 07, 2010 at 03:31:35PM +0900, Kukjin Kim wrote: > From: Naveen Krishna <ch.naveen@xxxxxxxxxxx> > > Note: TSADC in S5PV210 support 2 touch screen interfaces, > Only 1 is implemented as of now. > > Signed-off-by: Naveen Krishna Ch <ch.naveen@xxxxxxxxxxx> > Signed-off-by: Kukjin Kim <kgene.kim@xxxxxxxxxxx> > --- > arch/arm/mach-s5pv210/Kconfig | 2 ++ > arch/arm/mach-s5pv210/cpu.c | 3 +++ > arch/arm/mach-s5pv210/include/mach/map.h | 3 +++ > arch/arm/mach-s5pv210/mach-smdkv210.c | 11 +++++++++++ > drivers/input/touchscreen/Kconfig | 2 +- > drivers/input/touchscreen/s3c2410_ts.c | 4 +++- > 6 files changed, 23 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig > index af33a1a..3870012 100644 > --- a/arch/arm/mach-s5pv210/Kconfig > +++ b/arch/arm/mach-s5pv210/Kconfig > @@ -24,6 +24,8 @@ config MACH_SMDKV210 > bool "SMDKV210" > select CPU_S5PV210 > select ARCH_SPARSEMEM_ENABLE > + select SAMSUNG_DEV_ADC > + select SAMSUNG_DEV_TS > help > Machine support for Samsung SMDKV210 > > diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c > index 0e0f8fd..5f0675d 100644 > --- a/arch/arm/mach-s5pv210/cpu.c > +++ b/arch/arm/mach-s5pv210/cpu.c > @@ -74,6 +74,9 @@ static void s5pv210_idle(void) > > void __init s5pv210_map_io(void) > { > + s3c_device_ts.name = "s5pv210-ts"; > + s3c_device_adc.name = "s3c64xx-adc"; > + > iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); > } > > diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h > index c22694c..29355ee 100644 > --- a/arch/arm/mach-s5pv210/include/mach/map.h > +++ b/arch/arm/mach-s5pv210/include/mach/map.h > @@ -58,8 +58,11 @@ > #define S5PV210_PA_SDRAM (0x20000000) > #define S5P_PA_SDRAM S5PV210_PA_SDRAM > > +#define S5PV210_PA_ADC (0xE1700000) > + > /* compatibiltiy defines. */ > #define S3C_PA_UART S5PV210_PA_UART > #define S3C_PA_IIC S5PV210_PA_IIC0 > +#define SAMSUNG_PA_ADC S5PV210_PA_ADC > > #endif /* __ASM_ARCH_MAP_H */ > diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c > index a278832..1440cb2 100644 > --- a/arch/arm/mach-s5pv210/mach-smdkv210.c > +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c > @@ -25,6 +25,8 @@ > #include <plat/s5pv210.h> > #include <plat/devs.h> > #include <plat/cpu.h> > +#include <plat/adc.h> > +#include <plat/ts.h> > > /* Following are default values for UCON, ULCON and UFCON UART registers */ > #define S5PV210_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ > @@ -72,6 +74,14 @@ static struct s3c2410_uartcfg smdkv210_uartcfgs[] __initdata = { > }; > > static struct platform_device *smdkv210_devices[] __initdata = { > + &s3c_device_adc, > + &s3c_device_ts, > +}; > + > +static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { > + .delay = 10000, > + .presc = 49, > + .oversampling_shift = 2, > }; > > static void __init smdkv210_map_io(void) > @@ -83,6 +93,7 @@ static void __init smdkv210_map_io(void) > > static void __init smdkv210_machine_init(void) > { > + s3c24xx_ts_set_platdata(&s3c_ts_platform); > platform_add_devices(smdkv210_devices, ARRAY_SIZE(smdkv210_devices)); > } > > diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig > index c82c1e1..a90a5bb 100644 > --- a/drivers/input/touchscreen/Kconfig > +++ b/drivers/input/touchscreen/Kconfig > @@ -159,7 +159,7 @@ config TOUCHSCREEN_FUJITSU > > config TOUCHSCREEN_S3C2410 > tristate "Samsung S3C2410 touchscreen input driver" > - depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5P6440 > + depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5P6440 || ARCH_S5PV210 > select S3C_ADC > help > Say Y here if you have the s3c2410 touchscreen. > diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c > index 3964964..d9e597d 100644 > --- a/drivers/input/touchscreen/s3c2410_ts.c > +++ b/drivers/input/touchscreen/s3c2410_ts.c > @@ -91,6 +91,7 @@ enum s3c_cpu_type { > TYPE_S3C2410, > TYPE_S3C2440, > TYPE_S3C64XX, /* S3C64XX, S5P64XX Series */ > + TYPE_S5PV210, /* S5PV210 */ > }; > > /** > @@ -180,7 +181,7 @@ static irqreturn_t stylus_irq(int irq, void *dev_id) > else > dev_info(ts.dev, "%s: count=%d\n", __func__, ts.count); > > - if (platform_get_device_id(pdev)->driver_data == TYPE_S3C64XX) { > + if (platform_get_device_id(pdev)->driver_data >= TYPE_S3C64XX) { > /* Clear pen down/up interrupt */ > writel(0x0, ts.io + S3C64XX_ADCCLRINTPNDNUP); > } > @@ -420,6 +421,7 @@ static struct platform_device_id s3cts_driver_ids[] = { > { "s3c2410-ts", TYPE_S3C2410 }, > { "s3c2440-ts", TYPE_S3C2440 }, > { "s3c64xx-ts", TYPE_S3C64XX }, > + { "s5pv210-ts", TYPE_S5PV210 }, do we really need a new name for this? see also previous patch reply about the features. > { } > }; > MODULE_DEVICE_TABLE(platform, s3cts_driver_ids); > -- > 1.6.6.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- -- Ben Q: What's a light-year? A: One-third less calories than a regular year. -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html