From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 038563812F4 for ; Sat, 17 Oct 2026 14:08:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792246120; cv=none; b=DimkE+60W5Q0+kqrFQn58Du+lCJapcpbSjPsVoyKglzEwqTi1dU3ME1fL8DDtSN/AiERiqvBo2y7W7R4baav2nEAPM3SJrt8QB05/IPVivZdqNqHRawBFqYJlQUEnHvbAtZyQQMGIKxi6MPpt+INitRetH6M+bpvdiZ7gZ9VPg4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1792246120; c=relaxed/simple; bh=xwgUPno0Hmk2RqvQzb6DqmcZ3JYTRMeMpDvenuilM58=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GstESbB7pJstIAP91SbH6hxBwofvrGdTQp/A4HxmT/6lXR3LeO4vt/GuEhSOZn6C4kgjw4/oWOqiB+tM+WEfLLEtwuKtisLEEd2AaMc9rGxFWKwBIkJsK/UZ6R+DLvgZhOViEb5aGTOMQSxJcrLIt5PuGevJB/KPnC1O7BlOdjA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=k/ohMPZW; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k/ohMPZW" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-49fbb2acc90so9015545e9.2 for ; Sat, 17 Oct 2026 07:08:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792246116; x=1792850916; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=HsS7zD1Uucl5hqez+slw3pwoFAUHw9mJSijEO6l6OA0=; b=k/ohMPZWbrnzGftwk/mZJYJOf3NBSncQN3xM7RjjpFZwEuZ2cf6DwekpSd4GPR8KUU pXU3qhWvY3p5LXPpDn9hX54bY/PhhL8mFOPDvzJMeBV5DDIhw7ckm7WT/bEGgskzX32J 3DPDQ0uCk30a3bfQGixBu/nVKuI/1u7CMMlZq50OxCDsPj7sLw/vtqfU4uihh/uYN9wA ZcJmVyCPNl0X94jQ9V9nOd2GYPP22ljhL68c/HQTTucyNxzNICEsnlKRfielVRobjlpR 2OyXp5dG49P3xVBuU37DuIO1A6RlGc3Fp+T4SuLXLhn49D8fRGANve3ntxiBdZjmG336 xe0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792246116; x=1792850916; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=HsS7zD1Uucl5hqez+slw3pwoFAUHw9mJSijEO6l6OA0=; b=m73BzUZqHpx6WBxDuGxYt06gQv1mtySdOpdQyw4FGbU8S8hLGJBcn/MNk8tFl9zay3 KwXoZ0sPd4/FFdUlpws2FFVaf6Z5iOlnoexH6eihcpUs7Rzda9Yga80alIRSW3BtjStt fIQXYY6bh67zjGBfi6/PooK+ZATUeR16QIBA+7ec6fucph6t/r0aLn8Hv5IBinOuMq1P muxZMumW3fn0p2/Ck27wRilaf7dyb8o5McGIQlpcVJUd4zW7ETq+NZomktxUrFdQvAYZ xqPI/iVnoMGn82qwADw4lB7cO6X9u6B+AGsKMsKf5sMVBtu7htpCFFgUTP9PzGeGEIVG CF1w== X-Forwarded-Encrypted: i=1; AKwUvBwxHLWa4+4L5b576sAgpIyQP/Q2KN3Xldtuf/Kjq4PlUDku5mJqWXNw4gX4l8OaI5IpcUceJTuZAMMFErQ=@vger.kernel.org X-Gm-Message-State: AFq9FYIXaouR/dbQq8dbehMaIZl6z1RKVt/8eDHv5nV96uNRwD2slqug ApVPifc+jrV7Mw/g6+HYWxZqp2DA2E831d40oHv9Lr0DD0KGu/8yMDcS X-Gm-Gg: AYBFou0g0qQGDua2fDYXqzNavqyH/zw1hP4KBdYTjMSgeoo/TGVL4u+t3VMP1pFmi1p nRzM34KSzZfQ3SPJNX+Wi46mnMT2bU5zmUSI0VVjnSA5Al+x4NISZG5/Pt8NRgVYBrRmfKspoDs SQc8EUUj4FD468L9N4EsUWzIyNJ6Xbb92d0vOSbDtOppwPLrZlnU59XJiZupSQqiDQsj/l255qh dhZWW/w/kk7AgW9BeNjh6of/Hy2okbZYFmaD/+qSL//VCMOgsta4/QlVGQB7wHcBaEf7/ZA/Ho/ TrJwwkAUYRFrOLMnpEilvRvDrmQcehguSvdwEhNK2Ulg9QtRvUsdpIa/ZUIjN/SyIdDErSNkxIF PtEnZdzpWPEc82HBKSOOr0QLReHOfUoP3bIx6n2fVBsa/SqVeAkEi0+dJszPKnbXrXMdLRxzS+c eGxso7q5/SZzyftWBQbMYT7JySBHLcxrGd8cs1j2uMG6YnGehbIMp6JOipy/r33x/bca3Xu92f5 i5gAITpUHGRdo+8UtGMnD9/3QVwldT5vn5AY2U8+UwnvG7YotOxeFLSBd9lUr3oSzpD5Pj7e2rC /g== X-Received: by 2002:a05:600c:34c3:b0:4a1:df11:45a9 with SMTP id 5b1f17b1804b1-4a1df11472emr20823185e9.4.1792246115663; Sat, 17 Oct 2026 07:08:35 -0700 (PDT) Received: from machine.home.arpa ([2a0d:3344:57f6::1046]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a1ce3302b5sm84430745e9.4.2026.10.17.07.08.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Oct 2026 07:08:35 -0700 (PDT) From: Luka Panio To: Dmitry Torokhov Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Henrik Rydberg , Douglas Anderson , linux-input@vger.kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Luka Panio Subject: [PATCH 0/7] Input: edt-ft5x06 - add SPI transport and FocalTech FT8722 support Date: Sat, 17 Oct 2026 16:07:48 +0200 Message-ID: <20261017140827.290666-1-lukapanio@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The FocalTech FT8722 is a touch and display driver (TDDI) found in the Nexphone (QCM6490). Its touch controller speaks the usual FocalTech register protocol handled by edt-ft5x06, but it is connected over SPI, has no flash and runs its firmware from RAM, and shares its power and reset with the display panel. This series: - splits the bus independent core of edt-ft5x06 from the I2C driver (patch 1) and moves the controller bring-up into a helper (patch 2), - adds an optional per-chip boot hook, used to download the firmware after every reset (patch 3), and a per-chip touch data register (patch 4), - documents the FT8722 touch controller as focaltech,ft8722-ts, keeping it distinct from the display side of the chip (patch 5), - adds an SPI transport with the FT8722 firmware loader (patch 6), - lets the driver follow a DRM panel, like i2c-hid does, so the touch controller is powered down and re-initialised together with the panel (patch 7). Tested on the Nexphone by Nex Computers. A board DTS using it will follow separately. Luka Panio (7): Input: edt-ft5x06 - split the bus independent core from the I2C driver Input: edt-ft5x06 - move the controller bring-up into a helper Input: edt-ft5x06 - add an optional controller boot hook Input: edt-ft5x06 - allow a chip specific touch data register dt-bindings: input: touchscreen: edt-ft5x06: Add FocalTech FT8722 Input: edt-ft5x06 - add SPI transport and FT8722 support Input: edt-ft5x06 - support following a DRM panel .../input/touchscreen/edt-ft5x06.yaml | 37 ++ drivers/input/touchscreen/Kconfig | 15 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/edt-ft5x06-spi.c | 475 ++++++++++++++ drivers/input/touchscreen/edt-ft5x06.c | 585 ++++++++++++------ drivers/input/touchscreen/edt-ft5x06.h | 33 + 6 files changed, 957 insertions(+), 189 deletions(-) create mode 100644 drivers/input/touchscreen/edt-ft5x06-spi.c create mode 100644 drivers/input/touchscreen/edt-ft5x06.h base-commit: d419d682257d813f6cb7a28e42b35d0edf4ad038 -- 2.55.0