Thread (12 messages) 12 messages, 2 authors, 8h ago

[PATCH v5 0/6] HID: Add support for the Himax HX83102J touchscreen

HOTtoday

From: Michał Kopeć <hidden>
Date: 2026-10-03 14:28:06
Also in: linux-arm-kernel, linux-devicetree, linux-mediatek, lkml

This series adds support for the touch function of the Himax HX83102J,
a touch and display driver integrated (TDDI) controller that reports HID
packets over SPI. It is used in the MediaTek MT8188 based Lenovo
Chromebook Duet ("Ciri").

This is a respin of Allen Lin's v4 [1], which stalled after the review.
I have kept Allen as the author of his patches and noted my changes in
each of them. Patch 5 is based on Tylor Yang's heatmap support in the
ChromeOS kernel driver, which I have credited there.

On Ciri the controller has no flash, so the firmware is loaded from a
file (himax_i2chid_1002.bin or himax_i2chid_1003.bin, depending on the
panel, the names ChromeOS uses). These files are not in linux-firmware.

Tested on Ciri (sku0, BOE panel): touch, stylus and suspend/resume.

The firmware report descriptor declares feature report 68 (usage
0xff0000c5), which the driver does not serve, so hid-multitouch logs
"failed to fetch feature 68" once per probe. Touch works regardless.

Changes in v5:
- Rebase onto v7.3 (spi->master is now spi->controller).
- dt-bindings: rename ddreset-gpios to display-reset-gpios and describe
  it and the supplies shared with the display (Conor). Dropping the "dd"
  entirely would clash with reset-gpios, the reset of the touch
  function, so I used display-reset-gpios instead.
- dt-bindings: drop Rob's Reviewed-by because of the above.
- Use family-wide names for the MCU helpers that are shared by the
  HX831xx controllers, e.g. himax_mcu_sense_off(), himax_chip_detect()
  and HIMAX_SAFE_MODE_PASSWORD (Felix). The remaining HX83102J names
  are chip specific: the TCON reset (0x80020004) and raw output select
  (0x100072ec) registers differ from the HX831xx defaults (0x80020020,
  0x800204b4), the hardware CRC registers are only used by the flashless
  parts, and the sizes are per chip. I have not tried to share code with
  himax_hx83112b, which talks to its I2C controllers with a custom event
  format, while the HX83102J sends HID reports over SPI.
- Unregister the panel follower on remove. Without it, unbinding the
  driver left a dangling entry in the panel's follower list.
- New patch: report the touch report and the heatmap. With the Ciri
  firmware, every frame carries the touch report, the stylus report and
  a 12-bit packed heatmap, which the firmware declares as report 97;
  only the stylus report was passed on.
- New patch: add the touchscreen to the Ciri device tree.
- List myself as the maintainer of the driver and the binding.
- Fix checkpatch --strict issues and expand the Kconfig help.
- Reword the commit messages.

[1] https://lore.kernel.org/all/TY0PR06MB56110754EB9D827BE3304A259E0F2@TY0PR06MB5611.apcprd06.prod.outlook.com/ (local)

Allen_Lin (4):
  dt-bindings: input: Add Himax HX83102J touchscreen
  HID: Add Himax HX83102J touchscreen driver
  HID: himax: Add DRM panel follower support
  HID: himax: Load the firmware from a file

Michał Kopeć (2):
  HID: himax: Report the touch and heatmap data
  arm64: dts: mediatek: mt8188-geralt-ciri: Add the touchscreen

 .../input/touchscreen/himax,hx83102j.yaml     |   98 +
 MAINTAINERS                                   |    7 +
 .../dts/mediatek/mt8188-geralt-ciri-sku1.dts  |    4 +
 .../dts/mediatek/mt8188-geralt-ciri-sku3.dts  |    4 +
 .../dts/mediatek/mt8188-geralt-ciri-sku5.dts  |    4 +
 .../dts/mediatek/mt8188-geralt-ciri-sku7.dts  |    4 +
 .../boot/dts/mediatek/mt8188-geralt-ciri.dtsi |   33 +
 drivers/hid/Kconfig                           |   13 +
 drivers/hid/Makefile                          |    2 +
 drivers/hid/hid-himax.c                       | 3187 +++++++++++++++++
 drivers/hid/hid-himax.h                       |  466 +++
 11 files changed, 3822 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83102j.yaml
 create mode 100644 drivers/hid/hid-himax.c
 create mode 100644 drivers/hid/hid-himax.h


base-commit: fd179f8a05be3ccae366b9b96e176b51fbe54aab
-- 
2.55.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help