diff options
-rw-r--r-- | drivers/input/touchscreen/ar1021_i2c.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/ar1021_i2c.c b/drivers/input/touchscreen/ar1021_i2c.c index 1a94d8bfec54..21c74ee59341 100644 --- a/drivers/input/touchscreen/ar1021_i2c.c +++ b/drivers/input/touchscreen/ar1021_i2c.c | |||
@@ -18,6 +18,10 @@ | |||
18 | #define AR1021_MAX_X 4095 | 18 | #define AR1021_MAX_X 4095 |
19 | #define AR1021_MAX_Y 4095 | 19 | #define AR1021_MAX_Y 4095 |
20 | 20 | ||
21 | #define AR1021_CMD 0x55 | ||
22 | |||
23 | #define AR1021_CMD_ENABLE_TOUCH 0x12 | ||
24 | |||
21 | struct ar1021_i2c { | 25 | struct ar1021_i2c { |
22 | struct i2c_client *client; | 26 | struct i2c_client *client; |
23 | struct input_dev *input; | 27 | struct input_dev *input; |
@@ -56,8 +60,19 @@ out: | |||
56 | 60 | ||
57 | static int ar1021_i2c_open(struct input_dev *dev) | 61 | static int ar1021_i2c_open(struct input_dev *dev) |
58 | { | 62 | { |
63 | static const u8 cmd_enable_touch[] = { | ||
64 | AR1021_CMD, | ||
65 | 0x01, /* number of bytes after this */ | ||
66 | AR1021_CMD_ENABLE_TOUCH | ||
67 | }; | ||
59 | struct ar1021_i2c *ar1021 = input_get_drvdata(dev); | 68 | struct ar1021_i2c *ar1021 = input_get_drvdata(dev); |
60 | struct i2c_client *client = ar1021->client; | 69 | struct i2c_client *client = ar1021->client; |
70 | int error; | ||
71 | |||
72 | error = i2c_master_send(ar1021->client, cmd_enable_touch, | ||
73 | sizeof(cmd_enable_touch)); | ||
74 | if (error < 0) | ||
75 | return error; | ||
61 | 76 | ||
62 | enable_irq(client->irq); | 77 | enable_irq(client->irq); |
63 | 78 | ||