1/* linux/arch/arm/mach-s3c64xx/dev-ts.c 2 * 3 * Copyright (c) 2008 Simtec Electronics 4 * http://armlinux.simtec.co.uk/ 5 * Ben Dooks <ben@simtec.co.uk>, <ben-linux@fluff.org> 6 * 7 * Adapted by Maurus Cuelenaere for s3c64xx 8 * 9 * S3C64XX series device definition for touchscreen device 10 * 11 * This program is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License version 2 as 13 * published by the Free Software Foundation. 14*/ 15 16#include <linux/kernel.h> 17#include <linux/string.h> 18#include <linux/platform_device.h> 19 20#include <mach/irqs.h> 21#include <mach/map.h> 22 23#include <plat/devs.h> 24#include <plat/ts.h> 25 26static struct resource s3c_ts_resource[] = { 27 [0] = { 28 .start = SAMSUNG_PA_ADC, 29 .end = SAMSUNG_PA_ADC + SZ_256 - 1, 30 .flags = IORESOURCE_MEM, 31 }, 32 [1] = { 33 .start = IRQ_TC, 34 .end = IRQ_TC, 35 .flags = IORESOURCE_IRQ, 36 }, 37}; 38 39struct platform_device s3c_device_ts = { 40 .name = "s3c64xx-ts", 41 .id = -1, 42 .num_resources = ARRAY_SIZE(s3c_ts_resource), 43 .resource = s3c_ts_resource, 44}; 45 46void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *pd) 47{ 48 struct s3c2410_ts_mach_info *npd; 49 50 if (!pd) { 51 printk(KERN_ERR "%s: no platform data\n", __func__); 52 return; 53 } 54 55 npd = kmemdup(pd, sizeof(struct s3c2410_ts_mach_info), GFP_KERNEL); 56 if (!npd) 57 printk(KERN_ERR "%s: no memory for platform data\n", __func__); 58 59 s3c_device_ts.dev.platform_data = npd; 60} 61EXPORT_SYMBOL(s3c24xx_ts_set_platdata); 62