[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210418210104.2876-7-alistair@alistair23.me>
Date: Mon, 19 Apr 2021 07:01:02 +1000
From: Alistair Francis <alistair@...stair23.me>
To: dmitry.torokhov@...il.com, linux-input@...r.kernel.org,
linux-imx@....com, kernel@...gutronix.de
Cc: linux-kernel@...r.kernel.org, alistair23@...il.com,
Alistair Francis <alistair@...stair23.me>
Subject: [PATCH v5 7/9] Input: wacom_i2c - Add support for vdd regulator
Add support for a VDD regulator. This allows the kernel to prove the
Wacom-I2C device on the rM2.
Signed-off-by: Alistair Francis <alistair@...stair23.me>
---
drivers/input/touchscreen/wacom_i2c.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/input/touchscreen/wacom_i2c.c b/drivers/input/touchscreen/wacom_i2c.c
index 26881149d509..a5963d9e1194 100644
--- a/drivers/input/touchscreen/wacom_i2c.c
+++ b/drivers/input/touchscreen/wacom_i2c.c
@@ -13,6 +13,7 @@
#include <linux/irq.h>
#include <linux/input/touchscreen.h>
#include <linux/interrupt.h>
+#include <linux/regulator/consumer.h>
#include <linux/reset.h>
#include <linux/of.h>
#include <asm/unaligned.h>
@@ -58,6 +59,7 @@ struct wacom_i2c {
struct i2c_client *client;
struct input_dev *input;
struct touchscreen_properties props;
+ struct regulator *vdd;
u8 data[WACOM_QUERY_SIZE];
bool prox;
int tool;
@@ -221,6 +223,20 @@ static int wacom_i2c_probe(struct i2c_client *client,
goto err_free_mem;
}
+ wac_i2c->vdd = regulator_get(&client->dev, "vdd");
+ if (IS_ERR(wac_i2c->vdd)) {
+ error = PTR_ERR(wac_i2c->vdd);
+ kfree(wac_i2c);
+ return error;
+ }
+
+ error = regulator_enable(wac_i2c->vdd);
+ if (error) {
+ regulator_put(wac_i2c->vdd);
+ kfree(wac_i2c);
+ return error;
+ }
+
wac_i2c->client = client;
wac_i2c->input = input;
@@ -277,6 +293,8 @@ static int wacom_i2c_probe(struct i2c_client *client,
err_free_irq:
free_irq(client->irq, wac_i2c);
err_free_mem:
+ regulator_disable(wac_i2c->vdd);
+ regulator_put(wac_i2c->vdd);
input_free_device(input);
kfree(wac_i2c);
--
2.31.1
Powered by blists - more mailing lists