ARM: Merge next-simtec
authorBen Dooks <ben@ben-laptop.fluff.org>
Mon, 4 Jan 2010 00:32:37 +0000 (09:32 +0900)
committerBen Dooks <ben@ben-laptop.fluff.org>
Mon, 4 Jan 2010 00:32:37 +0000 (09:32 +0900)
Merge branch 'next-simtec' into for-linus/samsung

arch/arm/mach-s3c2410/include/mach/ts.h [new file with mode: 0644]
arch/arm/mach-s3c2410/mach-bast.c
arch/arm/mach-s3c2410/mach-h1940.c
arch/arm/mach-s3c2440/mach-osiris.c
arch/arm/plat-s3c/dev-nand.c
arch/arm/plat-s3c/include/plat/devs.h
arch/arm/plat-s3c24xx/devs.c
arch/arm/plat-s3c24xx/s3c244x.c

diff --git a/arch/arm/mach-s3c2410/include/mach/ts.h b/arch/arm/mach-s3c2410/include/mach/ts.h
new file mode 100644 (file)
index 0000000..dc36170
--- /dev/null
@@ -0,0 +1,21 @@
+/* linux/include/asm/arch-s3c2410/ts.h
+ *
+ * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
+ *
+ * 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.
+*/
+
+#ifndef __ASM_ARM_TS_H
+#define __ASM_ARM_TS_H
+
+struct s3c2410_ts_mach_info {
+       int             delay;
+       int             presc;
+       int             oversampling_shift;
+};
+
+extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *);
+
+#endif /* __ASM_ARM_TS_H */
index 4c79ac8..97162fd 100644 (file)
@@ -279,6 +279,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = {
                .name           = "SmartMedia",
                .nr_chips       = 1,
                .nr_map         = smartmedia_map,
+               .options        = NAND_SCAN_SILENT_NODEV,
                .nr_partitions  = ARRAY_SIZE(bast_default_nand_part),
                .partitions     = bast_default_nand_part,
        },
@@ -293,6 +294,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = {
                .name           = "chip1",
                .nr_chips       = 1,
                .nr_map         = chip1_map,
+               .options        = NAND_SCAN_SILENT_NODEV,
                .nr_partitions  = ARRAY_SIZE(bast_default_nand_part),
                .partitions     = bast_default_nand_part,
        },
@@ -300,6 +302,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = {
                .name           = "chip2",
                .nr_chips       = 1,
                .nr_map         = chip2_map,
+               .options        = NAND_SCAN_SILENT_NODEV,
                .nr_partitions  = ARRAY_SIZE(bast_default_nand_part),
                .partitions     = bast_default_nand_part,
        }
index 4905325..1e34abe 100644 (file)
@@ -46,6 +46,7 @@
 #include <mach/h1940.h>
 #include <mach/h1940-latch.h>
 #include <mach/fb.h>
+#include <mach/ts.h>
 #include <plat/udc.h>
 #include <plat/iic.h>
 
@@ -140,6 +141,11 @@ static struct s3c2410_udc_mach_info h1940_udc_cfg __initdata = {
        .vbus_pin_inverted      = 1,
 };
 
+static struct s3c2410_ts_mach_info h1940_ts_cfg __initdata = {
+               .delay = 10000,
+               .presc = 49,
+               .oversampling_shift = 2,
+};
 
 /**
  * Set lcd on or off
@@ -265,6 +271,7 @@ static struct platform_device h1940_lcd_powerdev = {
 };
 
 static struct platform_device *h1940_devices[] __initdata = {
+       &s3c_device_ts,
        &s3c_device_usb,
        &s3c_device_lcd,
        &s3c_device_wdt,
@@ -305,6 +312,7 @@ static void __init h1940_init(void)
 
        s3c24xx_fb_set_platdata(&h1940_fb_info);
        s3c24xx_udc_set_platdata(&h1940_udc_cfg);
+       s3c24xx_ts_set_platdata(&h1940_ts_cfg);
        s3c_i2c0_set_platdata(NULL);
 
        s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg;
index 015dfb2..f35371d 100644 (file)
@@ -208,6 +208,7 @@ static struct s3c2410_nand_set __initdata osiris_nand_sets[] = {
                .name           = "External",
                .nr_chips       = 1,
                .nr_map         = external_map,
+               .options        = NAND_SCAN_SILENT_NODEV,
                .nr_partitions  = ARRAY_SIZE(osiris_default_nand_part),
                .partitions     = osiris_default_nand_part,
        },
@@ -222,6 +223,7 @@ static struct s3c2410_nand_set __initdata osiris_nand_sets[] = {
                .name           = "chip1",
                .nr_chips       = 1,
                .nr_map         = chip1_map,
+               .options        = NAND_SCAN_SILENT_NODEV,
                .nr_partitions  = ARRAY_SIZE(osiris_default_nand_part),
                .partitions     = osiris_default_nand_part,
        },
index e771e77..84808cc 100644 (file)
@@ -114,7 +114,7 @@ void __init s3c_nand_set_platdata(struct s3c2410_platform_nand *nand)
                
                for (i = 0; i < npd->nr_sets; i++) {
                        ret = s3c_nand_copy_set(to);
-                       if (!ret) {
+                       if (ret) {
                                printk(KERN_ERR "%s: failed to copy set %d\n",
                                __func__, i);
                                return;
@@ -122,6 +122,8 @@ void __init s3c_nand_set_platdata(struct s3c2410_platform_nand *nand)
                        to++;
                }
        }
+
+       s3c_device_nand.dev.platform_data = npd;
 }
 
 EXPORT_SYMBOL_GPL(s3c_nand_set_platdata);
index 932cbbb..c1c20b0 100644 (file)
@@ -31,6 +31,7 @@ extern struct platform_device s3c64xx_device_iisv4;
 extern struct platform_device s3c64xx_device_pcm0;
 extern struct platform_device s3c64xx_device_pcm1;
 
+extern struct platform_device s3c_device_ts;
 extern struct platform_device s3c_device_fb;
 extern struct platform_device s3c_device_usb;
 extern struct platform_device s3c_device_lcd;
index f52a92c..7f686a3 100644 (file)
@@ -37,6 +37,8 @@
 #include <plat/cpu.h>
 #include <plat/regs-spi.h>
 
+#include <mach/ts.h>
+
 /* Serial port registrations */
 
 static struct resource s3c2410_uart0_resource[] = {
@@ -182,6 +184,22 @@ void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *pd)
        }
 }
 
+/* Touchscreen */
+struct platform_device s3c_device_ts = {
+       .name             = "s3c2410-ts",
+       .id               = -1,
+};
+EXPORT_SYMBOL(s3c_device_ts);
+
+static struct s3c2410_ts_mach_info s3c2410ts_info;
+
+void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
+{
+       memcpy(&s3c2410ts_info, hard_s3c2410ts_info, sizeof(struct s3c2410_ts_mach_info));
+       s3c_device_ts.dev.platform_data = &s3c2410ts_info;
+}
+EXPORT_SYMBOL(s3c24xx_ts_set_platdata);
+
 /* USB Device (Gadget)*/
 
 static struct resource s3c_usbgadget_resource[] = {
index 1364317..12623a4 100644 (file)
@@ -70,6 +70,7 @@ void __init s3c244x_map_io(void)
        s3c_device_sdi.name  = "s3c2440-sdi";
        s3c_device_i2c0.name  = "s3c2440-i2c";
        s3c_device_nand.name = "s3c2440-nand";
+       s3c_device_ts.name = "s3c2440-ts";
        s3c_device_usbgadget.name = "s3c2440-usbgadget";
 }