From: Vsevolod Nevorotov <sevanevorotov29@gmail.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: Henrik Rydberg <rydberg@bitmath.org>,
linux-input@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
Vsevolod Nevorotov <sevanevorotov29@gmail.com>
Subject: [PATCH v2 0/2] Input: add Synaptics TouchComm I2C touchscreen driver and bindings
Date: Thu, 10 Sep 2026 16:14:03 +0700 [thread overview]
Message-ID: <20260910091405.354058-1-sevanevorotov29@gmail.com> (raw)
This series adds devicetree schema bindings and an input touchscreen
driver for Synaptics TouchComm (TCM) generation-1 touchscreen controllers
connected over I2C, such as the Synaptics S3908 found in the OnePlus 9RT.
The S3908 and compatible generation-1 controllers boot autonomously into
application mode directly out of their embedded flash memory. The driver
implements communication using the Synaptics TouchComm packet protocol,
retrieving device identify information and handling reports through a
threaded interrupt handler.
Features supported:
- Multi-touch reporting using the input_mt framework (Protocol B)
- Dynamic touch report layouts and coordinate/pressure decoding
- Standard touchscreen properties (axis swapping/inversion)
- Low-power wakeup gestures (double-tap to wake)
- System suspend / resume with deep sleep transition
- Regulator and reset GPIO lifecycle management
Changes in v2:
- Fixed continued-read chunking in syna_recv_message(): accurately track
stream bytes including the trailing 0x5a padding byte, request full
64-byte I2C chunks (up to 62 stream bytes), and ensure trailing padding
is consumed and verified even for 60-byte aligned payloads.
- Clamped active touch object count in syna_parse_touch_report() to
ts->max_objects and guarded offset calculations against integer overflow
and OOB access in syna_get_bits().
- Made regulator power management idempotent with ts->powered flag to
prevent unbalanced regulator disable warnings during teardown if
hardware recovery fails; power down controller and propagate error code
on recovery failure in syna_resume().
- Removed touchscreen-size-x / touchscreen-size-y overrides from driver
and DT binding example, relying on native resolution reported by
controller firmware.
- Documented mutex locking contract on syna_exec_command().
- Added explanatory comments for ABS_MT_PRESSURE and TOUCH_MAJOR/MINOR
default limits.
- Sorted TOUCHSCREEN_SYNAPTICS_TCM_I2C alphabetically in Kconfig.
- Fixed commit title casing and checkpatch warnings.
Vsevolod Nevorotov (2):
dt-bindings: input: touchscreen: add Synaptics S3908 controller
Input: synaptics_tcm_i2c - add Synaptics TouchComm I2C touchscreen
driver
.../input/touchscreen/syna,s3908.yaml | 69 ++
MAINTAINERS | 7 +
drivers/input/touchscreen/Kconfig | 15 +
drivers/input/touchscreen/Makefile | 1 +
drivers/input/touchscreen/synaptics_tcm_i2c.c | 1066 +++++++++++++++++
5 files changed, 1158 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/syna,s3908.yaml
create mode 100644 drivers/input/touchscreen/synaptics_tcm_i2c.c
--
2.55.0
next reply other threads:[~2026-09-10 9:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-10 9:14 Vsevolod Nevorotov [this message]
2026-09-10 9:14 ` [PATCH v2 1/2] dt-bindings: input: touchscreen: add Synaptics S3908 controller Vsevolod Nevorotov
2026-09-10 9:14 ` [PATCH v2 2/2] Input: synaptics_tcm_i2c - add Synaptics TouchComm I2C touchscreen driver Vsevolod Nevorotov
2026-09-11 19:00 ` Uwe Kleine-König
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=20260910091405.354058-1-sevanevorotov29@gmail.com \
--to=sevanevorotov29@gmail.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=rydberg@bitmath.org \
/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