From: Joel Selvaraj <joelselvaraj.oss@gmail.com>
To: Caleb Connolly <caleb@connolly.tech>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Andy Gross <agross@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Henrik Rydberg <rydberg@bitmath.org>,
Arnd Bergmann <arnd@arndb.de>,
Robert Jarzmik <robert.jarzmik@free.fr>,
Jeff LaBundy <jeff@labundy.com>,
Markuss Broks <markuss.broks@gmail.com>,
Jean Delvare <jdelvare@suse.de>, Job Noorman <job@noorman.info>,
Alistair Francis <alistair@alistair23.me>,
Chris Morgan <macromorgan@hotmail.com>,
Hans de Goede <hdegoede@redhat.com>
Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
~postmarketos/upstreaming@lists.sr.ht,
phone-devel@vger.kernel.org,
Joel Selvaraj <joelselvaraj.oss@gmail.com>
Subject: [PATCH v2 0/5] Add support for Focaltech FTS Touchscreen
Date: Mon, 10 Apr 2023 11:01:55 -0500 [thread overview]
Message-ID: <20230410160200.57261-1-joelselvaraj.oss@gmail.com> (raw)
Changes in v2:
--------------
1. dt-bindings changes (Suggested by Krzysztof Kozlowski)
- changed file name from focaltech,fts.yaml to focaltech,fts5452.yaml
- removed focaltech,max-touch-number property, handled in driver now
- removed touchscreen-* properties and used unevaluatedProperties: false
instead of additionalProperties: false
- fixed the example dts node name to be generic
2. FTS Touchscreen driver changes (Suggested by Markuss Broks and Jeff LaBundy)
- removed repeated license terms since SPDX tag is used
- includes are now sorted
- added the missing input_mt_sync_frame when reporting touch
- focaltech,max-touch-number is no longer read from dts and instead
specified in the driver as compatible data.
- removed redundant __set_bits
- input_mt_init_slots is now called after the axes are defined
- irq handler now returns IRQ_NONE when there is an i2c error
- other minor fixes and refactoring as suggested
- renamed driver filename from focaltech_fts.c to focaltech_fts5452.c
(Suggested by Krzysztof Kozlowski)
3. dts changes (Suggested by Krzysztof Kozlowski)
- use generic touchscreen nodes
- removed focaltech,max-touch-number property
- irq type was specified wrongly for Poco F1 in v1. Changed the irq
type to IRQ_TYPE_EDGE_FALLING as that is correct.
Some Clarifications:
--------------------
1. Jeff LaBundy suggested I could read chip id with the following:
__be16 val;
regmap_raw_read(data->regmap, FTS_REG_CHIP_ID_H, &val, sizeof(val));
But this is not possible because FTS_REG_CHIP_ID_H and FTS_REG_CHIP_ID_L
are not continous register, therefore reading it together as 16-bit values
will not work. So I went with what Markuss Broks suggested:
regmap_read(data->regmap, FTS_REG_CHIP_ID_L, &id);
regmap_read(data->regmap, FTS_REG_CHIP_ID_H, &val);
id |= val << 8;
2. As Markuss Broks suggested, I tried to cast the buffer to struct, but
unfortunately was not able to successfully do it. The buffer layout is
weirdly split into 4 bits and 12 bits at someplaces which makes it hard
to cast into a struct. For example, we can note
type = buf[base + 3] >> 6
x = ((buf[base + 3] & 0x0F) << 8) + (buf[base + 4] & 0xFF);
Here at buffer index 3, the first two bits (>>6) are used for denoting
event type. The next two bits are not used. But the last 4 bits (&0x0F)
of buffer[3] are added with buffer index 4 to get the x position.
I don't know how to handle these when casting to a struct. I tried
experimenting with bitfields in struct, but to no avail. So I am sticking
with my initial implementation for now.
Kindly let me know if any further improvements are needed. Thanks.
The Focaltech FTS driver supports several variants of focaltech
touchscreens found in ~2018 era smartphones including variants found on
the PocoPhone F1 and the SHIFT6mq which are already present in mainline.
This driver is loosely based on the original driver from Focaltech and
the patches submitted by Caleb Connolly previously[1] but has been
simplified and largely reworked.
[1] https://patchwork.kernel.org/project/linux-input/patch/20220123173650.290349-3-caleb@connolly.tech/
Joel Selvaraj (5):
dt-bindings: input: touchscreen: add bindings for focaltech,fts5452
Input: add driver for Focaltech FTS touchscreen
arm64: dts: qcom: sdm845-xiaomi-beryllium-common: add touchscreen
related nodes
arm64: dts: qcom: sdm845-xiaomi-beryllium-ebbg: introduce support for
fts touchscreen
arm64: dts: qcom: sdm845-shift-axolotl: update focaltech touchscreen
properties
.../input/touchscreen/focaltech,fts5452.yaml | 71 +++
MAINTAINERS | 8 +
.../boot/dts/qcom/sdm845-shift-axolotl.dts | 15 +-
.../qcom/sdm845-xiaomi-beryllium-common.dtsi | 39 ++
.../dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts | 26 ++
drivers/input/touchscreen/Kconfig | 12 +
drivers/input/touchscreen/Makefile | 1 +
drivers/input/touchscreen/focaltech_fts5452.c | 432 ++++++++++++++++++
8 files changed, 596 insertions(+), 8 deletions(-)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/focaltech,fts5452.yaml
create mode 100644 drivers/input/touchscreen/focaltech_fts5452.c
--
2.40.0
next reply other threads:[~2023-04-10 16:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-10 16:01 Joel Selvaraj [this message]
2023-04-10 16:01 ` [PATCH v2 1/5] dt-bindings: input: touchscreen: add bindings for focaltech,fts5452 Joel Selvaraj
2023-04-11 5:55 ` Krzysztof Kozlowski
2023-04-14 0:32 ` Joel Selvaraj
2023-04-14 7:44 ` Krzysztof Kozlowski
2023-04-10 16:01 ` [PATCH v2 2/5] Input: add driver for Focaltech FTS touchscreen Joel Selvaraj
2023-04-10 16:01 ` [PATCH v2 3/5] arm64: dts: qcom: sdm845-xiaomi-beryllium-common: add touchscreen related nodes Joel Selvaraj
2023-04-11 5:56 ` Krzysztof Kozlowski
2023-04-10 16:01 ` [PATCH v2 4/5] arm64: dts: qcom: sdm845-xiaomi-beryllium-ebbg: introduce support for fts touchscreen Joel Selvaraj
2023-04-11 19:58 ` Konrad Dybcio
2023-04-10 16:02 ` [PATCH v2 5/5] arm64: dts: qcom: sdm845-shift-axolotl: update focaltech touchscreen properties Joel Selvaraj
2023-04-11 19:59 ` Konrad Dybcio
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=20230410160200.57261-1-joelselvaraj.oss@gmail.com \
--to=joelselvaraj.oss@gmail.com \
--cc=agross@kernel.org \
--cc=alistair@alistair23.me \
--cc=andersson@kernel.org \
--cc=arnd@arndb.de \
--cc=caleb@connolly.tech \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=hdegoede@redhat.com \
--cc=jdelvare@suse.de \
--cc=jeff@labundy.com \
--cc=job@noorman.info \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=macromorgan@hotmail.com \
--cc=markuss.broks@gmail.com \
--cc=phone-devel@vger.kernel.org \
--cc=robert.jarzmik@free.fr \
--cc=robh+dt@kernel.org \
--cc=rydberg@bitmath.org \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/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;
as well as URLs for NNTP newsgroup(s).