rendered paste bodyIndex: arch/arm/mach-pxa/htcblueangel/blueangel.c
===================================================================
RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/htcblueangel/blueangel.c,v
retrieving revision 1.39
diff -u -r1.39 blueangel.c
--- arch/arm/mach-pxa/htcblueangel/blueangel.c 26 Jul 2007 00:17:16 -0000 1.39
+++ arch/arm/mach-pxa/htcblueangel/blueangel.c 21 Feb 2008 20:11:07 -0000
@@ -23,6 +23,9 @@
#include <linux/pm.h>
#include <linux/bootmem.h>
#include <linux/platform_device.h>
+#include <linux/gpiodev.h>
+#include <linux/input.h>
+#include <linux/input_pda.h>
#include <linux/gpio_keys.h>
#include <asm/irq.h>
@@ -39,17 +42,23 @@
#include <asm/arch/irq.h>
#include <asm/arch/pxafb.h>
#include <asm/arch/udc.h>
+#include <asm/arch/irda.h>
#include <asm/hardware/ipaq-asic3.h>
-#include <asm/hardware/asic3_leds.h>
#include <asm/hardware/asic3_keys.h>
#include <asm/arch/htcblueangel.h>
#include <asm/arch/htcblueangel-gpio.h>
#include <asm/arch/htcblueangel-asic.h>
#include <linux/mfd/tsc2200.h>
+#include <linux/mfd/pasic3.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/map.h>
+#include <linux/mtd/partitions.h>
+#include <linux/mtd/physmap.h>
#include <linux/serial_core.h>
#include <linux/touchscreen-adc.h>
#include <linux/adc_battery.h>
+#include <asm/hardware/asic3_leds.h>
#include <asm/arch/pxa2xx_udc_gpio.h>
#include <asm-arm/arch-pxa/serial.h>
@@ -88,7 +97,7 @@
{
.led_cdev = {
.name = "blueangel:phonebuttons",
- .default_trigger = "blueangel-phonebuttons",
+ .default_trigger = "backlight",
},
.hw_num = -1,
.gpio_num = ('B'-'A')*16+GPIOB_PHONEL_PWR_ON,
@@ -104,7 +113,7 @@
{
.led_cdev = {
.name = "blueangel:kbdbacklight",
- .default_trigger = "blueangel-kbdbacklight",
+ .default_trigger = "input-key",
},
.hw_num = -1,
.gpio_num = ('C'-'A')*16+GPIOC_KEYBL_PWR_ON,
@@ -177,20 +186,117 @@
}
};
+
+/*
+ * LEDs
+ */
+
+static struct pasic3_led pasic3_leds[] = {
+ {
+ .led = {
+ .name = "blueangel:wifi",
+ .default_trigger = "wifi", /* and WIFI */
+ .flags = LED_SUPPORTS_HWTIMER,
+ },
+ .hw_num = 1,
+ .mask = PASIC3_MASK_LED1, /* 0x08 */
+ },
+ {
+ .led = {
+ .name = "blueangel:bt",
+ .default_trigger = "bluetooth", /* and Bluetooth */
+ .flags = LED_SUPPORTS_HWTIMER,
+ },
+ .hw_num = 0,
+ .mask = PASIC3_MASK_LED0, /* 0x04 */
+ },
+};
+
+static struct platform_device pasic3;
+
+static struct pasic3_leds_machinfo __devinit pasic3_leds_machinfo = {
+ .num_leds = ARRAY_SIZE(pasic3_leds),
+ .leds = pasic3_leds,
+};
+
+static struct platform_device pasic3_led = {
+ .name = "pasic3-led",
+ .id = -1,
+ .dev = {
+ .platform_data = &pasic3_leds_machinfo,
+ },
+};
+
+/*
+ * PASIC3 with DS1WM
+ */
+
+static struct platform_device *pasic3_devices[] = {
+ &pasic3_led,
+};
+
+static struct resource pasic3_resources[] = {
+ [0] = {
+ .start = 0x11000000,
+ .end = 0x11000000 + 0x08,
+ .flags = IORESOURCE_MEM,
+ },
+ /* No IRQ handler in the PASIC3, DS1WM needs an external IRQ */
+ [1] = {
+ .start = HTCBLUEANGEL_ASIC3_IRQ_BASE + BLUEANGEL_OWM_IRQ,
+ .end = HTCBLUEANGEL_ASIC3_IRQ_BASE + BLUEANGEL_OWM_IRQ,
+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE ,
+ }
+};
+
+static struct pasic3_platform_data pasic3_platform_data = {
+ .bus_shift = 1,
+
+ .child_devs = pasic3_devices,
+ .num_child_devs = ARRAY_SIZE(pasic3_devices),
+ .clock_rate = 16000000,
+};
+
+static struct platform_device pasic3 = {
+ .name = "pasic3",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(pasic3_resources),
+ .resource = pasic3_resources,
+ .dev = {
+ .platform_data = &pasic3_platform_data,
+ },
+};
+
static void __init blueangel_init_irq( void )
{
/* Initialize standard IRQs */
pxa_init_irq();
+
}
-static void ser_stuart_gpio_config(int enable)
+/* IrDA */
+static void blueangel_irda_transceiver_mode(struct device *dev, int mode)
{
- printk("ser_stuart_gpio_config %d\n", enable);
- if (enable == PXA_UART_CFG_PRE_STARTUP) {
- STISR=0;
- }
+ unsigned long flags;
+
+ local_irq_save(flags);
+
+ if (mode & IR_OFF) {
+ DPM_DEBUG("htcblueangel_irda: Turning off port\n");
+ STISR=1;
+ } else {
+ DPM_DEBUG("htcblueangel_irda: Turning on port\n");
+ STISR=0;
+ }
+
+ local_irq_restore(flags);
}
+static struct pxaficp_platform_data blueangel_ficp_platform_data = {
+ .transceiver_cap = IR_SIRMODE | IR_OFF,
+ .transceiver_mode = blueangel_irda_transceiver_mode,
+};
+
static void ser_hwuart_gpio_config(int enable)
{
printk("ser_hwuart_gpio_config %d\n", enable);
@@ -263,10 +369,11 @@
GFER2 = 0x00000000;
#endif
+ pxa_set_ficp_info(&blueangel_ficp_platform_data);
- pxa_serial_funcs[2].configure = ser_stuart_gpio_config;
+ //pxa_serial_funcs[2].configure = ser_stuart_gpio_config;
pxa_serial_funcs[3].configure = ser_hwuart_gpio_config;
- pxa_set_stuart_info(&pxa_serial_funcs[2]);
+ //pxa_set_stuart_info(&pxa_serial_funcs[2]);
pxa_set_hwuart_info(&pxa_serial_funcs[3]);
}
@@ -276,39 +383,136 @@
extern struct platform_device blueangel_bl;
static struct platform_device blueangel_lcd = { .name = "blueangel-lcd", };
-static struct platform_device blueangel_leds = { .name = "blueangel-leds", };
-static struct platform_device blueangel_pcmcia = { .name =
- "blueangel-pcmcia", };
+static struct platform_device blueangel_irda = { .name = "blueangel-irda", };
+static struct platform_device blueangel_bt = { .name = "blueangel-bt", };
+static struct platform_device blueangel_pcmcia = { .name = "blueangel-pcmcia", };
+
+/* StrataFlash */
+
+static void blueangel_set_vpp(struct map_info *map, int vpp)
+{
+ static int old_vpp = 0;
+
+/* Don't use VPP at the moment
+ if (vpp == old_vpp)
+ return;
+ if (vpp)
+ magician_egpio_set(EGPIO_NR_MAGICIAN_FLASH_VPP, 1);
+ else
+ magician_egpio_set(EGPIO_NR_MAGICIAN_FLASH_VPP, 0);
+*/
+
+ old_vpp = vpp;
+}
+
+#ifdef CONFIG_MTD_PARTITIONS
+static struct mtd_partition wince_partitions[] = {
+ {
+ name: "bootloader",
+ offset: 0,
+ size: 1*0x40000,
+ mask_flags: MTD_WRITEABLE, /* force read-only */
+ },
+ {
+ name: "osrom",
+ size: 143*0x40000,
+ mask_flags: MTD_WRITEABLE, /* force read-only */
+ offset: MTDPART_OFS_NXTBLK,
+ },
+ {
+ name: "backup_area",
+ size: 32*0x40000,
+ mask_flags: MTD_WRITEABLE, /* force read-only */
+ offset: MTDPART_OFS_NXTBLK,
+ },
+ {
+ name: "extrom",
+ size: 76*0x40000,
+ mask_flags: MTD_WRITEABLE, /* force read-only */
+ offset: MTDPART_OFS_NXTBLK,
+ },
+ {
+ name: "unused",
+ size: 2*0x40000,
+ mask_flags: MTD_WRITEABLE, /* force read-only */
+ offset: MTDPART_OFS_NXTBLK,
+ },
+ {
+ name: "splash",
+ size: 1*0x40000,
+ offset: MTDPART_OFS_NXTBLK,
+ },
+ {
+ name: "asset",
+ size: 1*0x40000,
+ mask_flags: MTD_WRITEABLE, /* force read-only */
+ offset: MTDPART_OFS_NXTBLK,
+ },
+};
+#endif
+
+#define WINDOW_SIZE 32*1024*1024
+
+static struct resource blueangel_flash_resource = {
+ .start = 0x0,
+ .end = 0x0 + WINDOW_SIZE - 1,
+ .flags = IORESOURCE_MEM,
+};
+
+struct physmap_flash_data blueangel_flash_data = {
+ .width = 4,
+ .set_vpp = blueangel_set_vpp,
+#ifdef CONFIG_MTD_PARTITIONS
+ .nr_parts = ARRAY_SIZE(wince_partitions),
+ .parts = wince_partitions,
+#endif
+};
+
+static struct platform_device blueangel_flash = {
+ .name = "physmap-flash",
+ .id = -1,
+ .num_resources = 1,
+ .resource = &blueangel_flash_resource,
+ .dev = {
+ .platform_data = &blueangel_flash_data,
+ },
+};
/*
- * ASIC3 buttons
+ * GPIO buttons
*/
+static struct gpio_keys_button blueangel_button_table[] = {
-static struct asic3_keys_button blueangel_asic3_keys_table[] = {
- {KEY_RECORD, BLUEANGEL_RECORD_BTN_IRQ, 1, "Record Button"},
- {KEY_VOLUMEUP, BLUEANGEL_VOL_UP_BTN_IRQ, 1, "Volume Up Button"},
- {KEY_VOLUMEDOWN, BLUEANGEL_VOL_DOWN_BTN_IRQ, 1, "Volume Down Button"},
- {KEY_CAMERA, BLUEANGEL_CAMERA_BTN_IRQ, 1, "Camera Button"},
- {KEY_MENU, BLUEANGEL_WINDOWS_BTN_IRQ, 1, "Windows Button"},
- {KEY_EMAIL, BLUEANGEL_MAIL_BTN_IRQ, 1, "Mail Button"},
- {KEY_WWW, BLUEANGEL_WWW_BTN_IRQ, 1, "Internet Button"},
- {KEY_KPENTER, BLUEANGEL_OK_BTN_IRQ, 1, "Ok Button"},
+ { KEY_POWER, GPIO_NR_BLUEANGEL_POWER_BUTTON_N, 1 },
+ {KEY_RECORD, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_RECORD_BTN_IRQ, 1, "Record Button"},
+ {KEY_VOLUMEUP, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_VOL_UP_BTN_IRQ, 1, "Volume Up Button"},
+ {KEY_VOLUMEDOWN, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_VOL_DOWN_BTN_IRQ, 1, "Volume Down Button"},
+
+ {KEY_CAMERA, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_CAMERA_BTN_IRQ, 1, "Camera Button"},
+ {KEY_MENU, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_WINDOWS_BTN_IRQ, 1, "Windows Button"},
+ {KEY_EMAIL, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_MAIL_BTN_IRQ, 1, "Mail Button"},
+ {KEY_WWW, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_WWW_BTN_IRQ, 1, "Internet Button"},
+ {KEY_KPENTER, HTCBLUEANGEL_ASIC3_GPIO_BASE + BLUEANGEL_OK_BTN_IRQ, 1, "Ok Button"},
};
-static struct asic3_keys_platform_data blueangel_asic3_keys_data = {
- .buttons = blueangel_asic3_keys_table,
- .nbuttons = ARRAY_SIZE(blueangel_asic3_keys_table),
- .asic3_dev = &blueangel_asic3.dev,
+static struct gpio_keys_platform_data blueangel_gpio_keys_data = {
+
+ .buttons = blueangel_button_table,
+ .nbuttons = ARRAY_SIZE(blueangel_button_table),
+
};
-static struct platform_device blueangel_asic3_keys = {
- .name = "asic3-keys",
- .dev = {
- .platform_data = &blueangel_asic3_keys_data,
- }
+static struct platform_device blueangel_gpio_keys = {
+ .name = "gpio-keys",
+ .dev = {
+ .platform_data = &blueangel_gpio_keys_data,
+ },
};
+
+
+
/* UDC device */
struct pxa2xx_udc_gpio_info blueangel_udc_info = {
.detect_gpio = {&pxagpio_device.dev, GPIO_NR_BLUEANGEL_USB_DETECT_N},
@@ -327,17 +531,19 @@
};
static struct platform_device *blueangel_asic3_devices[] __initdata = {
- &tsc2200_ts,
+ //&tsc2200_ts,
&blueangel_lcd,
&blueangel_udc,
&blueangel_backup_batt,
#ifdef CONFIG_MACH_BLUEANGEL_BACKLIGHT
&blueangel_bl,
#endif
- &blueangel_asic3_keys,
- &blueangel_leds,
+ &pasic3,
+ &blueangel_gpio_keys,
&blueangel_pcmcia,
&blueangel_leds_pdev,
+ &blueangel_bt,
+ &blueangel_irda,
};
@@ -395,6 +601,7 @@
},
.bus_shift=1,
.irq_base = HTCBLUEANGEL_ASIC3_IRQ_BASE,
+ .gpio_base = HTCBLUEANGEL_ASIC3_GPIO_BASE,
.child_devs = blueangel_asic3_devices,
.num_child_devs = ARRAY_SIZE(blueangel_asic3_devices),
@@ -442,24 +649,6 @@
.id = -1,
};
-/*
- * GPIO buttons
- */
-static struct gpio_keys_button blueangel_button_table[] = {
- { KEY_POWER, GPIO_NR_BLUEANGEL_POWER_BUTTON_N, 1 },
-};
-
-static struct gpio_keys_platform_data blueangel_pxa_keys_data = {
- .buttons = blueangel_button_table,
- .nbuttons = ARRAY_SIZE(blueangel_button_table),
-};
-
-static struct platform_device blueangel_pxa_keys = {
- .name = "gpio-keys",
- .dev = {
- .platform_data = &blueangel_pxa_keys_data,
- },
-};
/*
*
@@ -467,9 +656,8 @@
static struct platform_device *devices[] __initdata = {
&blueangel_asic3,
- &blueangel_led,
&blueangel_tsc2200,
- &blueangel_pxa_keys,
+ &blueangel_flash,
};
static void __init blueangel_init(void)
Index: arch/arm/mach-pxa/htcblueangel/blueangel_tsc2200.c
===================================================================
RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/htcblueangel/blueangel_tsc2200.c,v
retrieving revision 1.9
diff -u -r1.9 blueangel_tsc2200.c
--- arch/arm/mach-pxa/htcblueangel/blueangel_tsc2200.c 18 Jul 2007 13:21:03 -0000 1.9
+++ arch/arm/mach-pxa/htcblueangel/blueangel_tsc2200.c 21 Feb 2008 20:11:07 -0000
@@ -95,6 +95,10 @@
.irq = IRQ_NR_BLUEANGEL_TSC2200_KB,
};
+struct tsc2200_ts_platform_info blueangel_tsc2200_ts = {
+ .irq = IRQ_NR_BLUEANGEL_TSC2200_TS,
+};
+
static struct tsc2200_platform_info blueangel_tsc2200_info = {
// Various callbacks to deal with the ssp
@@ -104,6 +108,7 @@
// Buttons and touchscreen data that this chip supplies on the blueangel
.buttons_info = &blueangel_tsc2200_buttons,
+ .touchscreen_info = &blueangel_tsc2200_ts,
};
struct platform_device blueangel_tsc2200 = {
Index: drivers/input/touchscreen/Makefile
===================================================================
RCS file: /cvs/linux/kernel26/drivers/input/touchscreen/Makefile,v
retrieving revision 1.21
diff -u -r1.21 Makefile
--- drivers/input/touchscreen/Makefile 17 Jul 2007 17:18:36 -0000 1.21
+++ drivers/input/touchscreen/Makefile 21 Feb 2008 20:11:12 -0000
@@ -41,5 +41,5 @@
obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o
obj-$(CONFIG_TOUCHSCREEN_ASIC2) += asic2_ts.o
obj-$(CONFIG_TOUCHSCREEN_IPAQ_MICRO) += micro_ts.o
-#obj-$(CONFIG_TOUCHSCREEN_TSC2200) += tsc2200_ts.o
+obj-$(CONFIG_TOUCHSCREEN_TSC2200) += tsc2200_ts.o
obj-$(CONFIG_TOUCHSCREEN_ADC) += ts-adc.o
Index: drivers/mfd/tsc2200.c
===================================================================
RCS file: /cvs/linux/kernel26/drivers/mfd/tsc2200.c,v
retrieving revision 1.10
diff -u -r1.10 tsc2200.c
--- drivers/mfd/tsc2200.c 18 Jul 2007 13:07:17 -0000 1.10
+++ drivers/mfd/tsc2200.c 21 Feb 2008 20:11:13 -0000
@@ -134,36 +134,38 @@
kfree (devdata->buttons_dev);
}
-static void tsc2200_register_adc_device(struct device *dev)
+static void tsc2200_register_ts_device(struct device *dev)
{
struct tsc2200_data *devdata = dev_get_drvdata(dev);
struct tsc2200_platform_info *platform_info = devdata->platform;
struct platform_device *sdev = kzalloc (sizeof (*sdev), GFP_KERNEL);
- struct tsc2200_adc_data *adc_devdata = kzalloc (sizeof (*adc_devdata), GFP_KERNEL);
+ struct tsc2200_ts_data *ts_devdata = kzalloc (sizeof (*ts_devdata), GFP_KERNEL);
// Prepare some platform info for the tsc2200 buttons
- sdev->name = "tsc2200-adc";
- sdev->dev.platform_data = adc_devdata;
+ sdev->name = "tsc2200-ts";
+ sdev->dev.platform_data = ts_devdata;
sdev->dev.parent = dev;
- adc_devdata->tsc2200_dev = dev;
- adc_devdata->platform_info = platform_info->touchscreen_info;
+ ts_devdata->tsc2200_dev = dev;
+ ts_devdata->platform_info = platform_info->touchscreen_info;
platform_device_register(sdev);
devdata->ts_dev = sdev;
}
-static void tsc2200_unregister_adc_device(struct device *dev)
+static void tsc2200_unregister_ts_device(struct device *dev)
{
struct tsc2200_data *devdata = dev_get_drvdata(dev);
+ //struct tsc2200_platform_info *platform_info = devdata->platform;
kfree (devdata->ts_dev->dev.platform_data);
kfree (devdata->ts_dev);
}
+
static int __init tsc2200_probe(struct platform_device *pdev)
{
struct tsc2200_data *devdata;
@@ -181,7 +183,7 @@
udelay(300);
// tsc2200_reset( dev );
- //udelay(300);
+ udelay(300);
printk("%s: SPI: cr0 %08x cr1 %08x sr: %08x it: %08x to: %08x ps: %08x\n",
__FUNCTION__,
@@ -192,8 +194,10 @@
tsc2200_register_button_device(&pdev->dev);
}
- // Register adc class device
- tsc2200_register_adc_device(&pdev->dev);
+ // Is there a touchscreen on this device?
+ if (devdata->platform->touchscreen_info) {
+ tsc2200_register_ts_device(&pdev->dev);
+ }
return 0;
}
@@ -210,7 +214,7 @@
// Is there a touchscreen on this device?
if (devdata->platform->touchscreen_info) {
- tsc2200_unregister_adc_device(&pdev->dev);
+ tsc2200_unregister_ts_device(&pdev->dev);
}
kfree(devdata);
Index: drivers/w1/masters/ds1wm.c
===================================================================
RCS file: /cvs/linux/kernel26/drivers/w1/masters/ds1wm.c,v
retrieving revision 1.20
diff -u -r1.20 ds1wm.c
--- drivers/w1/masters/ds1wm.c 8 May 2007 18:07:53 -0000 1.20
+++ drivers/w1/masters/ds1wm.c 21 Feb 2008 20:11:16 -0000
@@ -131,6 +131,11 @@
complete(ds1wm_data->read_complete);
}
+ if ((intr & DS1WM_INT_TSRE) && ds1wm_data->write_complete)
+ complete(ds1wm_data->write_complete);
+
+ intr = ds1wm_read_register(ds1wm_data, DS1WM_INT);
+
return IRQ_HANDLED;
}
Index: include/asm-arm/arch-pxa/htcblueangel.h
===================================================================
RCS file: /cvs/linux/kernel26/include/asm-arm/arch-pxa/htcblueangel.h,v
retrieving revision 1.1
diff -u -r1.1 htcblueangel.h
--- include/asm-arm/arch-pxa/htcblueangel.h 18 Apr 2007 14:13:42 -0000 1.1
+++ include/asm-arm/arch-pxa/htcblueangel.h 21 Feb 2008 20:11:18 -0000
@@ -1,3 +1,5 @@
#include <asm/arch/irqs.h>
+#include <linux/gpiodev2.h>
#define HTCBLUEANGEL_ASIC3_IRQ_BASE IRQ_BOARD_START
+#define HTCBLUEANGEL_ASIC3_GPIO_BASE GPIO_BASE_INCREMENT
Index: include/linux/mfd/tsc2200.h
===================================================================
RCS file: /cvs/linux/kernel26/include/linux/mfd/tsc2200.h,v
retrieving revision 1.6
diff -u -r1.6 tsc2200.h
--- include/linux/mfd/tsc2200.h 19 Apr 2007 22:53:58 -0000 1.6
+++ include/linux/mfd/tsc2200.h 21 Feb 2008 20:11:21 -0000
@@ -66,10 +66,10 @@
#define TSC2200_CTRLREG_ADC_AD_MASK (0x3<<10)
#define TSC2200_CTRLREG_ADC_PSM_TSC2200 (1<<15) // pen status mode on ctrlreg adc
#define TSC2200_CTRLREG_ADC_STS (1<<14) // stop continuous scanning.
-#define TSC2200_CTRLREG_ADC_AD3 (13) //
-#define TSC2200_CTRLREG_ADC_AD2 (12) //
-#define TSC2200_CTRLREG_ADC_AD1 (11) //
-#define TSC2200_CTRLREG_ADC_AD0 (10) //
+#define TSC2200_CTRLREG_ADC_AD3 (1<<13) //
+#define TSC2200_CTRLREG_ADC_AD2 (1<<12) //
+#define TSC2200_CTRLREG_ADC_AD1 (1<<11) //
+#define TSC2200_CTRLREG_ADC_AD0 (1<<10) //
#define TSC2200_CTRLREG_ADC_RES(x) ((x<<8) & TSC2200_CTRLREG_ADC_RES_MASK )
#define TSC2200_CTRLREG_ADC_RES_MASK (0x3<<8)
#define TSC2200_CTRLREG_ADC_RES_12BITP (0) // 12-bit ADC resolution (default)
@@ -153,6 +153,18 @@
* Definitions
*/
+struct tsc2200_ts_platform_info {
+ int irq;
+};
+
+struct tsc2200_ts_data {
+ struct tsc2200_ts_platform_info *platform_info;
+ struct device *tsc2200_dev;
+ struct timer_list timer;
+ struct input_dev *input_dev;
+};
+
+
struct tsc2200_data {
spinlock_t lock;
struct tsc2200_platform_info *platform;
@@ -172,7 +184,6 @@
};
-
/* Sensor pins available */
enum {
TSC2200_PIN_XPOS = 0,