[PATCH v1] dt-bindings: input: Add TouchNetix aXiom touchscreen driver

AThomas63 posted 1 patch 2 weeks, 2 days ago
.../bindings/input/touchscreen/tnx,axiom.yaml | 90 +++++++++++++++++++
.../devicetree/bindings/vendor-prefixes.yaml  |  2 +
2 files changed, 92 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml
[PATCH v1] dt-bindings: input: Add TouchNetix aXiom touchscreen driver
Posted by AThomas63 2 weeks, 2 days ago
Add extra changes referenced in the previous patch:
 - Add device tree documentation for axiom giving examples for SPI and I2C.
 - Add tnx vendor prefix.

---
 .../bindings/input/touchscreen/tnx,axiom.yaml | 90 +++++++++++++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |  2 +
 2 files changed, 92 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml

diff --git a/Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml b/Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml
new file mode 100644
index 000000000000..dc2ea62999b8
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/tnx,axiom.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TouchNetix aXiom Touchscreen Controller
+
+maintainers:
+  - Andrew Thomas <andrew.thomas@touchnetix.com>
+
+description: |
+  The TouchNetix aXiom series are high-performance touchscreen controllers
+  supporting various interface methods including I2C and SPI.
+
+properties:
+  compatible:
+    enum:
+      - tnx,axiom-i2c
+      - tnx,axiom-spi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  axiom,poll-enable:
+    type: boolean
+    description: Enable aXiom polling mode instead of interrupt-driven 
+      reporting.
+
+  axiom,poll-period:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 10
+    description: Set the polling period in milliseconds.
+
+  # Required for SPI
+  spi-max-frequency: true
+
+  # Common touchscreen properties
+  touchscreen-size-x: true
+  touchscreen-size-y: true
+  touchscreen-inverted-x: true
+  touchscreen-inverted-y: true
+  touchscreen-swapped-x-y: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen@66 {
+            compatible = "touchnetix,axiom-i2c";
+            reg = <0x66>;
+            interrupt-parent = <&gpio>;
+            interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
+            axiom,poll-enable;
+            axiom,poll-period = <15>;
+        };
+    };
+
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen@0 {
+            compatible = "touchnetix,axiom-spi";
+            reg = <0>;
+            spi-max-frequency = <4000000>;
+            interrupt-parent = <&gpio>;
+            interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index f1d1882009ba..dadfc7036ed7 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1636,6 +1636,8 @@ patternProperties:
     description: Trusted Logic Mobility
   "^tmt,.*":
     description: Tecon Microprocessor Technologies, LLC.
+  "^tnx,.*":
+    description: TouchNetix
   "^topeet,.*":
     description: Topeet
   "^topic,.*":
-- 
2.43.0
Re: [PATCH v1] dt-bindings: input: Add TouchNetix aXiom touchscreen driver
Posted by Krzysztof Kozlowski 2 weeks, 1 day ago
On 22/01/2026 15:40, AThomas63 wrote:
> Add extra changes referenced in the previous patch:

Not relevant.


>  - Add device tree documentation for axiom giving examples for SPI and I2C.
>  - Add tnx vendor prefix.

Please start using b4 or use known (described) workflows with git. Look
at the subject - why is this just one patch not 1/2? Patchsets are made
git format-patch -2 (-vX if needed).

And then:
Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC. It might happen, that command when run on an older
kernel, gives you outdated entries. Therefore please be sure you base
your patches on recent Linux kernel.

Tools like b4 or scripts/get_maintainer.pl provide you proper list of
people, so fix your workflow. Tools might also fail if you work on some
ancient tree (don't, instead use mainline) or work on fork of kernel
(don't, instead use mainline). Just use b4 and everything should be
fine, although remember about `b4 prep --auto-to-cc` if you added new
patches to the patchset.

You missed at least devicetree list (maybe more), so this won't be
tested by automated tooling. Performing review on untested code might be
a waste of time.

Please kindly resend and include all necessary To/Cc entries.


> 
> ---
>  .../bindings/input/touchscreen/tnx,axiom.yaml | 90 +++++++++++++++++++
>  .../devicetree/bindings/vendor-prefixes.yaml  |  2 +
>  2 files changed, 92 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml
> 
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml b/Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml
> new file mode 100644
> index 000000000000..dc2ea62999b8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/tnx,axiom.yaml
> @@ -0,0 +1,90 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/touchscreen/tnx,axiom.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TouchNetix aXiom Touchscreen Controller
> +
> +maintainers:
> +  - Andrew Thomas <andrew.thomas@touchnetix.com>
> +
> +description: |


> +  The TouchNetix aXiom series are high-performance touchscreen controllers
> +  supporting various interface methods including I2C and SPI.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - tnx,axiom-i2c
> +      - tnx,axiom-spi

No, these are the same. Use only one describing the device.

No device model? Really?

> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  axiom,poll-enable:

There is no such company as axiom. You just said it is tnx.
> +    type: boolean
> +    description: Enable aXiom polling mode instead of interrupt-driven 
> +      reporting.

Anyway, drop entire property. Not a DT suitable, not hardware.

> +
> +  axiom,poll-period:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    default: 10
> +    description: Set the polling period in milliseconds.

Drop entire property.

> +
> +  # Required for SPI
> +  spi-max-frequency: true

Drop. Not needed.

> +
> +  # Common touchscreen properties
> +  touchscreen-size-x: true
> +  touchscreen-size-y: true
> +  touchscreen-inverted-x: true
> +  touchscreen-inverted-y: true
> +  touchscreen-swapped-x-y: true

Drop all.

> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +allOf:
> +  - $ref: touchscreen.yaml#

Missing ref to spi-periph.

Look at other bindings instead of inventing your own.

> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        touchscreen@66 {
> +            compatible = "touchnetix,axiom-i2c";
> +            reg = <0x66>;
> +            interrupt-parent = <&gpio>;
> +            interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
> +            axiom,poll-enable;
> +            axiom,poll-period = <15>;
> +        };
> +    };
> +
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    spi {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        touchscreen@0 {
> +            compatible = "touchnetix,axiom-spi";
> +            reg = <0>;
> +            spi-max-frequency = <4000000>;
> +            interrupt-parent = <&gpio>;
> +            interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> index f1d1882009ba..dadfc7036ed7 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> @@ -1636,6 +1636,8 @@ patternProperties:
>      description: Trusted Logic Mobility
>    "^tmt,.*":
>      description: Tecon Microprocessor Technologies, LLC.
> +  "^tnx,.*":

Domain is touchnetix, so that's your prefix.

> +    description: TouchNetix
>    "^topeet,.*":
>      description: Topeet
>    "^topic,.*":


Best regards,
Krzysztof
Re: [PATCH v1] dt-bindings: input: Add TouchNetix aXiom touchscreen driver
Posted by Andrew Thomas 1 week, 5 days ago
Hi Krzysztof,
Thank you for the quick review and giving me a lot to look into straight away!
I shall resubmit my patch correctly using b4 in a separate email.

> > + The TouchNetix aXiom series are high-performance touchscreen controllers
> > + supporting various interface methods including I2C and SPI.
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - tnx,axiom-i2c
> > + - tnx,axiom-spi
> 
> No, these are the same. Use only one describing the device.
> 

Fixed.

> No device model? Really?

There are device models, but all devices use a very similar interface which
just changes with revision.

> > +allOf:
> > +  - $ref: touchscreen.yaml#
> 
> Missing ref to spi-periph.
> 
> Look at other bindings instead of inventing your own.

Added.

> > +
> > + reg:
> > + maxItems: 1
> > +
> > + interrupts:
> > + maxItems: 1
> > +
> > + axiom,poll-enable:
> 
> There is no such company as axiom. You just said it is tnx.
> 
> > + type: boolean
> > + description: Enable aXiom polling mode instead of interrupt-driven
> > + reporting.
> 
> Anyway, drop entire property. Not a DT suitable, not hardware.

Removed polling from device tree and added as a module_param.

Many Thanks,
Andrew
Re: [PATCH v1] dt-bindings: input: Add TouchNetix aXiom touchscreen driver
Posted by Marco Felsch 2 weeks, 1 day ago
Hi Krzysztof,

On 26-01-23, Krzysztof Kozlowski wrote:
> On 22/01/2026 15:40, AThomas63 wrote:
> > Add extra changes referenced in the previous patch:

...

> > +properties:
> > +  compatible:
> > +    enum:
> > +      - tnx,axiom-i2c
> > +      - tnx,axiom-spi
> 
> No, these are the same. Use only one describing the device.
> 
> No device model? Really?

That beeing said, you already provided your review for a device which is
part of this family here:
 - https://lore.kernel.org/all/20260111-v6-10-topic-touchscreen-axiom-v5-3-f94e0ae266cb@pengutronix.de/

Regards,
  Marco

> 
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  axiom,poll-enable:
> 
> There is no such company as axiom. You just said it is tnx.
> > +    type: boolean
> > +    description: Enable aXiom polling mode instead of interrupt-driven 
> > +      reporting.
> 
> Anyway, drop entire property. Not a DT suitable, not hardware.
> 
> > +
> > +  axiom,poll-period:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    default: 10
> > +    description: Set the polling period in milliseconds.
> 
> Drop entire property.
> 
> > +
> > +  # Required for SPI
> > +  spi-max-frequency: true
> 
> Drop. Not needed.
> 
> > +
> > +  # Common touchscreen properties
> > +  touchscreen-size-x: true
> > +  touchscreen-size-y: true
> > +  touchscreen-inverted-x: true
> > +  touchscreen-inverted-y: true
> > +  touchscreen-swapped-x-y: true
> 
> Drop all.
> 
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - interrupts
> > +
> > +allOf:
> > +  - $ref: touchscreen.yaml#
> 
> Missing ref to spi-periph.
> 
> Look at other bindings instead of inventing your own.
> 
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > +    i2c {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        touchscreen@66 {
> > +            compatible = "touchnetix,axiom-i2c";
> > +            reg = <0x66>;
> > +            interrupt-parent = <&gpio>;
> > +            interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
> > +            axiom,poll-enable;
> > +            axiom,poll-period = <15>;
> > +        };
> > +    };
> > +
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > +    spi {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        touchscreen@0 {
> > +            compatible = "touchnetix,axiom-spi";
> > +            reg = <0>;
> > +            spi-max-frequency = <4000000>;
> > +            interrupt-parent = <&gpio>;
> > +            interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
> > +        };
> > +    };
> > diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > index f1d1882009ba..dadfc7036ed7 100644
> > --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> > @@ -1636,6 +1636,8 @@ patternProperties:
> >      description: Trusted Logic Mobility
> >    "^tmt,.*":
> >      description: Tecon Microprocessor Technologies, LLC.
> > +  "^tnx,.*":
> 
> Domain is touchnetix, so that's your prefix.
> 
> > +    description: TouchNetix
> >    "^topeet,.*":
> >      description: Topeet
> >    "^topic,.*":
> 
> 
> Best regards,
> Krzysztof
> 

-- 
#gernperDu 
#CallMeByMyFirstName

Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-9    |
Re: [PATCH v1] dt-bindings: input: Add TouchNetix aXiom touchscreen driver
Posted by Krzysztof Kozlowski 2 weeks, 1 day ago
On 22/01/2026 15:40, AThomas63 wrote:
> Add extra changes referenced in the previous patch:
>  - Add device tree documentation for axiom giving examples for SPI and I2C.
>  - Add tnx vendor prefix.

Incomplete DCO chain.

Please run scripts/checkpatch.pl on the patches and fix reported
warnings. After that, run also 'scripts/checkpatch.pl --strict' on the
patches and (probably) fix more warnings. Some warnings can be ignored,
especially from --strict run, but the code here looks like it needs a
fix. Feel free to get in touch if the warning is not clear.

Also, no anonymous contributions. It's also explicitly documented.


Best regards,
Krzysztof