Skip to content
Snippets Groups Projects
Commit 27aced19 authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Dmitry Torokhov
Browse files
parent 3bdd21c6
No related branches found
No related tags found
No related merge requests found
......@@ -22,6 +22,8 @@ properties:
const: 0x2a
interrupts:
maxItems: 1
reset-gpios:
maxItems: 1
touchscreen-size-x: true
touchscreen-size-y: true
touchscreen-inverted-x: true
......
......@@ -8,7 +8,9 @@
*/
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/input/mt.h>
......@@ -30,6 +32,9 @@
#define EXC3000_TIMEOUT_MS 100
#define EXC3000_RESET_MS 10
#define EXC3000_READY_MS 100
static const struct i2c_device_id exc3000_id[];
struct eeti_dev_info {
......@@ -63,6 +68,7 @@ struct exc3000_data {
const struct eeti_dev_info *info;
struct input_dev *input;
struct touchscreen_properties prop;
struct gpio_desc *reset;
struct timer_list timer;
u8 buf[2 * EXC3000_LEN_FRAME];
};
......@@ -204,6 +210,17 @@ static int exc3000_probe(struct i2c_client *client)
}
timer_setup(&data->timer, exc3000_timer, 0);
data->reset = devm_gpiod_get_optional(&client->dev, "reset",
GPIOD_OUT_HIGH);
if (IS_ERR(data->reset))
return PTR_ERR(data->reset);
if (data->reset) {
msleep(EXC3000_RESET_MS);
gpiod_set_value_cansleep(data->reset, 0);
msleep(EXC3000_READY_MS);
}
input = devm_input_allocate_device(&client->dev);
if (!input)
return -ENOMEM;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment