From patchwork Sun Jul 8 17:12:18 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juergen Borleis X-Patchwork-Id: 1169951 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork1.kernel.org (Postfix) with ESMTP id 598B83FD4F for ; Sun, 8 Jul 2012 17:34:49 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1SnvCx-00049w-5Z; Sun, 08 Jul 2012 17:23:43 +0000 Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1Snv2A-0001p0-Cd for linux-arm-kernel@lists.infradead.org; Sun, 08 Jul 2012 17:12:48 +0000 Received: from dude.hi.pengutronix.de ([2001:6f8:1178:2:21e:67ff:fe11:9c5c]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1Snv24-0006yH-PU; Sun, 08 Jul 2012 19:12:28 +0200 Received: from jbe by dude.hi.pengutronix.de with local (Exim 4.80) (envelope-from ) id 1Snv22-0004Yf-Of; Sun, 08 Jul 2012 19:12:26 +0200 From: Juergen Beisert To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 04/10] MACH/Samsung/Mini2440: add touchscreen support for mini2440. Date: Sun, 8 Jul 2012 19:12:18 +0200 Message-Id: <1341767544-17447-5-git-send-email-jbe@pengutronix.de> X-Mailer: git-send-email 1.7.10 In-Reply-To: <1341767544-17447-1-git-send-email-jbe@pengutronix.de> References: <1341767544-17447-1-git-send-email-jbe@pengutronix.de> X-SA-Exim-Connect-IP: 2001:6f8:1178:2:21e:67ff:fe11:9c5c X-SA-Exim-Mail-From: jbe@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-Spam-Note: CRM114 invocation failed X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Marek Belisko X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Marek Belisko Patch add support for mini2440 touchscreen. Some code borrowed from: git://repo.or.cz/linux-2.6/mini2440.git Signed-off-by: Marek Belisko Acked-by: Juergen Beisert --- arch/arm/mach-s3c24xx/mach-mini2440.c | 36 +++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c index 45d5bb5..110af98 100644 --- a/arch/arm/mach-s3c24xx/mach-mini2440.c +++ b/arch/arm/mach-s3c24xx/mach-mini2440.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -552,6 +553,12 @@ static struct platform_device uda1340_codec = { .id = -1, }; +static struct s3c2410_ts_mach_info mini2440_ts_cfg __initdata = { + .delay = 10000, + .presc = 0xff, /* slow as we can go */ + .oversampling_shift = 0, +}; + static struct platform_device *mini2440_devices[] __initdata = { &s3c_device_ohci, &s3c_device_wdt, @@ -570,6 +577,7 @@ static struct platform_device *mini2440_devices[] __initdata = { &uda1340_codec, &mini2440_audio, &samsung_asoc_dma, + &s3c_device_adc, }; static void __init mini2440_map_io(void) @@ -627,12 +635,12 @@ static void __init mini2440_parse_features( switch (f) { case '0'...'9': /* tft screen */ if (features->done & FEATURE_SCREEN) { - printk(KERN_INFO "MINI2440: '%c' ignored, " + pr_info("MINI2440: '%c' ignored, " "screen type already set\n", f); } else { int li = f - '0'; if (li >= ARRAY_SIZE(mini2440_lcd_cfg)) - printk(KERN_INFO "MINI2440: " + pr_info("MINI2440: " "'%c' out of range LCD mode\n", f); else { features->optional[features->count++] = @@ -644,7 +652,7 @@ static void __init mini2440_parse_features( break; case 'b': if (features->done & FEATURE_BACKLIGHT) - printk(KERN_INFO "MINI2440: '%c' ignored, " + pr_info("MINI2440: '%c' ignored, " "backlight already set\n", f); else { features->optional[features->count++] = @@ -653,12 +661,17 @@ static void __init mini2440_parse_features( features->done |= FEATURE_BACKLIGHT; break; case 't': - printk(KERN_INFO "MINI2440: '%c' ignored, " - "touchscreen not compiled in\n", f); + if (features->done & FEATURE_TOUCH) + pr_info("MINI2440: '%c' ignored, " + "touchscreen already set\n", f); + else + features->optional[features->count++] = + &s3c_device_ts; + features->done |= FEATURE_TOUCH; break; case 'c': if (features->done & FEATURE_CAMERA) - printk(KERN_INFO "MINI2440: '%c' ignored, " + pr_info("MINI2440: '%c' ignored, " "camera already registered\n", f); else features->optional[features->count++] = @@ -674,7 +687,7 @@ static void __init mini2440_init(void) struct mini2440_features_t features = { 0 }; int i; - printk(KERN_INFO "MINI2440: Option string mini2440=%s\n", + pr_info("MINI2440: Option string mini2440=%s\n", mini2440_features_str); /* Parse the feature string */ @@ -703,17 +716,17 @@ static void __init mini2440_init(void) mini2440_fb_info.displays = &mini2440_lcd_cfg[features.lcd_index]; - printk(KERN_INFO "MINI2440: LCD"); + pr_info("MINI2440: LCD"); for (li = 0; li < ARRAY_SIZE(mini2440_lcd_cfg); li++) if (li == features.lcd_index) - printk(" [%d:%dx%d]", li, + pr_info(" [%d:%dx%d]", li, mini2440_lcd_cfg[li].width, mini2440_lcd_cfg[li].height); else - printk(" %d:%dx%d", li, + pr_info(" %d:%dx%d", li, mini2440_lcd_cfg[li].width, mini2440_lcd_cfg[li].height); - printk("\n"); + pr_info("\n"); s3c24xx_fb_set_platdata(&mini2440_fb_info); } @@ -721,6 +734,7 @@ static void __init mini2440_init(void) s3c24xx_mci_set_platdata(&mini2440_mmc_cfg); s3c_nand_set_platdata(&mini2440_nand_info); s3c_i2c0_set_platdata(NULL); + s3c24xx_ts_set_platdata(&mini2440_ts_cfg); i2c_register_board_info(0, mini2440_i2c_devs, ARRAY_SIZE(mini2440_i2c_devs));