* [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
* 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-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: 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-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
* [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
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