[PATCH v6 1/3] dt-bindings: input: Add Himax HX83102J touchscreen

Conor Dooley conor at kernel.org
Mon Oct 12 12:16:10 PDT 2026


On Sun, Oct 11, 2026 at 08:16:31PM +0200, Michał Kopeć wrote:
> Add the binding for the touch function of the Himax HX83102J, a touch
> and display driver integrated (TDDI) controller. The touch function is
> connected over SPI and shares the analog supplies and the reset of the
> display function, so it is powered and reset together with the panel
> and has to follow it.
> 
> Co-developed-by: Allen Lin <allencl_lin at hotmail.com>
> Signed-off-by: Allen Lin <allencl_lin at hotmail.com>
> Signed-off-by: Michał Kopeć <michal at nozomi.space>
> ---
>  .../input/touchscreen/himax,hx83102j.yaml     | 98 +++++++++++++++++++
>  MAINTAINERS                                   |  6 ++
>  2 files changed, 104 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83102j.yaml
> 
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/himax,hx83102j.yaml b/Documentation/devicetree/bindings/input/touchscreen/himax,hx83102j.yaml
> new file mode 100644
> index 0000000000000..f0aca7a6662c9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/himax,hx83102j.yaml
> @@ -0,0 +1,98 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/touchscreen/himax,hx83102j.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Himax hx83102j touchscreen
> +
> +maintainers:
> +  - Michał Kopeć <michal at nozomi.space>
> +
> +description:
> +  The Himax HX83102J is a touch and display driver integrated (TDDI)
> +  controller. Its touch function is connected over SPI and reports HID
> +  packets. The display and touch functions share the analog supplies and
> +  the display reset, so the touch function is powered and reset together
> +  with the panel it is part of.
> +
> +allOf:
> +  - $ref: /schemas/input/touchscreen/touchscreen.yaml#
> +  - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> +properties:
> +  compatible:
> +    const: himax,hx83102j
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  reset-gpios:
> +    maxItems: 1
> +    description:
> +      Reset of the touch function. Unlike display-reset-gpios, it only
> +      resets the touch MCU and leaves the display function running, so the
> +      touch function can be reset without disturbing the panel.
> +
> +  vccd-supply:
> +    description: Digital I/O supply of the touch function.
> +
> +  vsn-supply:
> +    description: Negative analog supply, shared with the display function.
> +
> +  vsp-supply:
> +    description: Positive analog supply, shared with the display function.
> +
> +  display-reset-gpios:
> +    maxItems: 1
> +    description:
> +      Reset of the display function, usually driven by the panel. Asserting
> +      it also resets the touch function.
> +
> +  spi-cpha: true
> +
> +  spi-cpol: true

Just to be sure, these are optional on this device and it's not always
in this mode?

> +
> +  firmware-name:
> +    description: Specify the file name for firmware loading.
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - reset-gpios
> +  - panel
> +  - vccd-supply
> +  - vsn-supply
> +  - vsp-supply
> +  - display-reset-gpios
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    spi {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      ap_ts: touchscreen at 0 {

Drop the label if you respin btw, since it is unused. Binding is mostly
fine looking to me.

> +        compatible = "himax,hx83102j";
> +        reg = <0>;
> +        pinctrl-names = "default";
> +        pinctrl-0 = <&touch_int0 &touch_reset>;
> +        reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
> +        spi-cpha;
> +        spi-cpol;
> +        interrupt-parent = <&gpio1>;
> +        interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
> +        panel = <&panel>;
> +        vccd-supply = <&regulator>;
> +        vsn-supply = <&regulator>;
> +        vsp-supply = <&regulator>;
> +        display-reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
> +      };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 72294ddfa5b75..e209f0d44fa73 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -11729,6 +11729,12 @@ W:	http://www.highpoint-tech.com
>  F:	Documentation/scsi/hptiop.rst
>  F:	drivers/scsi/hptiop.c
>  
> +HIMAX HID TOUCHSCREEN

Sounds overly generic, since the hx83112B is probably also a touchscreen
HID device?

Thanks,
Conor.

pw-bot: changes-requested

> +M:	Michał Kopeć <michal at nozomi.space>
> +L:	linux-input at vger.kernel.org
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/input/touchscreen/himax,hx83102j.yaml
> +
>  HIMAX HX83112B TOUCHSCREEN SUPPORT
>  M:	Job Noorman <job at noorman.info>
>  L:	linux-input at vger.kernel.org
> -- 
> 2.56.0
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20261012/78d28891/attachment-0001.sig>


More information about the linux-arm-kernel mailing list