* [PATCH v2 3/9] ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen
@ 2010-05-13 13:07 Kukjin Kim
2010-05-18 4:47 ` Ben Dooks
2010-05-18 8:13 ` Arnaud Patard (Rtp)
0 siblings, 2 replies; 3+ messages in thread
From: Kukjin Kim @ 2010-05-13 13:07 UTC (permalink / raw)
To: linux-arm-kernel
From: Naveen Krishna <ch.naveen@samsung.com>
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>
---
arch/arm/mach-s3c2410/Kconfig | 1 +
arch/arm/mach-s3c2410/mach-h1940.c | 1 +
arch/arm/plat-s3c24xx/Kconfig | 6 +++++
arch/arm/plat-s3c24xx/Makefile | 1 +
arch/arm/plat-s3c24xx/setup-ts.c | 34 +++++++++++++++++++++++++++++++
arch/arm/plat-samsung/include/plat/ts.h | 4 +++
6 files changed, 47 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/plat-s3c24xx/setup-ts.c
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
index 5547318..460ba78 100644
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
@@ -76,6 +76,7 @@ config ARCH_H1940
select PM_H1940 if PM
select S3C_DEV_USB_HOST
select S3C_DEV_NAND
+ select SAMSUNG_SETUP_TS
help
Say Y here if you are using the HP IPAQ H1940
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
index 75e3ffb..e8583ec 100644
--- a/arch/arm/mach-s3c2410/mach-h1940.c
+++ b/arch/arm/mach-s3c2410/mach-h1940.c
@@ -145,6 +145,7 @@ static struct s3c2410_ts_mach_info h1940_ts_cfg __initdata = {
.delay = 10000,
.presc = 49,
.oversampling_shift = 2,
+ .cfg_gpio = s3c24xx_ts_cfg_gpio,
};
/**
diff --git a/arch/arm/plat-s3c24xx/Kconfig b/arch/arm/plat-s3c24xx/Kconfig
index 6e93ef8..ed6f294 100644
--- a/arch/arm/plat-s3c24xx/Kconfig
+++ b/arch/arm/plat-s3c24xx/Kconfig
@@ -9,6 +9,7 @@ config PLAT_S3C24XX
select NO_IOPORT
select ARCH_REQUIRE_GPIOLIB
select S3C_DEVICE_NAND
+ select SAMSUNG_SETUP_TS if TOUCHSCREEN_S3C2410
help
Base platform code for any Samsung S3C24XX device
@@ -157,4 +158,9 @@ config S3C24XX_SIMTEC_AUDIO
help
Add audio devices for common Simtec S3C24XX boards
+config SAMSUNG_SETUP_TS
+ bool
+ help
+ Compile in platform device definition for Samsung TouchScreen.
+
endif
diff --git a/arch/arm/plat-s3c24xx/Makefile b/arch/arm/plat-s3c24xx/Makefile
index c2237c4..0fecbc3 100644
--- a/arch/arm/plat-s3c24xx/Makefile
+++ b/arch/arm/plat-s3c24xx/Makefile
@@ -37,6 +37,7 @@ obj-$(CONFIG_S3C2410_CPUFREQ_UTILS) += s3c2410-cpufreq-utils.o
# device specific setup and/or initialisation
obj-$(CONFIG_ARCH_S3C2410) += setup-i2c.o
+obj-$(CONFIG_SAMSUNG_SETUP_TS) += setup-ts.o
# SPI gpio central GPIO functions
diff --git a/arch/arm/plat-s3c24xx/setup-ts.c b/arch/arm/plat-s3c24xx/setup-ts.c
new file mode 100644
index 0000000..ed26386
--- /dev/null
+++ b/arch/arm/plat-s3c24xx/setup-ts.c
@@ -0,0 +1,34 @@
+/* linux/arch/arm/plat-s3c24xx/setup-ts.c
+ *
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com/
+ *
+ * Based on S3C24XX setup for i2c device
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/kernel.h>
+#include <linux/gpio.h>
+
+struct platform_device; /* don't need the contents */
+
+#include <mach/hardware.h>
+#include <mach/regs-gpio.h>
+
+/**
+ * s3c24xx_ts_cfg_gpio - configure gpio for s3c2410 systems
+ *
+ * Configure the GPIO for the S3C2410 system, where we have external FETs
+ * connected to the device (later systems such as the S3C2440 integrate
+ * these into the device).
+ */
+void s3c24xx_ts_cfg_gpio(struct platform_device *dev)
+{
+ s3c2410_gpio_cfgpin(S3C2410_GPG(12), S3C2410_GPG12_XMON);
+ s3c2410_gpio_cfgpin(S3C2410_GPG(13), S3C2410_GPG13_nXPON);
+ s3c2410_gpio_cfgpin(S3C2410_GPG(14), S3C2410_GPG14_YMON);
+ s3c2410_gpio_cfgpin(S3C2410_GPG(15), S3C2410_GPG15_nYPON);
+}
diff --git a/arch/arm/plat-samsung/include/plat/ts.h b/arch/arm/plat-samsung/include/plat/ts.h
index 8a51675..26fdb22 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 {
int delay;
int presc;
int oversampling_shift;
+ void (*cfg_gpio)(struct platform_device *dev);
};
extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *);
+/* defined by architecture to configure gpio */
+extern void s3c24xx_ts_cfg_gpio(struct platform_device *dev);
+
#endif /* __ASM_ARM_TS_H */
--
1.6.2.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 3/9] ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen
2010-05-13 13:07 [PATCH v2 3/9] ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen Kukjin Kim
@ 2010-05-18 4:47 ` Ben Dooks
2010-05-18 8:13 ` Arnaud Patard (Rtp)
1 sibling, 0 replies; 3+ messages in thread
From: Ben Dooks @ 2010-05-18 4:47 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, May 13, 2010 at 10:07:12PM +0900, Kukjin Kim wrote:
> From: Naveen Krishna <ch.naveen@samsung.com>
>
> 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>
> ---
> arch/arm/mach-s3c2410/Kconfig | 1 +
> arch/arm/mach-s3c2410/mach-h1940.c | 1 +
> arch/arm/plat-s3c24xx/Kconfig | 6 +++++
> arch/arm/plat-s3c24xx/Makefile | 1 +
> arch/arm/plat-s3c24xx/setup-ts.c | 34 +++++++++++++++++++++++++++++++
> arch/arm/plat-samsung/include/plat/ts.h | 4 +++
> 6 files changed, 47 insertions(+), 0 deletions(-)
> create mode 100644 arch/arm/plat-s3c24xx/setup-ts.c
>
> diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
> index 5547318..460ba78 100644
> --- a/arch/arm/mach-s3c2410/Kconfig
> +++ b/arch/arm/mach-s3c2410/Kconfig
> @@ -76,6 +76,7 @@ config ARCH_H1940
> select PM_H1940 if PM
> select S3C_DEV_USB_HOST
> select S3C_DEV_NAND
> + select SAMSUNG_SETUP_TS
no, at best this is s3c24xx specific and should either be
S3C24XX_SETUP_TS or better still, S3C2410_SETUP_TS.
> help
> Say Y here if you are using the HP IPAQ H1940
>
> diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
> index 75e3ffb..e8583ec 100644
> --- a/arch/arm/mach-s3c2410/mach-h1940.c
> +++ b/arch/arm/mach-s3c2410/mach-h1940.c
> @@ -145,6 +145,7 @@ static struct s3c2410_ts_mach_info h1940_ts_cfg __initdata = {
> .delay = 10000,
> .presc = 49,
> .oversampling_shift = 2,
> + .cfg_gpio = s3c24xx_ts_cfg_gpio,
> };
>
> /**
> diff --git a/arch/arm/plat-s3c24xx/Kconfig b/arch/arm/plat-s3c24xx/Kconfig
> index 6e93ef8..ed6f294 100644
> --- a/arch/arm/plat-s3c24xx/Kconfig
> +++ b/arch/arm/plat-s3c24xx/Kconfig
> @@ -9,6 +9,7 @@ config PLAT_S3C24XX
> select NO_IOPORT
> select ARCH_REQUIRE_GPIOLIB
> select S3C_DEVICE_NAND
> + select SAMSUNG_SETUP_TS if TOUCHSCREEN_S3C2410
> help
> Base platform code for any Samsung S3C24XX device
>
> @@ -157,4 +158,9 @@ config S3C24XX_SIMTEC_AUDIO
> help
> Add audio devices for common Simtec S3C24XX boards
>
> +config SAMSUNG_SETUP_TS
> + bool
> + help
> + Compile in platform device definition for Samsung TouchScreen.
> +
> endif
> diff --git a/arch/arm/plat-s3c24xx/Makefile b/arch/arm/plat-s3c24xx/Makefile
> index c2237c4..0fecbc3 100644
> --- a/arch/arm/plat-s3c24xx/Makefile
> +++ b/arch/arm/plat-s3c24xx/Makefile
> @@ -37,6 +37,7 @@ obj-$(CONFIG_S3C2410_CPUFREQ_UTILS) += s3c2410-cpufreq-utils.o
>
> # device specific setup and/or initialisation
> obj-$(CONFIG_ARCH_S3C2410) += setup-i2c.o
> +obj-$(CONFIG_SAMSUNG_SETUP_TS) += setup-ts.o
>
> # SPI gpio central GPIO functions
>
> diff --git a/arch/arm/plat-s3c24xx/setup-ts.c b/arch/arm/plat-s3c24xx/setup-ts.c
> new file mode 100644
> index 0000000..ed26386
> --- /dev/null
> +++ b/arch/arm/plat-s3c24xx/setup-ts.c
> @@ -0,0 +1,34 @@
> +/* linux/arch/arm/plat-s3c24xx/setup-ts.c
> + *
> + * Copyright (c) 2010 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com/
> + *
> + * Based on S3C24XX setup for i2c device
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/gpio.h>
> +
> +struct platform_device; /* don't need the contents */
> +
> +#include <mach/hardware.h>
> +#include <mach/regs-gpio.h>
> +
> +/**
> + * s3c24xx_ts_cfg_gpio - configure gpio for s3c2410 systems
> + *
> + * Configure the GPIO for the S3C2410 system, where we have external FETs
> + * connected to the device (later systems such as the S3C2440 integrate
> + * these into the device).
> + */
> +void s3c24xx_ts_cfg_gpio(struct platform_device *dev)
> +{
> + s3c2410_gpio_cfgpin(S3C2410_GPG(12), S3C2410_GPG12_XMON);
> + s3c2410_gpio_cfgpin(S3C2410_GPG(13), S3C2410_GPG13_nXPON);
> + s3c2410_gpio_cfgpin(S3C2410_GPG(14), S3C2410_GPG14_YMON);
> + s3c2410_gpio_cfgpin(S3C2410_GPG(15), S3C2410_GPG15_nYPON);
> +}
> diff --git a/arch/arm/plat-samsung/include/plat/ts.h b/arch/arm/plat-samsung/include/plat/ts.h
> index 8a51675..26fdb22 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 {
> int delay;
> int presc;
> int oversampling_shift;
> + void (*cfg_gpio)(struct platform_device *dev);
> };
>
> extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *);
>
> +/* defined by architecture to configure gpio */
> +extern void s3c24xx_ts_cfg_gpio(struct platform_device *dev);
> +
> #endif /* __ASM_ARM_TS_H */
> --
> 1.6.2.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> 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.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v2 3/9] ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen
2010-05-13 13:07 [PATCH v2 3/9] ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen Kukjin Kim
2010-05-18 4:47 ` Ben Dooks
@ 2010-05-18 8:13 ` Arnaud Patard (Rtp)
1 sibling, 0 replies; 3+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-05-18 8:13 UTC (permalink / raw)
To: linux-arm-kernel
Kukjin Kim <kgene.kim@samsung.com> writes:
Hi,
[...]
> +
> +/**
> + * s3c24xx_ts_cfg_gpio - configure gpio for s3c2410 systems
> + *
> + * Configure the GPIO for the S3C2410 system, where we have external FETs
> + * connected to the device (later systems such as the S3C2440 integrate
> + * these into the device).
> + */
> +void s3c24xx_ts_cfg_gpio(struct platform_device *dev)
> +{
> + s3c2410_gpio_cfgpin(S3C2410_GPG(12), S3C2410_GPG12_XMON);
> + s3c2410_gpio_cfgpin(S3C2410_GPG(13), S3C2410_GPG13_nXPON);
> + s3c2410_gpio_cfgpin(S3C2410_GPG(14), S3C2410_GPG14_YMON);
> + s3c2410_gpio_cfgpin(S3C2410_GPG(15), S3C2410_GPG15_nYPON);
> +}
hmm... thinking more about this, why don't you put that in the
arch/arm/plat-s3c24xx/devs.c file and then set the cfg_gpio hook in
s3c24xx_ts_set_platdata() for 2410 platforms ?
This should be smaller change and will set it for all s3c2410 platforms
using the touchscreen once for all and "hide" it instead of having to
set it in all machine files using the touchscreen.
Arnaud
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-05-18 8:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-13 13:07 [PATCH v2 3/9] ARM: SAMSUNG: Implements cfg_gpio function for Samsung touchscreen Kukjin Kim
2010-05-18 4:47 ` Ben Dooks
2010-05-18 8:13 ` Arnaud Patard (Rtp)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).