Used on various phones. Minimal viable driver. Includes device-tree enabling touchscreen on Pixel 3.
What is missing: - switching between AP and SLPI mode (to be able to wake up phone by touch) - firmware loading - anything above basic touch Signed-off-by: David Heidelberg <[email protected]> --- Changes in v5: - 3.3V is analog, 1.8V is digital supply. Fix that. - Name the error variables "err" (Dmitry) - Use scoped_guard() for ->running, and only set it once the scan mode has actually been enabled. (Dmitry) - Use i2c_master_send() instead of open-coding a single-message i2c_transfer(). (Dmitry) - Drivers may report coordinates outside the declared min/max, so remove the clamping. (Dmitry) - BTN_TOUCH and INPUT_PROP_DIRECT are already set up by input_mt_init_slots(..., INPUT_MT_DIRECT). (Dmitry) - Let the input core track contacts: drop the touch_id/stylus_id bitmaps and the hand-rolled BTN_TOUCH reporting, and sync the frame once per interrupt with input_mt_sync_frame() instead of calling input_sync() per contact event. The controller pushes contacts one by one into the event FIFO and only resends the ones that changed, so INPUT_MT_DROP_UNUSED is wrong here and is dropped as well. (Dmitry) - Restore the FTS4 interrupts accidentally dropped by introduction of FTS5. - mode-switch-gpios isn't required with stmfts5. Some designs, such as Xiaomi Mi 8, has no such GPIO connected and is limited to AP mode. - Nit: updated example to use interrupts-extended. - Nit: (maximum x/y coordinate reported + 1), corrected example. - Link to v4: https://lore.kernel.org/r/[email protected] Changes in v4: - Wrap everything below enabling the supplies into stmfts_configure() to avoid bunch of gotos to power off on error (Dmitry T.) - Finished chip specific ops and removed is_fts5. (Dmitry T.) - Link to v3: https://lore.kernel.org/r/[email protected] Changes in v3: - s/touchscreen_pins/touchscreen_irq_n. (Konrad) - Use interrupts-extended. (Konrad) - Fixed rebase conflict against 8665ceb926ec ("Input: stmfts - use guard notation when acquiring mutex") - Rename switch-gpios to mode-switch-gpios. - Do not define properties in if:then: branches. (Krzysztof) - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Fix typo in the binding s/switch-gpio/switch-gpios/. - Deduplacate allOf. (Rob yamllint) - Add missing S-off-by. (Dmitry B.) - Dropped irq-gpios as it's not needed. (Konrad) - Correct x and y touchscreen area size. (Konrad) - Correct reset introduction commit description. (Krzysztof) - Partially implemented chip specific ops. (Dmitry T.) - Separeted license naming cleanup into separate commit (Dmitry T.) - Link to v1: https://lore.kernel.org/r/[email protected] --- David Heidelberg (2): dt-bindings: input: touchscreen: st,stmfts: Introduce STM FTS5 Input: stmfts - support FTS5 Petr Hodina (1): arm64: dts: qcom: sdm845-google: Add STM FTS touchscreen support .../bindings/input/touchscreen/st,stmfts.yaml | 29 +- .../arm64/boot/dts/qcom/sdm845-google-blueline.dts | 19 +- arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi | 2 +- drivers/input/touchscreen/stmfts.c | 430 +++++++++++++++++++-- 4 files changed, 436 insertions(+), 44 deletions(-) --- base-commit: 95d6a9ccef99117115e41e9adb271243bd5e985b change-id: 20260214-stmfts5-b47311fbd732 Best regards, -- David Heidelberg <[email protected]>

