aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/touchscreen/ar1021_i2c.c15
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
21struct ar1021_i2c { 25struct 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
57static int ar1021_i2c_open(struct input_dev *dev) 61static 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