public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] Add support for Wacom W9000-series penabled touchscreens
@ 2026-03-07 18:15 Hendrik Noack
  2026-03-07 18:15 ` [PATCH v4 1/2] dt-bindings: Input: Add " Hendrik Noack
  2026-03-07 18:15 ` [PATCH v4 2/2] Input: Add support for " Hendrik Noack
  0 siblings, 2 replies; 13+ messages in thread
From: Hendrik Noack @ 2026-03-07 18:15 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Hendrik Noack, Ferass El Hafidi, linux-input, devicetree,
	linux-kernel

Add devicetree bindings and a driver for the Wacom W9000-series penabled
touchscreens.

The driver currently only contains the information for the W9002 and
W9007A, which I or Ferass could test on devices. It should also work with
other chips, such as W9001 or W9010. However, I couldn't test it on these
and the message length would need to be added.

The pen-inserted-gpios is used to get if the pen is inserted in the device
or not. It's also used as an interrupt so that the power state of the chip
itself can be controlled depending on a change of the insertion state of
the pen.

Signed-off-by: Hendrik Noack <hendrik-noack@gmx.de>
---
Changes in v2:
- remove pdct-gpios, as it's unnecessary
- fix devicetree example
- adopt to kernel coding style

---
Changes in v3:
- fix missing include (thanks lkp@intel.com)

---
Changes in v4:
- adopt to feedback (thanks dmitry.torokhov@gmail.com)
- add W9002 support (thanks funderscore@postmarketos.org)
- add reset-gpios, necessary for some chips

---
Hendrik Noack (2):
  dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  Input: Add support for Wacom W9000-series penabled touchscreens

 .../input/touchscreen/wacom,w9007a-lt03.yaml  |  86 +++
 drivers/input/touchscreen/Kconfig             |  12 +
 drivers/input/touchscreen/Makefile            |   1 +
 drivers/input/touchscreen/wacom_w9000.c       | 510 ++++++++++++++++++
 4 files changed, 609 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml
 create mode 100644 drivers/input/touchscreen/wacom_w9000.c

-- 
2.43.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-07 18:15 [PATCH v4 0/2] Add support for Wacom W9000-series penabled touchscreens Hendrik Noack
@ 2026-03-07 18:15 ` Hendrik Noack
  2026-03-08  9:15   ` Krzysztof Kozlowski
                     ` (2 more replies)
  2026-03-07 18:15 ` [PATCH v4 2/2] Input: Add support for " Hendrik Noack
  1 sibling, 3 replies; 13+ messages in thread
From: Hendrik Noack @ 2026-03-07 18:15 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Hendrik Noack, Ferass El Hafidi, linux-input, devicetree,
	linux-kernel

Add bindings for Wacom W9002 and two Wacom W9007 variants which can be
found in tablets.

Co-developed-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Hendrik Noack <hendrik-noack@gmx.de>
---
 .../input/touchscreen/wacom,w9007a-lt03.yaml  | 86 +++++++++++++++++++
 1 file changed, 86 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml

diff --git a/Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml b/Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml
new file mode 100644
index 000000000000..feb87f5db39d
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/wacom,w9007a-lt03.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Wacom W9000-series penabled I2C touchscreen
+
+maintainers:
+  - Hendrik Noack <hendrik-noack@gmx.de>
+
+description: |
+  The W9000-series are penabled touchscreen controllers by Wacom.
+
+  The firmware of chips between devices can differ and with it also
+  how the chips behaves.
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+properties:
+  compatible:
+    enum:
+      - wacom,w9002
+      - wacom,w9007a-lt03
+      - wacom,w9007a-v1
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply:
+    description:
+      Optional regulator for the VDD digital voltage.
+
+  flash-mode-gpios:
+    maxItems: 1
+    description:
+      Optional GPIO specifier for the touchscreen's flash-mode pin.
+
+  pen-inserted-gpios:
+    maxItems: 1
+    description:
+      Optional GPIO specifier for the touchscreen's pen-insert pin.
+
+  reset-gpios:
+    maxItems: 1
+    description:
+      Optional GPIO specifier for the touchscreen's reset pin.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - vdd-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        digitizer@56 {
+            compatible = "wacom,w9007a-lt03";
+            reg = <0x56>;
+            interrupt-parent = <&gpd1>;
+            interrupts = <1 IRQ_TYPE_EDGE_RISING>;
+
+            vdd-supply = <&stylus_reg>;
+
+            flash-mode-gpios = <&gpd1 3 GPIO_ACTIVE_HIGH>;
+            pen-inserted-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>;
+            reset-gpios = <&gpx0 1 GPIO_ACTIVE_LOW>;
+
+            touchscreen-x-mm = <216>;
+            touchscreen-y-mm = <135>;
+            touchscreen-inverted-x;
+        };
+    };
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v4 2/2] Input: Add support for Wacom W9000-series penabled touchscreens
  2026-03-07 18:15 [PATCH v4 0/2] Add support for Wacom W9000-series penabled touchscreens Hendrik Noack
  2026-03-07 18:15 ` [PATCH v4 1/2] dt-bindings: Input: Add " Hendrik Noack
@ 2026-03-07 18:15 ` Hendrik Noack
  1 sibling, 0 replies; 13+ messages in thread
From: Hendrik Noack @ 2026-03-07 18:15 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: Hendrik Noack, Ferass El Hafidi, linux-input, devicetree,
	linux-kernel

Add driver for Wacom W9002 and two Wacom W9007A variants. These are
penabled touchscreens supporting passive Wacom Pens and use I2C.

Co-developed-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Signed-off-by: Hendrik Noack <hendrik-noack@gmx.de>
---
 drivers/input/touchscreen/Kconfig       |  12 +
 drivers/input/touchscreen/Makefile      |   1 +
 drivers/input/touchscreen/wacom_w9000.c | 510 ++++++++++++++++++++++++
 3 files changed, 523 insertions(+)
 create mode 100644 drivers/input/touchscreen/wacom_w9000.c

diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index 7d5b72ee07fa..a28328fb7648 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -610,6 +610,18 @@ config TOUCHSCREEN_WACOM_I2C
 	  To compile this driver as a module, choose M here: the module
 	  will be called wacom_i2c.
 
+config TOUCHSCREEN_WACOM_W9000
+	tristate "Wacom W9000-series penabled touchscreen (I2C)"
+	depends on I2C
+	help
+	  Say Y here if you have a Wacom W9000-series penabled I2C touchscreen.
+	  This driver supports models W9002 and W9007A.
+
+	  If unsure, say N.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called wacom_w9000.
+
 config TOUCHSCREEN_LPC32XX
 	tristate "LPC32XX touchscreen controller"
 	depends on ARCH_LPC32XX
diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
index ab9abd151078..aa3915df83b2 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -102,6 +102,7 @@ tsc2007-$(CONFIG_TOUCHSCREEN_TSC2007_IIO)	+= tsc2007_iio.o
 obj-$(CONFIG_TOUCHSCREEN_TSC2007)	+= tsc2007.o
 obj-$(CONFIG_TOUCHSCREEN_WACOM_W8001)	+= wacom_w8001.o
 obj-$(CONFIG_TOUCHSCREEN_WACOM_I2C)	+= wacom_i2c.o
+obj-$(CONFIG_TOUCHSCREEN_WACOM_W9000)	+= wacom_w9000.o
 obj-$(CONFIG_TOUCHSCREEN_WDT87XX_I2C)	+= wdt87xx_i2c.o
 obj-$(CONFIG_TOUCHSCREEN_WM831X)	+= wm831x-ts.o
 obj-$(CONFIG_TOUCHSCREEN_WM97XX)	+= wm97xx-ts.o
diff --git a/drivers/input/touchscreen/wacom_w9000.c b/drivers/input/touchscreen/wacom_w9000.c
new file mode 100644
index 000000000000..3c7959a28ccb
--- /dev/null
+++ b/drivers/input/touchscreen/wacom_w9000.c
@@ -0,0 +1,510 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Wacom W9000-series penabled I2C touchscreen driver
+ *
+ * Copyright (c) 2026 Hendrik Noack <hendrik-noack@gmx.de>
+ *
+ * Partially based on vendor driver:
+ *	Copyright (C) 2012, Samsung Electronics Co. Ltd.
+ */
+
+#include <linux/delay.h>
+#include <linux/gpio/consumer.h>
+#include <linux/i2c.h>
+#include <linux/input.h>
+#include <linux/input/touchscreen.h>
+#include <linux/unaligned.h>
+
+/* Some chips have flaky firmware that requires many retries before responding. */
+#define CMD_QUERY_RETRIES	8
+
+/* Message length */
+#define CMD_QUERY_NUM_MAX	9
+#define MSG_COORD_NUM_MAX	12
+
+/* Commands */
+#define CMD_QUERY		0x2a
+
+struct wacom_w9000_variant {
+	const unsigned int cmd_query_num;
+	const unsigned int msg_coord_num;
+	const char *name;
+};
+
+struct wacom_w9000_data {
+	struct i2c_client *client;
+	struct input_dev *input_dev;
+	const struct wacom_w9000_variant *variant;
+	unsigned int fw_version;
+
+	struct touchscreen_properties prop;
+	unsigned int max_pressure;
+
+	struct regulator *regulator;
+
+	struct gpio_desc *flash_mode_gpio;
+	struct gpio_desc *pen_inserted_gpio;
+	struct gpio_desc *reset_gpio;
+
+	unsigned int irq;
+	unsigned int pen_insert_irq;
+
+	bool pen_inserted;
+	bool pen_proximity;
+};
+
+static int wacom_w9000_read(struct i2c_client *client, u8 command, int len, char *data)
+{
+	int error, res;
+	struct i2c_msg msg[] = {
+		{
+			.addr = client->addr,
+			.flags = 0,
+			.buf = &command,
+			.len = sizeof(command),
+		}, {
+			.addr = client->addr,
+			.flags = I2C_M_RD,
+			.buf = data,
+			.len = len,
+		}
+	};
+
+	res = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg));
+	if (res != ARRAY_SIZE(msg)) {
+		error = res < 0 ? res : -EIO;
+		dev_err(&client->dev, "%s: i2c transfer failed: %d (%d)\n", __func__, error, res);
+		return error;
+	}
+
+	return 0;
+}
+
+static int wacom_w9000_query(struct wacom_w9000_data *wacom_data)
+{
+	struct i2c_client *client = wacom_data->client;
+	struct device *dev = &wacom_data->client->dev;
+	int error;
+	int retry = 0;
+	u8 data[CMD_QUERY_NUM_MAX];
+
+	for (; retry < CMD_QUERY_RETRIES; retry++) {
+		error = wacom_w9000_read(client, CMD_QUERY, wacom_data->variant->cmd_query_num,
+					 data);
+
+		if (!error && (data[0] == 0x0f))
+			break;
+	}
+
+	if (error)
+		return error;
+
+	dev_dbg(dev, "query: %*ph, %d\n", wacom_data->variant->cmd_query_num, data, retry);
+
+	wacom_data->prop.max_x = get_unaligned_be16(&data[1]);
+	wacom_data->prop.max_y = get_unaligned_be16(&data[3]);
+	wacom_data->max_pressure = get_unaligned_be16(&data[5]);
+	wacom_data->fw_version = get_unaligned_be16(&data[7]);
+
+	dev_dbg(dev, "max_x:%d, max_y:%d, max_pressure:%d, fw:%#x", wacom_data->prop.max_x,
+		wacom_data->prop.max_y, wacom_data->max_pressure,
+		wacom_data->fw_version);
+
+	return 0;
+}
+
+static int wacom_w9000_power_on(struct wacom_w9000_data *wacom_data)
+{
+	int error;
+
+	error = regulator_enable(wacom_data->regulator);
+	if (error) {
+		dev_err(&wacom_data->client->dev, "Failed to enable regulators: %d\n", error);
+		return error;
+	}
+
+	msleep(200);
+
+	gpiod_set_value_cansleep(wacom_data->reset_gpio, 0);
+	enable_irq(wacom_data->irq);
+
+	return error;
+}
+
+static void wacom_w9000_power_off(struct wacom_w9000_data *wacom_data)
+{
+	disable_irq(wacom_data->irq);
+	gpiod_set_value_cansleep(wacom_data->reset_gpio, 1);
+	regulator_disable(wacom_data->regulator);
+}
+
+static void wacom_w9000_coord(struct wacom_w9000_data *wacom_data)
+{
+	struct i2c_client *client = wacom_data->client;
+	struct device *dev = &wacom_data->client->dev;
+	int error;
+	u8 data[MSG_COORD_NUM_MAX];
+	bool touch, rubber, side_button;
+	u16 x, y, pressure;
+	u8 distance = 0;
+
+	error = i2c_master_recv(client, data, wacom_data->variant->msg_coord_num);
+	if (error != wacom_data->variant->msg_coord_num) {
+		if (error >= 0)
+			error = -EIO;
+		dev_err(dev, "%s: i2c receive failed (%d)\n", __func__, error);
+		return;
+	}
+
+	dev_dbg(dev, "data: %*ph", wacom_data->variant->msg_coord_num, data);
+
+	if (data[0] & BIT(7)) {
+		wacom_data->pen_proximity = true;
+
+		touch = !!(data[0] & BIT(4));
+		side_button = !!(data[0] & BIT(5));
+		rubber = !!(data[0] & BIT(6));
+
+		x = get_unaligned_be16(&data[1]);
+		y = get_unaligned_be16(&data[3]);
+		pressure = get_unaligned_be16(&data[5]);
+
+		if (wacom_data->variant->msg_coord_num > 7)
+			distance = data[7];
+
+		if (x > wacom_data->prop.max_x || y > wacom_data->prop.max_y) {
+			dev_warn(dev, "Coordinates out of range x=%d, y=%d", x, y);
+			return;
+		}
+
+		touchscreen_report_pos(wacom_data->input_dev, &wacom_data->prop, x, y, false);
+		input_report_abs(wacom_data->input_dev, ABS_PRESSURE, pressure);
+
+		if (wacom_data->variant->msg_coord_num > 7)
+			input_report_abs(wacom_data->input_dev, ABS_DISTANCE, distance);
+
+		input_report_key(wacom_data->input_dev, BTN_STYLUS, side_button);
+		input_report_key(wacom_data->input_dev, BTN_TOUCH, touch);
+		input_report_key(wacom_data->input_dev, BTN_TOOL_PEN, !rubber);
+		input_report_key(wacom_data->input_dev, BTN_TOOL_RUBBER, rubber);
+		input_sync(wacom_data->input_dev);
+	} else if (wacom_data->pen_proximity) {
+		input_report_abs(wacom_data->input_dev, ABS_PRESSURE, 0);
+
+		if (wacom_data->variant->msg_coord_num > 7)
+			input_report_abs(wacom_data->input_dev, ABS_DISTANCE, 255);
+
+		input_report_key(wacom_data->input_dev, BTN_STYLUS, 0);
+		input_report_key(wacom_data->input_dev, BTN_TOUCH, 0);
+		input_report_key(wacom_data->input_dev, BTN_TOOL_PEN, 0);
+		input_report_key(wacom_data->input_dev, BTN_TOOL_RUBBER, 0);
+		input_sync(wacom_data->input_dev);
+
+		wacom_data->pen_proximity = false;
+	}
+}
+
+static irqreturn_t wacom_w9000_interrupt(int irq, void *dev_id)
+{
+	struct wacom_w9000_data *wacom_data = dev_id;
+
+	wacom_w9000_coord(wacom_data);
+
+	return IRQ_HANDLED;
+}
+
+static irqreturn_t wacom_w9000_interrupt_pen_insert(int irq, void *dev_id)
+{
+	struct wacom_w9000_data *wacom_data = dev_id;
+	struct device *dev = &wacom_data->client->dev;
+	int error;
+	bool pen_inserted;
+
+	pen_inserted = gpiod_get_value_cansleep(wacom_data->pen_inserted_gpio);
+
+	input_report_switch(wacom_data->input_dev, SW_PEN_INSERTED, pen_inserted);
+	input_sync(wacom_data->input_dev);
+
+	if (!pen_inserted && wacom_data->pen_inserted) {
+		error = wacom_w9000_power_on(wacom_data);
+		if (error)
+			return IRQ_HANDLED;
+	} else if (pen_inserted && !wacom_data->pen_inserted) {
+		wacom_w9000_power_off(wacom_data);
+	}
+
+	dev_dbg(dev, "Pen inserted changed from %d to %d", wacom_data->pen_inserted, pen_inserted);
+
+	wacom_data->pen_inserted = pen_inserted;
+
+	return IRQ_HANDLED;
+}
+
+static int wacom_w9000_open(struct input_dev *dev)
+{
+	struct wacom_w9000_data *wacom_data = input_get_drvdata(dev);
+	int error;
+
+	if (wacom_data->pen_inserted_gpio) {
+		wacom_data->pen_inserted = gpiod_get_value_cansleep(wacom_data->pen_inserted_gpio);
+
+		input_report_switch(wacom_data->input_dev, SW_PEN_INSERTED,
+				    wacom_data->pen_inserted);
+		input_sync(wacom_data->input_dev);
+	}
+
+	if (!wacom_data->pen_inserted) {
+		error = wacom_w9000_power_on(wacom_data);
+		if (error)
+			return error;
+	}
+
+	if (wacom_data->pen_inserted_gpio)
+		enable_irq(wacom_data->pen_insert_irq);
+
+	return 0;
+}
+
+static void wacom_w9000_close(struct input_dev *dev)
+{
+	struct wacom_w9000_data *wacom_data = input_get_drvdata(dev);
+
+	if (wacom_data->pen_inserted_gpio)
+		disable_irq(wacom_data->pen_insert_irq);
+
+	if (!wacom_data->pen_inserted)
+		wacom_w9000_power_off(wacom_data);
+}
+
+static int wacom_w9000_probe(struct i2c_client *client)
+{
+	struct device *dev = &client->dev;
+	struct wacom_w9000_data *wacom_data;
+	struct input_dev *input_dev;
+	int error;
+	u32 val;
+
+	if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
+		dev_err(dev, "i2c_check_functionality error\n");
+		return -EIO;
+	}
+
+	wacom_data = devm_kzalloc(dev, sizeof(*wacom_data), GFP_KERNEL);
+	if (!wacom_data)
+		return -ENOMEM;
+
+	wacom_data->variant = i2c_get_match_data(client);
+
+	if (wacom_data->variant->cmd_query_num > CMD_QUERY_NUM_MAX ||
+	    wacom_data->variant->msg_coord_num > MSG_COORD_NUM_MAX) {
+		dev_err(dev, "Length of message for %s exceeds the maximum\n",
+			wacom_data->variant->name);
+		return -EINVAL;
+	}
+
+	if (wacom_data->variant->msg_coord_num < 7) {
+		dev_err(dev, "Length of coordinates message for %s too short\n",
+			wacom_data->variant->name);
+		return -EINVAL;
+	}
+
+	wacom_data->client = client;
+
+	input_dev = devm_input_allocate_device(dev);
+	if (!input_dev)
+		return -ENOMEM;
+
+	wacom_data->input_dev = input_dev;
+	input_set_drvdata(input_dev, wacom_data);
+
+	wacom_data->irq = client->irq;
+	i2c_set_clientdata(client, wacom_data);
+
+	wacom_data->regulator = devm_regulator_get(dev, "vdd");
+	if (IS_ERR(wacom_data->regulator))
+		return dev_err_probe(dev, PTR_ERR(wacom_data->regulator),
+				     "Failed to get regulators\n");
+
+	wacom_data->flash_mode_gpio = devm_gpiod_get_optional(dev, "flash-mode", GPIOD_OUT_LOW);
+	if (IS_ERR(wacom_data->flash_mode_gpio))
+		return dev_err_probe(dev, PTR_ERR(wacom_data->flash_mode_gpio),
+				     "Failed to get flash-mode gpio\n");
+
+	wacom_data->pen_inserted_gpio = devm_gpiod_get_optional(dev, "pen-inserted", GPIOD_IN);
+	if (IS_ERR(wacom_data->pen_inserted_gpio))
+		return dev_err_probe(dev, PTR_ERR(wacom_data->pen_inserted_gpio),
+				     "Failed to get pen-insert gpio\n");
+
+	wacom_data->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
+	if (IS_ERR(wacom_data->reset_gpio))
+		return dev_err_probe(dev, PTR_ERR(wacom_data->reset_gpio),
+				     "Failed to get reset gpio\n");
+
+	error = regulator_enable(wacom_data->regulator);
+	if (error)
+		return dev_err_probe(dev, error, "Failed to enable regulators\n");
+
+	msleep(200);
+
+	gpiod_set_value_cansleep(wacom_data->reset_gpio, 0);
+
+	error = wacom_w9000_query(wacom_data);
+
+	gpiod_set_value_cansleep(wacom_data->reset_gpio, 1);
+	regulator_disable(wacom_data->regulator);
+
+	if (error)
+		return dev_err_probe(dev, error, "Failed to query\n");
+
+	input_dev->name = wacom_data->variant->name;
+	input_dev->id.bustype = BUS_I2C;
+	input_dev->dev.parent = dev;
+	input_dev->id.vendor = 0x56a;
+	input_dev->id.version = wacom_data->fw_version;
+	input_dev->open = wacom_w9000_open;
+	input_dev->close = wacom_w9000_close;
+
+	input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
+	input_set_capability(input_dev, EV_KEY, BTN_TOOL_PEN);
+	input_set_capability(input_dev, EV_KEY, BTN_TOOL_RUBBER);
+	input_set_capability(input_dev, EV_KEY, BTN_STYLUS);
+
+	input_set_abs_params(input_dev, ABS_X, 0, wacom_data->prop.max_x, 4, 0);
+	input_set_abs_params(input_dev, ABS_Y, 0, wacom_data->prop.max_y, 4, 0);
+	input_set_abs_params(input_dev, ABS_PRESSURE, 0, wacom_data->max_pressure, 0, 0);
+
+	if (wacom_data->variant->msg_coord_num > 7)
+		input_set_abs_params(input_dev, ABS_DISTANCE, 0, 255, 0, 0);
+
+	touchscreen_parse_properties(input_dev, false, &wacom_data->prop);
+
+	dev_info(dev, "%s size X%uY%u\n", wacom_data->variant->name,
+		 wacom_data->prop.max_x, wacom_data->prop.max_y);
+
+	error = device_property_read_u32(dev, "touchscreen-x-mm", &val);
+	if (!error)
+		input_abs_set_res(input_dev, ABS_X, wacom_data->prop.max_x / val);
+	error = device_property_read_u32(dev, "touchscreen-y-mm", &val);
+	if (!error)
+		input_abs_set_res(input_dev, ABS_Y, wacom_data->prop.max_y / val);
+
+	error = devm_request_threaded_irq(dev, wacom_data->irq, NULL, wacom_w9000_interrupt,
+					  IRQF_ONESHOT | IRQF_NO_AUTOEN, client->name, wacom_data);
+	if (error)
+		return dev_err_probe(dev, error, "Failed to register interrupt\n");
+
+	if (wacom_data->pen_inserted_gpio) {
+		wacom_data->pen_insert_irq = gpiod_to_irq(wacom_data->pen_inserted_gpio);
+		error = devm_request_threaded_irq(dev, wacom_data->pen_insert_irq, NULL,
+						  wacom_w9000_interrupt_pen_insert, IRQF_ONESHOT |
+						  IRQF_NO_AUTOEN | IRQF_TRIGGER_RISING |
+						  IRQF_TRIGGER_FALLING, "wacom_pen_insert",
+						  wacom_data);
+		if (error)
+			return dev_err_probe(dev, error,
+					     "Failed to register pen-insert interrupt\n");
+
+		input_set_capability(input_dev, EV_SW, SW_PEN_INSERTED);
+	} else {
+		wacom_data->pen_inserted = false;
+	}
+
+	error = input_register_device(wacom_data->input_dev);
+	if (error)
+		return dev_err_probe(dev, error, "Failed to register input device\n");
+
+	return 0;
+}
+
+static int wacom_w9000_suspend(struct device *dev)
+{
+	struct i2c_client *client = to_i2c_client(dev);
+	struct wacom_w9000_data *wacom_data = i2c_get_clientdata(client);
+
+	guard(mutex)(&wacom_data->input_dev->mutex);
+
+	if (wacom_data->pen_inserted_gpio)
+		disable_irq(wacom_data->pen_insert_irq);
+
+	if (!wacom_data->pen_inserted)
+		wacom_w9000_power_off(wacom_data);
+
+	return 0;
+}
+
+static int wacom_w9000_resume(struct device *dev)
+{
+	struct i2c_client *client = to_i2c_client(dev);
+	struct wacom_w9000_data *wacom_data = i2c_get_clientdata(client);
+	int error = 0;
+
+	guard(mutex)(&wacom_data->input_dev->mutex);
+
+	if (wacom_data->pen_inserted_gpio) {
+		wacom_data->pen_inserted = gpiod_get_value_cansleep(wacom_data->pen_inserted_gpio);
+
+		input_report_switch(wacom_data->input_dev, SW_PEN_INSERTED,
+				    wacom_data->pen_inserted);
+		input_sync(wacom_data->input_dev);
+	}
+
+	if (!wacom_data->pen_inserted)
+		error = wacom_w9000_power_on(wacom_data);
+
+	if (wacom_data->pen_inserted_gpio)
+		enable_irq(wacom_data->pen_insert_irq);
+
+	return error;
+}
+
+static DEFINE_SIMPLE_DEV_PM_OPS(wacom_w9000_pm, wacom_w9000_suspend, wacom_w9000_resume);
+
+static const struct wacom_w9000_variant w9002 = {
+	.cmd_query_num  = 9,
+	.msg_coord_num  = 7,
+	.name = "Wacom W9002 Digitizer",
+};
+
+static const struct wacom_w9000_variant w9007a_lt03 = {
+	.cmd_query_num	= 9,
+	.msg_coord_num	= 8,
+	.name = "Wacom W9007A LT03 Digitizer",
+};
+
+static const struct wacom_w9000_variant w9007a_v1 = {
+	.cmd_query_num	= 9,
+	.msg_coord_num	= 12,
+	.name = "Wacom W9007A V1 Digitizer",
+};
+
+static const struct of_device_id wacom_w9000_of_match[] = {
+	{ .compatible = "wacom,w9002", .data = &w9002 },
+	{ .compatible = "wacom,w9007a-lt03", .data = &w9007a_lt03, },
+	{ .compatible = "wacom,w9007a-v1", .data = &w9007a_v1, },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, wacom_w9000_of_match);
+
+static const struct i2c_device_id wacom_w9000_id[] = {
+	{ .name = "w9002", .driver_data = (kernel_ulong_t)&w9002 },
+	{ .name = "w9007a-lt03", .driver_data = (kernel_ulong_t)&w9007a_lt03 },
+	{ .name = "w9007a-v1", .driver_data = (kernel_ulong_t)&w9007a_v1 },
+	{ }
+};
+MODULE_DEVICE_TABLE(i2c, wacom_w9000_id);
+
+static struct i2c_driver wacom_w9000_driver = {
+	.driver = {
+		.name	= "wacom_w9000",
+		.of_match_table = wacom_w9000_of_match,
+		.pm	= pm_sleep_ptr(&wacom_w9000_pm),
+	},
+	.probe		= wacom_w9000_probe,
+	.id_table	= wacom_w9000_id,
+};
+module_i2c_driver(wacom_w9000_driver);
+
+/* Module information */
+MODULE_AUTHOR("Hendrik Noack <hendrik-noack@gmx.de>");
+MODULE_DESCRIPTION("Wacom W9000-series penabled touchscreen driver");
+MODULE_LICENSE("GPL");
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-07 18:15 ` [PATCH v4 1/2] dt-bindings: Input: Add " Hendrik Noack
@ 2026-03-08  9:15   ` Krzysztof Kozlowski
  2026-03-09 12:54     ` Hendrik Noack
  2026-03-10 16:58   ` Krzysztof Kozlowski
  2026-03-10 17:29   ` Dmitry Torokhov
  2 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-08  9:15 UTC (permalink / raw)
  To: Hendrik Noack
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Ferass El Hafidi, linux-input, devicetree, linux-kernel

On Sat, Mar 07, 2026 at 07:15:32PM +0100, Hendrik Noack wrote:
> Add bindings for Wacom W9002 and two Wacom W9007 variants which can be
> found in tablets.
> 
> Co-developed-by: Ferass El Hafidi <funderscore@postmarketos.org>
> Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
> Signed-off-by: Hendrik Noack <hendrik-noack@gmx.de>
> ---

You received review and instruction what to do. Did you read it?

Your way of organizing your work makes it difficult for us. Look, try
yourself:

b4 diff '20260307181557.66927-2-hendrik-noack@gmx.de'
Checking for older revisions
Grabbing search results from lore.kernel.org
  Added from v3: 2 patches
---
Analyzing 16 messages in the thread
Preparing fake-am for v3: dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
ERROR: v3 series incomplete; unable to create a fake-am range
---
Could not create fake-am range for lower series v3


Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-08  9:15   ` Krzysztof Kozlowski
@ 2026-03-09 12:54     ` Hendrik Noack
  2026-03-09 12:56       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 13+ messages in thread
From: Hendrik Noack @ 2026-03-09 12:54 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Ferass El Hafidi, linux-input, devicetree, linux-kernel

Hello Krzysztof,

08.03.2026 10:15:35 Krzysztof Kozlowski <krzk@kernel.org>:

> You received review and instruction what to do. Did you read it?

I read the review of Dmitry and incorporated it into this version.

> Your way of organizing your work makes it difficult for us. Look, try
> yourself:
>
> b4 diff '20260307181557.66927-2-hendrik-noack@gmx.de'
> Checking for older revisions
> Grabbing search results from lore.kernel.org
>   Added from v3: 2 patches
> ---
> Analyzing 16 messages in the thread
> Preparing fake-am for v3: dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
> ERROR: v3 series incomplete; unable to create a fake-am range
> ---
> Could not create fake-am range for lower series v3
>
>
> Best regards,
> Krzysztof

The b4 diff error might happen because git didn't add the v3 label on
the 2/2 patch of v3. First running b4 diff on v3 with:
b4 diff '20251205152858.14415-2-hendrik-noack@gmx.de
resulted in a working diff on v4:

b4 diff '20260307181557.66927-2-hendrik-noack@gmx.de'
Grabbing thread from lore.kernel.org/all/20260307181557.66927-2-hendrik-noack@gmx.de/t.mbox.gz
Checking for older revisions
Grabbing search results from lore.kernel.org
  Added from v3: 2 patches
---
Analyzing 17 messages in the thread
---
Diffing v3 and v4
    Running: git range-diff c371c3410e81..d467d6770a1b 0bfd1357fb44..1c9f51e8b572
---
...

Best regards,
Hendrik

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-09 12:54     ` Hendrik Noack
@ 2026-03-09 12:56       ` Krzysztof Kozlowski
  2026-03-09 13:12         ` Hendrik Noack
  0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-09 12:56 UTC (permalink / raw)
  To: Hendrik Noack
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Ferass El Hafidi, linux-input, devicetree, linux-kernel

On 09/03/2026 13:54, Hendrik Noack wrote:
> Hello Krzysztof,
> 
> 08.03.2026 10:15:35 Krzysztof Kozlowski <krzk@kernel.org>:
> 
>> You received review and instruction what to do. Did you read it?
> 
> I read the review of Dmitry and incorporated it into this version.

So you ignored my email completely or it did not reach you (it is on
lore.kernel.org though)?

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-09 12:56       ` Krzysztof Kozlowski
@ 2026-03-09 13:12         ` Hendrik Noack
  2026-03-09 13:21           ` Krzysztof Kozlowski
  0 siblings, 1 reply; 13+ messages in thread
From: Hendrik Noack @ 2026-03-09 13:12 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Ferass El Hafidi, linux-input, devicetree, linux-kernel

Hello Krzysztof,

09.03.2026 13:56:41 Krzysztof Kozlowski <krzk@kernel.org>:

> On 09/03/2026 13:54, Hendrik Noack wrote:
>> Hello Krzysztof,
>>
>> 08.03.2026 10:15:35 Krzysztof Kozlowski <krzk@kernel.org>:
>>
>>> You received review and instruction what to do. Did you read it?
>>
>> I read the review of Dmitry and incorporated it into this version.
>
> So you ignored my email completely or it did not reach you (it is on
> lore.kernel.org though)?

I don't know what email you mean. You gave reviews on my first verison, which I already incorporated in v2 and then gave a review-by on v2, which I also added on v3, but now dropped, because I added a property to the DT binding.

Best regards,
Hendrik

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-09 13:12         ` Hendrik Noack
@ 2026-03-09 13:21           ` Krzysztof Kozlowski
  2026-03-10 16:50             ` Ferass El Hafidi
  0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-09 13:21 UTC (permalink / raw)
  To: Hendrik Noack
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Ferass El Hafidi, linux-input, devicetree, linux-kernel

On 09/03/2026 14:12, Hendrik Noack wrote:
> Hello Krzysztof,
> 
> 09.03.2026 13:56:41 Krzysztof Kozlowski <krzk@kernel.org>:
> 
>> On 09/03/2026 13:54, Hendrik Noack wrote:
>>> Hello Krzysztof,
>>>
>>> 08.03.2026 10:15:35 Krzysztof Kozlowski <krzk@kernel.org>:
>>>
>>>> You received review and instruction what to do. Did you read it?
>>>
>>> I read the review of Dmitry and incorporated it into this version.
>>
>> So you ignored my email completely or it did not reach you (it is on
>> lore.kernel.org though)?
> 
> I don't know what email you mean. You gave reviews on my first verison, which I already incorporated in v2 and then gave a review-by on v2, which I also added on v3, but now dropped, because I added a property to the DT binding.

The instruction I gave you when giving review.

Please wrap your emails to standard email style, so reading will be easier.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-09 13:21           ` Krzysztof Kozlowski
@ 2026-03-10 16:50             ` Ferass El Hafidi
  2026-03-10 16:55               ` Krzysztof Kozlowski
  0 siblings, 1 reply; 13+ messages in thread
From: Ferass El Hafidi @ 2026-03-10 16:50 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Hendrik Noack
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Ferass El Hafidi, linux-input, devicetree, linux-kernel

Hi Krzysztof & Hendrik,

On Mon, 09 Mar 2026 13:21, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>On 09/03/2026 14:12, Hendrik Noack wrote:
>> Hello Krzysztof,
>> 
>> 09.03.2026 13:56:41 Krzysztof Kozlowski <krzk@kernel.org>:
>> 
>>> On 09/03/2026 13:54, Hendrik Noack wrote:
>>>> Hello Krzysztof,
>>>>
>>>> 08.03.2026 10:15:35 Krzysztof Kozlowski <krzk@kernel.org>:
>>>>
>>>>> You received review and instruction what to do. Did you read it?
>>>>
>>>> I read the review of Dmitry and incorporated it into this version.
>>>
>>> So you ignored my email completely or it did not reach you (it is on
>>> lore.kernel.org though)?
>> 
>> I don't know what email you mean. You gave reviews on my first verison, 
>> which I already incorporated in v2 and then gave a review-by on v2, 
>> which I also added on v3, but now dropped, because I added a property
>> to the DT binding.
>
>The instruction I gave you when giving review.

If you gave review on the v3 dt-bindings, I can't find it on lore:
https://lore.kernel.org/all/20251205152858.14415-2-hendrik-noack@gmx.de/

On v2 you gave a R-b to the dt-bindings along with some instructions:
https://lore.kernel.org/all/2bf9dbd4-351e-4a79-9fcf-e41c5273d0be@kernel.org/
which were followed from what I can tell; your R-b was retained on v3,
but dropped on this revision (v4) because of new properties being added
(new `reset-gpio` property, technically also `wacom,w9002` compatible
but my understanding is new compatibles don't really matter much), as
your email said "Please add Acked-by/Reviewed-by/Tested-by tags when
posting new versions [...] unless patch changed (e.g. new properties
added to the DT bindings)".

You also gave an in-depth review on the actual driver itself on v1:
https://lore.kernel.org/all/20251028-funky-rose-rook-3ccab5@kuoka/

Best regards,
Ferass

>
>Please wrap your emails to standard email style, so reading will be easier.
>
>Best regards,
>Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-10 16:50             ` Ferass El Hafidi
@ 2026-03-10 16:55               ` Krzysztof Kozlowski
  2026-03-10 17:08                 ` Ferass El Hafidi
  0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-10 16:55 UTC (permalink / raw)
  To: Ferass El Hafidi, Hendrik Noack
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-input, devicetree, linux-kernel

On 10/03/2026 17:50, Ferass El Hafidi wrote:
> Hi Krzysztof & Hendrik,
> 
> On Mon, 09 Mar 2026 13:21, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>> On 09/03/2026 14:12, Hendrik Noack wrote:
>>> Hello Krzysztof,
>>>
>>> 09.03.2026 13:56:41 Krzysztof Kozlowski <krzk@kernel.org>:
>>>
>>>> On 09/03/2026 13:54, Hendrik Noack wrote:
>>>>> Hello Krzysztof,
>>>>>
>>>>> 08.03.2026 10:15:35 Krzysztof Kozlowski <krzk@kernel.org>:
>>>>>
>>>>>> You received review and instruction what to do. Did you read it?
>>>>>
>>>>> I read the review of Dmitry and incorporated it into this version.
>>>>
>>>> So you ignored my email completely or it did not reach you (it is on
>>>> lore.kernel.org though)?
>>>
>>> I don't know what email you mean. You gave reviews on my first verison, 
>>> which I already incorporated in v2 and then gave a review-by on v2, 
>>> which I also added on v3, but now dropped, because I added a property
>>> to the DT binding.
>>
>> The instruction I gave you when giving review.
> 
> If you gave review on the v3 dt-bindings, I can't find it on lore:
> https://lore.kernel.org/all/20251205152858.14415-2-hendrik-noack@gmx.de/
> 
> On v2 you gave a R-b to the dt-bindings along with some instructions:
> https://lore.kernel.org/all/2bf9dbd4-351e-4a79-9fcf-e41c5273d0be@kernel.org/
> which were followed from what I can tell; your R-b was retained on v3,
> but dropped on this revision (v4) because of new properties being added
> (new `reset-gpio` property, technically also `wacom,w9002` compatible
> but my understanding is new compatibles don't really matter much), as
> your email said "Please add Acked-by/Reviewed-by/Tested-by tags when
> posting new versions [...] unless patch changed (e.g. new properties
> added to the DT bindings)".

Thanks. I also provided the link further explaining what one has to do
if one ever decide to drop the review.

Dropping it silently is for me rather sign I should ignore this patchset
to avoid wasting time of lost reviews.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-07 18:15 ` [PATCH v4 1/2] dt-bindings: Input: Add " Hendrik Noack
  2026-03-08  9:15   ` Krzysztof Kozlowski
@ 2026-03-10 16:58   ` Krzysztof Kozlowski
  2026-03-10 17:29   ` Dmitry Torokhov
  2 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-10 16:58 UTC (permalink / raw)
  To: Hendrik Noack, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Ferass El Hafidi, linux-input, devicetree, linux-kernel

On 07/03/2026 19:15, Hendrik Noack wrote:
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  vdd-supply:
> +    description:
> +      Optional regulator for the VDD digital voltage.

Drop "Optional regulator for"

Also, vdd is mandatory, not optional. How device can work without supply?

> +
> +  flash-mode-gpios:
> +    maxItems: 1
> +    description:
> +      Optional GPIO specifier for the touchscreen's flash-mode pin.

Drop "Optional GPIO specifier for the". Don't repeat constraints in free
form text. Schema tells what is optional or what is not. This also
cannot be anything else than GPIO specifier, so repeating obvious is not
making it more readable.

> +
> +  pen-inserted-gpios:
> +    maxItems: 1
> +    description:
> +      Optional GPIO specifier for the touchscreen's pen-insert pin.

Drop "Optional GPIO specifier for the".

> +
> +  reset-gpios:
> +    maxItems: 1
> +    description:
> +      Optional GPIO specifier for the touchscreen's reset pin.

Drop description completely. Redundant. It cannot be anything else than
reset pin.


> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - vdd-supply


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-10 16:55               ` Krzysztof Kozlowski
@ 2026-03-10 17:08                 ` Ferass El Hafidi
  0 siblings, 0 replies; 13+ messages in thread
From: Ferass El Hafidi @ 2026-03-10 17:08 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Hendrik Noack
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-input, devicetree, linux-kernel

On Tue, 10 Mar 2026 16:55, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>On 10/03/2026 17:50, Ferass El Hafidi wrote:
>> Hi Krzysztof & Hendrik,
>> 
>> On Mon, 09 Mar 2026 13:21, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>> On 09/03/2026 14:12, Hendrik Noack wrote:
>>>> Hello Krzysztof,
>>>>
>>>> 09.03.2026 13:56:41 Krzysztof Kozlowski <krzk@kernel.org>:
>>>>
>>>>> On 09/03/2026 13:54, Hendrik Noack wrote:
>>>>>> Hello Krzysztof,
>>>>>>
>>>>>> 08.03.2026 10:15:35 Krzysztof Kozlowski <krzk@kernel.org>:
>>>>>>
>>>>>>> You received review and instruction what to do. Did you read it?
>>>>>>
>>>>>> I read the review of Dmitry and incorporated it into this version.
>>>>>
>>>>> So you ignored my email completely or it did not reach you (it is on
>>>>> lore.kernel.org though)?
>>>>
>>>> I don't know what email you mean. You gave reviews on my first verison, 
>>>> which I already incorporated in v2 and then gave a review-by on v2, 
>>>> which I also added on v3, but now dropped, because I added a property
>>>> to the DT binding.
>>>
>>> The instruction I gave you when giving review.
>> 
>> If you gave review on the v3 dt-bindings, I can't find it on lore:
>> https://lore.kernel.org/all/20251205152858.14415-2-hendrik-noack@gmx.de/
>> 
>> On v2 you gave a R-b to the dt-bindings along with some instructions:
>> https://lore.kernel.org/all/2bf9dbd4-351e-4a79-9fcf-e41c5273d0be@kernel.org/
>> which were followed from what I can tell; your R-b was retained on v3,
>> but dropped on this revision (v4) because of new properties being added
>> (new `reset-gpio` property, technically also `wacom,w9002` compatible
>> but my understanding is new compatibles don't really matter much), as
>> your email said "Please add Acked-by/Reviewed-by/Tested-by tags when
>> posting new versions [...] unless patch changed (e.g. new properties
>> added to the DT bindings)".
>
>Thanks. I also provided the link further explaining what one has to do
>if one ever decide to drop the review.

Assuming you're talking about that R-b dropping should be mentioned in
the cover letter, that was probably just overlooked.

>
>Dropping it silently is for me rather sign I should ignore this patchset
>to avoid wasting time of lost reviews.

That was most likely not the intent, I think your feedback is valuable.

Best regards,
Ferass

[PS: I see you left some review after your last email, thank you for
     your time and sorry for the inconvenience.]

>
>Best regards,
>Krzysztof

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: Input: Add Wacom W9000-series penabled touchscreens
  2026-03-07 18:15 ` [PATCH v4 1/2] dt-bindings: Input: Add " Hendrik Noack
  2026-03-08  9:15   ` Krzysztof Kozlowski
  2026-03-10 16:58   ` Krzysztof Kozlowski
@ 2026-03-10 17:29   ` Dmitry Torokhov
  2 siblings, 0 replies; 13+ messages in thread
From: Dmitry Torokhov @ 2026-03-10 17:29 UTC (permalink / raw)
  To: Hendrik Noack
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ferass El Hafidi,
	linux-input, devicetree, linux-kernel

Hi Hendrik,

On Sat, Mar 07, 2026 at 07:15:32PM +0100, Hendrik Noack wrote:
> Add bindings for Wacom W9002 and two Wacom W9007 variants which can be
> found in tablets.
> 
> Co-developed-by: Ferass El Hafidi <funderscore@postmarketos.org>
> Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
> Signed-off-by: Hendrik Noack <hendrik-noack@gmx.de>
> ---
>  .../input/touchscreen/wacom,w9007a-lt03.yaml  | 86 +++++++++++++++++++
>  1 file changed, 86 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml
> 
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml b/Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml
> new file mode 100644
> index 000000000000..feb87f5db39d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/wacom,w9007a-lt03.yaml
> @@ -0,0 +1,86 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/touchscreen/wacom,w9007a-lt03.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Wacom W9000-series penabled I2C touchscreen
> +
> +maintainers:
> +  - Hendrik Noack <hendrik-noack@gmx.de>
> +
> +description: |
> +  The W9000-series are penabled touchscreen controllers by Wacom.
> +
> +  The firmware of chips between devices can differ and with it also
> +  how the chips behaves.
> +
> +allOf:
> +  - $ref: touchscreen.yaml#
> +
> +properties:
> +  compatible:
> +    enum:
> +      - wacom,w9002
> +      - wacom,w9007a-lt03
> +      - wacom,w9007a-v1
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  vdd-supply:
> +    description:
> +      Optional regulator for the VDD digital voltage.
> +
> +  flash-mode-gpios:
> +    maxItems: 1
> +    description:
> +      Optional GPIO specifier for the touchscreen's flash-mode pin.
> +
> +  pen-inserted-gpios:
> +    maxItems: 1
> +    description:
> +      Optional GPIO specifier for the touchscreen's pen-insert pin.

Looking at this again this has nothing to do with the W9000 touchscreen
controller. The behavior is applicable to any device with a touchscreen
and a pen.

Rather this is a generic functionality/policy to put the pen
interface in low power mode when it is put away. I think this should be
done by userspace through combination to listening to the
SW_PEN_INSERTED events (via gpio-keys driver) and toggling "inhibit" on
the touchscreen device.

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2026-03-10 17:29 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-07 18:15 [PATCH v4 0/2] Add support for Wacom W9000-series penabled touchscreens Hendrik Noack
2026-03-07 18:15 ` [PATCH v4 1/2] dt-bindings: Input: Add " Hendrik Noack
2026-03-08  9:15   ` Krzysztof Kozlowski
2026-03-09 12:54     ` Hendrik Noack
2026-03-09 12:56       ` Krzysztof Kozlowski
2026-03-09 13:12         ` Hendrik Noack
2026-03-09 13:21           ` Krzysztof Kozlowski
2026-03-10 16:50             ` Ferass El Hafidi
2026-03-10 16:55               ` Krzysztof Kozlowski
2026-03-10 17:08                 ` Ferass El Hafidi
2026-03-10 16:58   ` Krzysztof Kozlowski
2026-03-10 17:29   ` Dmitry Torokhov
2026-03-07 18:15 ` [PATCH v4 2/2] Input: Add support for " Hendrik Noack

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox