diff options
| -rw-r--r-- | drivers/platform/x86/chromeos_laptop.c | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/drivers/platform/x86/chromeos_laptop.c b/drivers/platform/x86/chromeos_laptop.c index 93d66809355a..3e5b4497a1d0 100644 --- a/drivers/platform/x86/chromeos_laptop.c +++ b/drivers/platform/x86/chromeos_laptop.c | |||
| @@ -23,6 +23,9 @@ | |||
| 23 | 23 | ||
| 24 | #include <linux/dmi.h> | 24 | #include <linux/dmi.h> |
| 25 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
| 26 | #include <linux/i2c/atmel_mxt_ts.h> | ||
| 27 | #include <linux/input.h> | ||
| 28 | #include <linux/interrupt.h> | ||
| 26 | #include <linux/module.h> | 29 | #include <linux/module.h> |
| 27 | 30 | ||
| 28 | #define ATMEL_TP_I2C_ADDR 0x4b | 31 | #define ATMEL_TP_I2C_ADDR 0x4b |
| @@ -67,15 +70,49 @@ static struct i2c_board_info __initdata tsl2563_als_device = { | |||
| 67 | I2C_BOARD_INFO("tsl2563", TAOS_ALS_I2C_ADDR), | 70 | I2C_BOARD_INFO("tsl2563", TAOS_ALS_I2C_ADDR), |
| 68 | }; | 71 | }; |
| 69 | 72 | ||
| 73 | static struct mxt_platform_data atmel_224s_tp_platform_data = { | ||
| 74 | .x_line = 18, | ||
| 75 | .y_line = 12, | ||
| 76 | .x_size = 102*20, | ||
| 77 | .y_size = 68*20, | ||
| 78 | .blen = 0x80, /* Gain setting is in upper 4 bits */ | ||
| 79 | .threshold = 0x32, | ||
| 80 | .voltage = 0, /* 3.3V */ | ||
| 81 | .orient = MXT_VERTICAL_FLIP, | ||
| 82 | .irqflags = IRQF_TRIGGER_FALLING, | ||
| 83 | .is_tp = true, | ||
| 84 | .key_map = { KEY_RESERVED, | ||
| 85 | KEY_RESERVED, | ||
| 86 | KEY_RESERVED, | ||
| 87 | BTN_LEFT }, | ||
| 88 | .config = NULL, | ||
| 89 | .config_length = 0, | ||
| 90 | }; | ||
| 91 | |||
| 70 | static struct i2c_board_info __initdata atmel_224s_tp_device = { | 92 | static struct i2c_board_info __initdata atmel_224s_tp_device = { |
| 71 | I2C_BOARD_INFO("atmel_mxt_tp", ATMEL_TP_I2C_ADDR), | 93 | I2C_BOARD_INFO("atmel_mxt_tp", ATMEL_TP_I2C_ADDR), |
| 72 | .platform_data = NULL, | 94 | .platform_data = &atmel_224s_tp_platform_data, |
| 73 | .flags = I2C_CLIENT_WAKE, | 95 | .flags = I2C_CLIENT_WAKE, |
| 74 | }; | 96 | }; |
| 75 | 97 | ||
| 98 | static struct mxt_platform_data atmel_1664s_platform_data = { | ||
| 99 | .x_line = 32, | ||
| 100 | .y_line = 50, | ||
| 101 | .x_size = 1700, | ||
| 102 | .y_size = 2560, | ||
| 103 | .blen = 0x89, /* Gain setting is in upper 4 bits */ | ||
| 104 | .threshold = 0x28, | ||
| 105 | .voltage = 0, /* 3.3V */ | ||
| 106 | .orient = MXT_ROTATED_90_COUNTER, | ||
| 107 | .irqflags = IRQF_TRIGGER_FALLING, | ||
| 108 | .is_tp = false, | ||
| 109 | .config = NULL, | ||
| 110 | .config_length = 0, | ||
| 111 | }; | ||
| 112 | |||
| 76 | static struct i2c_board_info __initdata atmel_1664s_device = { | 113 | static struct i2c_board_info __initdata atmel_1664s_device = { |
| 77 | I2C_BOARD_INFO("atmel_mxt_ts", ATMEL_TS_I2C_ADDR), | 114 | I2C_BOARD_INFO("atmel_mxt_ts", ATMEL_TS_I2C_ADDR), |
| 78 | .platform_data = NULL, | 115 | .platform_data = &atmel_1664s_platform_data, |
| 79 | .flags = I2C_CLIENT_WAKE, | 116 | .flags = I2C_CLIENT_WAKE, |
| 80 | }; | 117 | }; |
| 81 | 118 | ||
