diff options
-rw-r--r-- | drivers/platform/chrome/chromeos_laptop.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/platform/chrome/chromeos_laptop.c b/drivers/platform/chrome/chromeos_laptop.c index e5015dfaa81e..1191c1a3a0cd 100644 --- a/drivers/platform/chrome/chromeos_laptop.c +++ b/drivers/platform/chrome/chromeos_laptop.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/platform_data/atmel_mxt_ts.h> | 11 | #include <linux/platform_data/atmel_mxt_ts.h> |
12 | #include <linux/input.h> | 12 | #include <linux/input.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/ioport.h> | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
16 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
@@ -42,7 +43,11 @@ enum i2c_adapter_type { | |||
42 | struct i2c_peripheral { | 43 | struct i2c_peripheral { |
43 | struct i2c_board_info board_info; | 44 | struct i2c_board_info board_info; |
44 | unsigned short alt_addr; | 45 | unsigned short alt_addr; |
46 | |||
45 | const char *dmi_name; | 47 | const char *dmi_name; |
48 | unsigned long irqflags; | ||
49 | struct resource irq_resource; | ||
50 | |||
46 | enum i2c_adapter_type type; | 51 | enum i2c_adapter_type type; |
47 | u32 pci_devid; | 52 | u32 pci_devid; |
48 | 53 | ||
@@ -215,10 +220,6 @@ static struct chromeos_laptop samsung_series_5 = { | |||
215 | }, | 220 | }, |
216 | }; | 221 | }; |
217 | 222 | ||
218 | static struct mxt_platform_data atmel_1664s_platform_data = { | ||
219 | .irqflags = IRQF_TRIGGER_FALLING, | ||
220 | }; | ||
221 | |||
222 | static int chromebook_pixel_tp_keys[] = { | 223 | static int chromebook_pixel_tp_keys[] = { |
223 | KEY_RESERVED, | 224 | KEY_RESERVED, |
224 | KEY_RESERVED, | 225 | KEY_RESERVED, |
@@ -229,7 +230,6 @@ static int chromebook_pixel_tp_keys[] = { | |||
229 | }; | 230 | }; |
230 | 231 | ||
231 | static struct mxt_platform_data chromebook_pixel_tp_platform_data = { | 232 | static struct mxt_platform_data chromebook_pixel_tp_platform_data = { |
232 | .irqflags = IRQF_TRIGGER_FALLING, | ||
233 | .t19_num_keys = ARRAY_SIZE(chromebook_pixel_tp_keys), | 233 | .t19_num_keys = ARRAY_SIZE(chromebook_pixel_tp_keys), |
234 | .t19_keymap = chromebook_pixel_tp_keys, | 234 | .t19_keymap = chromebook_pixel_tp_keys, |
235 | }; | 235 | }; |
@@ -241,10 +241,10 @@ static struct chromeos_laptop chromebook_pixel = { | |||
241 | .board_info = { | 241 | .board_info = { |
242 | I2C_BOARD_INFO("atmel_mxt_ts", | 242 | I2C_BOARD_INFO("atmel_mxt_ts", |
243 | ATMEL_TS_I2C_ADDR), | 243 | ATMEL_TS_I2C_ADDR), |
244 | .platform_data = &atmel_1664s_platform_data, | ||
245 | .flags = I2C_CLIENT_WAKE, | 244 | .flags = I2C_CLIENT_WAKE, |
246 | }, | 245 | }, |
247 | .dmi_name = "touchscreen", | 246 | .dmi_name = "touchscreen", |
247 | .irqflags = IRQF_TRIGGER_FALLING, | ||
248 | .type = I2C_ADAPTER_PANEL, | 248 | .type = I2C_ADAPTER_PANEL, |
249 | .alt_addr = ATMEL_TS_I2C_BL_ADDR, | 249 | .alt_addr = ATMEL_TS_I2C_BL_ADDR, |
250 | }, | 250 | }, |
@@ -258,6 +258,7 @@ static struct chromeos_laptop chromebook_pixel = { | |||
258 | .flags = I2C_CLIENT_WAKE, | 258 | .flags = I2C_CLIENT_WAKE, |
259 | }, | 259 | }, |
260 | .dmi_name = "trackpad", | 260 | .dmi_name = "trackpad", |
261 | .irqflags = IRQF_TRIGGER_FALLING, | ||
261 | .type = I2C_ADAPTER_VGADDC, | 262 | .type = I2C_ADAPTER_VGADDC, |
262 | .alt_addr = ATMEL_TP_I2C_BL_ADDR, | 263 | .alt_addr = ATMEL_TP_I2C_BL_ADDR, |
263 | }, | 264 | }, |
@@ -356,10 +357,10 @@ static struct chromeos_laptop acer_c720 = { | |||
356 | .board_info = { | 357 | .board_info = { |
357 | I2C_BOARD_INFO("atmel_mxt_ts", | 358 | I2C_BOARD_INFO("atmel_mxt_ts", |
358 | ATMEL_TS_I2C_ADDR), | 359 | ATMEL_TS_I2C_ADDR), |
359 | .platform_data = &atmel_1664s_platform_data, | ||
360 | .flags = I2C_CLIENT_WAKE, | 360 | .flags = I2C_CLIENT_WAKE, |
361 | }, | 361 | }, |
362 | .dmi_name = "touchscreen", | 362 | .dmi_name = "touchscreen", |
363 | .irqflags = IRQF_TRIGGER_FALLING, | ||
363 | .type = I2C_ADAPTER_DESIGNWARE, | 364 | .type = I2C_ADAPTER_DESIGNWARE, |
364 | .pci_devid = PCI_DEVID(0, PCI_DEVFN(0x15, 0x2)), | 365 | .pci_devid = PCI_DEVID(0, PCI_DEVFN(0x15, 0x2)), |
365 | .alt_addr = ATMEL_TS_I2C_BL_ADDR, | 366 | .alt_addr = ATMEL_TS_I2C_BL_ADDR, |
@@ -558,6 +559,12 @@ chromeos_laptop_prepare(const struct dmi_system_id *id) | |||
558 | irq = chromeos_laptop_get_irq_from_dmi(i2c_dev->dmi_name); | 559 | irq = chromeos_laptop_get_irq_from_dmi(i2c_dev->dmi_name); |
559 | if (irq < 0) | 560 | if (irq < 0) |
560 | return ERR_PTR(irq); | 561 | return ERR_PTR(irq); |
562 | |||
563 | i2c_dev->irq_resource = (struct resource) | ||
564 | DEFINE_RES_NAMED(irq, 1, NULL, | ||
565 | IORESOURCE_IRQ | i2c_dev->irqflags); | ||
566 | i2c_dev->board_info.resources = &i2c_dev->irq_resource; | ||
567 | i2c_dev->board_info.num_resources = 1; | ||
561 | } | 568 | } |
562 | 569 | ||
563 | return cros_laptop; | 570 | return cros_laptop; |