|
@@ -23,6 +23,9 @@
|
|
|
|
|
|
#include <linux/dmi.h>
|
|
|
#include <linux/i2c.h>
|
|
|
+#include <linux/i2c/atmel_mxt_ts.h>
|
|
|
+#include <linux/input.h>
|
|
|
+#include <linux/interrupt.h>
|
|
|
#include <linux/module.h>
|
|
|
|
|
|
#define ATMEL_TP_I2C_ADDR 0x4b
|
|
@@ -67,15 +70,49 @@ static struct i2c_board_info __initdata tsl2563_als_device = {
|
|
|
I2C_BOARD_INFO("tsl2563", TAOS_ALS_I2C_ADDR),
|
|
|
};
|
|
|
|
|
|
+static struct mxt_platform_data atmel_224s_tp_platform_data = {
|
|
|
+ .x_line = 18,
|
|
|
+ .y_line = 12,
|
|
|
+ .x_size = 102*20,
|
|
|
+ .y_size = 68*20,
|
|
|
+ .blen = 0x80, /* Gain setting is in upper 4 bits */
|
|
|
+ .threshold = 0x32,
|
|
|
+ .voltage = 0, /* 3.3V */
|
|
|
+ .orient = MXT_VERTICAL_FLIP,
|
|
|
+ .irqflags = IRQF_TRIGGER_FALLING,
|
|
|
+ .is_tp = true,
|
|
|
+ .key_map = { KEY_RESERVED,
|
|
|
+ KEY_RESERVED,
|
|
|
+ KEY_RESERVED,
|
|
|
+ BTN_LEFT },
|
|
|
+ .config = NULL,
|
|
|
+ .config_length = 0,
|
|
|
+};
|
|
|
+
|
|
|
static struct i2c_board_info __initdata atmel_224s_tp_device = {
|
|
|
I2C_BOARD_INFO("atmel_mxt_tp", ATMEL_TP_I2C_ADDR),
|
|
|
- .platform_data = NULL,
|
|
|
+ .platform_data = &atmel_224s_tp_platform_data,
|
|
|
.flags = I2C_CLIENT_WAKE,
|
|
|
};
|
|
|
|
|
|
+static struct mxt_platform_data atmel_1664s_platform_data = {
|
|
|
+ .x_line = 32,
|
|
|
+ .y_line = 50,
|
|
|
+ .x_size = 1700,
|
|
|
+ .y_size = 2560,
|
|
|
+ .blen = 0x89, /* Gain setting is in upper 4 bits */
|
|
|
+ .threshold = 0x28,
|
|
|
+ .voltage = 0, /* 3.3V */
|
|
|
+ .orient = MXT_ROTATED_90_COUNTER,
|
|
|
+ .irqflags = IRQF_TRIGGER_FALLING,
|
|
|
+ .is_tp = false,
|
|
|
+ .config = NULL,
|
|
|
+ .config_length = 0,
|
|
|
+};
|
|
|
+
|
|
|
static struct i2c_board_info __initdata atmel_1664s_device = {
|
|
|
I2C_BOARD_INFO("atmel_mxt_ts", ATMEL_TS_I2C_ADDR),
|
|
|
- .platform_data = NULL,
|
|
|
+ .platform_data = &atmel_1664s_platform_data,
|
|
|
.flags = I2C_CLIENT_WAKE,
|
|
|
};
|
|
|
|