From: "Michał Kopeć" <michal@nozomi.space>
To: linux-input@vger.kernel.org
Cc: devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, "Jiri Kosina" <jikos@kernel.org>,
"Benjamin Tissoires" <bentiss@kernel.org>,
"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Allen Lin" <allencl_lin@hotmail.com>,
"Tylor Yang" <tylor_yang@himax.corp-partner.google.com>,
"Felix Kaechele" <felix@kaechele.ca>,
"Douglas Anderson" <dianders@chromium.org>,
"Michał Kopeć" <michal@nozomi.space>
Subject: [PATCH v5 0/6] HID: Add support for the Himax HX83102J touchscreen
Date: Sat, 3 Oct 2026 16:27:35 +0200 [thread overview]
Message-ID: <20261003142741.48634-1-michal@nozomi.space> (raw)
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/
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
next reply other threads:[~2026-10-03 14:28 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-03 14:27 Michał Kopeć [this message]
2026-10-03 14:27 ` [PATCH v5 1/6] dt-bindings: input: Add Himax HX83102J touchscreen Michał Kopeć
2026-10-04 7:45 ` Krzysztof Kozlowski
2026-10-03 14:27 ` [PATCH v5 2/6] HID: Add Himax HX83102J touchscreen driver Michał Kopeć
2026-10-04 7:50 ` Krzysztof Kozlowski
2026-10-03 14:27 ` [PATCH v5 3/6] HID: himax: Add DRM panel follower support Michał Kopeć
2026-10-04 7:52 ` Krzysztof Kozlowski
2026-10-03 14:27 ` [PATCH v5 4/6] HID: himax: Load the firmware from a file Michał Kopeć
2026-10-03 14:27 ` [PATCH v5 5/6] HID: himax: Report the touch and heatmap data Michał Kopeć
2026-10-03 14:27 ` [PATCH v5 6/6] arm64: dts: mediatek: mt8188-geralt-ciri: Add the touchscreen Michał Kopeć
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261003142741.48634-1-michal@nozomi.space \
--to=michal@nozomi.space \
--cc=allencl_lin@hotmail.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bentiss@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=dmitry.torokhov@gmail.com \
--cc=felix@kaechele.ca \
--cc=jikos@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=robh@kernel.org \
--cc=tylor_yang@himax.corp-partner.google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox