diff options
author | Naveen Krishna <ch.naveen@samsung.com> | 2010-05-18 07:44:27 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-19 05:25:22 -0400 |
commit | 5bfdca146edc558ae6b3bac6b05dc5b1f094fbf3 (patch) | |
tree | 16f5d546a0ac4cd948efa8576ce20f8ecc6f865e /arch/arm | |
parent | 909de0d67dbd9488d5f77bdcadcd34264fea3c02 (diff) |
ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen
This patch implements cfg_gpio function for Samsung touchscreen.
And also modifies the H1940 machine respectively.
Signed-off-by: Naveen Krishna Ch <ch.naveen@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-s3c2410/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-h1940.c | 1 | ||||
-rw-r--r-- | arch/arm/plat-s3c24xx/Kconfig | 5 | ||||
-rw-r--r-- | arch/arm/plat-s3c24xx/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/plat-s3c24xx/setup-ts.c | 34 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/ts.h | 4 |
6 files changed, 46 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig index a4c0b3fcdbba..7245a55795dc 100644 --- a/arch/arm/mach-s3c2410/Kconfig +++ b/arch/arm/mach-s3c2410/Kconfig | |||
@@ -77,6 +77,7 @@ config ARCH_H1940 | |||
77 | select PM_H1940 if PM | 77 | select PM_H1940 if PM |
78 | select S3C_DEV_USB_HOST | 78 | select S3C_DEV_USB_HOST |
79 | select S3C_DEV_NAND | 79 | select S3C_DEV_NAND |
80 | select S3C2410_SETUP_TS | ||
80 | help | 81 | help |
81 | Say Y here if you are using the HP IPAQ H1940 | 82 | Say Y here if you are using the HP IPAQ H1940 |
82 | 83 | ||
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index b1f7dbb3bb60..779b45b3f80f 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -146,6 +146,7 @@ static struct s3c2410_ts_mach_info h1940_ts_cfg __initdata = { | |||
146 | .delay = 10000, | 146 | .delay = 10000, |
147 | .presc = 49, | 147 | .presc = 49, |
148 | .oversampling_shift = 2, | 148 | .oversampling_shift = 2, |
149 | .cfg_gpio = s3c24xx_ts_cfg_gpio, | ||
149 | }; | 150 | }; |
150 | 151 | ||
151 | /** | 152 | /** |
diff --git a/arch/arm/plat-s3c24xx/Kconfig b/arch/arm/plat-s3c24xx/Kconfig index 3ce8f010b3c6..984bf66826d2 100644 --- a/arch/arm/plat-s3c24xx/Kconfig +++ b/arch/arm/plat-s3c24xx/Kconfig | |||
@@ -164,4 +164,9 @@ config S3C24XX_SIMTEC_AUDIO | |||
164 | help | 164 | help |
165 | Add audio devices for common Simtec S3C24XX boards | 165 | Add audio devices for common Simtec S3C24XX boards |
166 | 166 | ||
167 | config S3C2410_SETUP_TS | ||
168 | bool | ||
169 | help | ||
170 | Compile in platform device definition for Samsung TouchScreen. | ||
171 | |||
167 | endif | 172 | endif |
diff --git a/arch/arm/plat-s3c24xx/Makefile b/arch/arm/plat-s3c24xx/Makefile index 44aea8868f89..c2064c308719 100644 --- a/arch/arm/plat-s3c24xx/Makefile +++ b/arch/arm/plat-s3c24xx/Makefile | |||
@@ -38,6 +38,7 @@ obj-$(CONFIG_S3C2410_CPUFREQ_UTILS) += s3c2410-cpufreq-utils.o | |||
38 | 38 | ||
39 | # device specific setup and/or initialisation | 39 | # device specific setup and/or initialisation |
40 | obj-$(CONFIG_ARCH_S3C2410) += setup-i2c.o | 40 | obj-$(CONFIG_ARCH_S3C2410) += setup-i2c.o |
41 | obj-$(CONFIG_S3C2410_SETUP_TS) += setup-ts.o | ||
41 | 42 | ||
42 | # SPI gpio central GPIO functions | 43 | # SPI gpio central GPIO functions |
43 | 44 | ||
diff --git a/arch/arm/plat-s3c24xx/setup-ts.c b/arch/arm/plat-s3c24xx/setup-ts.c new file mode 100644 index 000000000000..ed2638663675 --- /dev/null +++ b/arch/arm/plat-s3c24xx/setup-ts.c | |||
@@ -0,0 +1,34 @@ | |||
1 | /* linux/arch/arm/plat-s3c24xx/setup-ts.c | ||
2 | * | ||
3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * Based on S3C24XX setup for i2c device | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/gpio.h> | ||
15 | |||
16 | struct platform_device; /* don't need the contents */ | ||
17 | |||
18 | #include <mach/hardware.h> | ||
19 | #include <mach/regs-gpio.h> | ||
20 | |||
21 | /** | ||
22 | * s3c24xx_ts_cfg_gpio - configure gpio for s3c2410 systems | ||
23 | * | ||
24 | * Configure the GPIO for the S3C2410 system, where we have external FETs | ||
25 | * connected to the device (later systems such as the S3C2440 integrate | ||
26 | * these into the device). | ||
27 | */ | ||
28 | void s3c24xx_ts_cfg_gpio(struct platform_device *dev) | ||
29 | { | ||
30 | s3c2410_gpio_cfgpin(S3C2410_GPG(12), S3C2410_GPG12_XMON); | ||
31 | s3c2410_gpio_cfgpin(S3C2410_GPG(13), S3C2410_GPG13_nXPON); | ||
32 | s3c2410_gpio_cfgpin(S3C2410_GPG(14), S3C2410_GPG14_YMON); | ||
33 | s3c2410_gpio_cfgpin(S3C2410_GPG(15), S3C2410_GPG15_nYPON); | ||
34 | } | ||
diff --git a/arch/arm/plat-samsung/include/plat/ts.h b/arch/arm/plat-samsung/include/plat/ts.h index 8a51675f6b03..26fdb22e0fc2 100644 --- a/arch/arm/plat-samsung/include/plat/ts.h +++ b/arch/arm/plat-samsung/include/plat/ts.h | |||
@@ -14,8 +14,12 @@ struct s3c2410_ts_mach_info { | |||
14 | int delay; | 14 | int delay; |
15 | int presc; | 15 | int presc; |
16 | int oversampling_shift; | 16 | int oversampling_shift; |
17 | void (*cfg_gpio)(struct platform_device *dev); | ||
17 | }; | 18 | }; |
18 | 19 | ||
19 | extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *); | 20 | extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *); |
20 | 21 | ||
22 | /* defined by architecture to configure gpio */ | ||
23 | extern void s3c24xx_ts_cfg_gpio(struct platform_device *dev); | ||
24 | |||
21 | #endif /* __ASM_ARM_TS_H */ | 25 | #endif /* __ASM_ARM_TS_H */ |