Re: [PATCH 1/2] dt-bindings: input: document Novatek NVT touchscreen controller

From: Joel Selvaraj
Date: Wed May 22 2024 - 10:00:50 EST


Hi Krzysztof Kozlowski,

On 5/21/24 11:48, Krzysztof Kozlowski wrote:
On 21/05/2024 14:09, Joel Selvaraj via B4 Relay wrote:
From: Joel Selvaraj <joelselvaraj.oss@xxxxxxxxx>

Document the Novatek NVT touchscreen driver which is used in devices like

driver? or device?

touchscreen "controller" would be correct I think. I will fix it in v2.

the Xiaomi Poco F1 [1]. Also, include the devictree binding file in the
MAINTAINERS file.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-tianma.dts?h=v6.9

Signed-off-by: Joel Selvaraj <joelselvaraj.oss@xxxxxxxxx>
---
.../bindings/input/touchscreen/novatek,nvt-ts.yaml | 62 ++++++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 63 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/touchscreen/novatek,nvt-ts.yaml b/Documentation/devicetree/bindings/input/touchscreen/novatek,nvt-ts.yaml
new file mode 100644
index 0000000000000..7839c6a028e4a
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/novatek,nvt-ts.yaml
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/novatek,nvt-ts.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Novatek NVT Touchscreen Controller
+
+maintainers:
+ - Hans de Goede <hdegoede@xxxxxxxxxx>
+
+allOf:
+ - $ref: touchscreen.yaml#
+
+properties:
+ compatible:
+ enum:
+ - novatek,nvt-ts

That's too generic. Looking at your driver change, it is not even needed.

+ - novatek,nt36672a-ts

Eh, we have already panel. Why there is a need for touchscreen binding
(binding, not driver)?

I am not sure I understand this correctly. Help me a bit here. For context, in mainline there is an existing driver for the novatek nvt touchscreen controller. The driver did not have devicetree support. It only had a i2c_device_id "NVT-ts". I don't know what is the variant of that Novatek touchscreen controller. To use the driver in Xiaomi Poco F1, I introduced a devicetree compatible for it "novatek,nvt-ts". The However, the Novatek touchscreen controller present in Xiaomi Poco F1 is "NT36672A" which has a different chip id than the one in existing driver. So I created a separate compatible for this touchscreen controller variant "novatek,nt36672a-ts". I used compatible data to differentiate the two variants. Since there are two variants, I am mentioning both here.

Between, the chip_id and wake_type are the only values that changes between these two variants. And these are only checked during the probe and is not used anywhere else in the code. If we remove this sanity check during probing, then there is no need for two variants and we can just keep the generic "novatek,nvt-ts".

Kindly let me know what is the correct thing to do here? How this should be handled? I will be happy to address it in v2.

+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ reset-gpios:
+ maxItems: 1
+
+ vcc-supply: true
+ iovcc-supply: true
+
+unevaluatedProperties: false

This goes after required:

Will fix in v2.

+
+required:
+ - compatible
+ - reg
+ - interrupts
+


Best regards,
Krzysztof

Regards,
Joel Selvaraj