2 * "MALATA" Cypress touchscreen driver
4 * Copyright (C) 2008 LocoLabs LLC
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
12 /* I2C slave address */
13 #define MALATA_I2C_SLAVE_ADDR 0x5c
16 #define MALATA_TOUCH_NUM 0x00
17 #define MALATA_TOUCH_OLD_NUM 0x01
18 #define MALATA_DATA_INFO 0x02
19 #define MALATA_POS_X0_LO 0x02 /* 16-bit register, MSB */
20 #define MALATA_POS_X0_HI 0x03 /* 16-bit register, LSB */
21 #define MALATA_POS_Y0_LO 0x04 /* 16-bit register, MSB */
22 #define MALATA_POS_Y0_HI 0x05 /* 16-bit register, LSB */
23 #define MALATA_POS_X1_LO 0x06 /* 16-bit register, MSB */
24 #define MALATA_POS_X1_HI 0x07 /* 16-bit register, LSB */
25 #define MALATA_POS_Y1_LO 0x08 /* 16-bit register, MSB */
26 #define MALATA_POS_Y1_HI 0x09 /* 16-bit register, LSB */
27 #define MALATA_POS_PRESSURE 0x12
28 #define MALATA_DATA_END 0x12
29 #define MALATA_POWER_MODE 0x14
30 #define MALATA_INT_MODE 0x15
31 #define MALATA_SPECOP 0x37
32 #define MALATA_EEPROM_READ 0x01
33 #define MALATA_EEPROM_WRITE 0x02
34 #define MALATA_EEPROM_READ_ADDR 0x38 /* 16-bit register */
35 #define MALATA_RESOLUTION_X_LO 0x3d /* 8-bit register */
36 #define MALATA_RESOLUTION_X_HI 0x01 /* 8-bit register */
37 #define MALATA_RESOLUTION_Y_LO 0x3f /* 8-bit register */
38 #define MALATA_RESOLUTION_Y_HI 0x01 /* 8-bit register */
42 #define MALATA_I2C_SLAVE_ADDR 0x34
45 #define MALATA_TOUCH-NUM 0x00
46 #define MALATA_DATA_INFO 0x00
47 #define MALATA_POS_X0_LO 0x03 /* 16-bit register, MSB */
48 #define MALATA_POS_X0_HI 0x04 /* 16-bit register, LSB */
49 #define MALATA_POS_Y0_LO 0x05 /* 16-bit register, MSB */
50 #define MALATA_POS_Y0_HI 0x06 /* 16-bit register, LSB */
51 #define MALATA_POS_X1_LO 0x09 /* 16-bit register, MSB */
52 #define MALATA_POS_X1_HI 0x0a /* 16-bit register, LSB */
53 #define MALATA_POS_Y1_LO 0x0b /* 16-bit register, MSB */
54 #define MALATA_POS_Y1_HI 0x0c /* 16-bit register, LSB */
55 #define MALATA_DATA_END 0x0c
60 #define MALATA_IRQ_PERIOD (26 * 1000000) /* ns delay between interrupts */
63 struct i2c_client *client;
64 struct workqueue_struct *workq;
65 struct input_dev *input;