[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241018020815.3098263-2-charles.goodix@gmail.com>
Date: Fri, 18 Oct 2024 10:08:16 +0800
From: Charles Wang <charles.goodix@...il.com>
To: krzk@...nel.org,
dmitry.torokhov@...il.com,
hbarnor@...omium.org,
dianders@...omium.org,
conor.dooley@...rochip.com
Cc: jikos@...nel.org,
bentiss@...nel.org,
linux-input@...r.kernel.org,
devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
Charles Wang <charles.goodix@...il.com>
Subject: [PATCH] dt-bindings: input: Goodix SPI HID Touchscreen
The Goodix GT7986U touch controller report touch data according to the
HID protocol through the SPI bus. However, it is incompatible with
Microsoft's HID-over-SPI protocol.
Signed-off-by: Charles Wang <charles.goodix@...il.com>
---
.../bindings/input/goodix,gt7375p.yaml | 68 ++++++++++++++++---
1 file changed, 58 insertions(+), 10 deletions(-)
diff --git a/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml b/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml
index 358cb8275..184d9c320 100644
--- a/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml
+++ b/Documentation/devicetree/bindings/input/goodix,gt7375p.yaml
@@ -8,27 +8,27 @@ title: Goodix GT7375P touchscreen
maintainers:
- Douglas Anderson <dianders@...omium.org>
+ - Charles Wang <charles.goodix@...il.com>
description:
- Supports the Goodix GT7375P touchscreen.
- This touchscreen uses the i2c-hid protocol but has some non-standard
- power sequencing required.
-
-allOf:
- - $ref: /schemas/input/touchscreen/touchscreen.yaml#
+ The Goodix GT7375P and GT7986U touchscreens support both SPI and I2C interfaces.
+ With the I2C interface, they use the i2c-hid protocol but require non-standard
+ power sequencing. With the SPI interface, they use a custom HID protocol that
+ is incompatible with Microsoft's HID-over-SPI protocol.
properties:
compatible:
oneOf:
- - const: goodix,gt7375p
+ - items:
+ - const: goodix,gt7375p
- items:
- const: goodix,gt7986u
- const: goodix,gt7375p
+ - items:
+ - const: goodix,gt7986u
reg:
- enum:
- - 0x5d
- - 0x14
+ maxItems: 1
interrupts:
maxItems: 1
@@ -57,6 +57,15 @@ properties:
This property is used to avoid the back-powering issue.
type: boolean
+ goodix,hid-report-addr:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ The register address for retrieving HID report data.
+ This address is related to the device firmware and may
+ change after a firmware update.
+
+ spi-max-frequency: true
+
required:
- compatible
- reg
@@ -64,6 +73,25 @@ required:
- reset-gpios
- vdd-supply
+allOf:
+ - $ref: /schemas/input/touchscreen/touchscreen.yaml#
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+ - if:
+ properties:
+ compatible:
+ items:
+ - const: goodix,gt7986u
+ then:
+ required:
+ - goodix,hid-report-addr
+ else:
+ properties:
+ goodix,hid-report-addr: false
+ spi-max-frequency: false
+ reg:
+ enum: [0x5d, 0x14]
+
additionalProperties: false
examples:
@@ -87,3 +115,23 @@ examples:
vdd-supply = <&pp3300_ts>;
};
};
+
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/gpio/gpio.h>
+
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@0 {
+ compatible = "goodix,gt7986u";
+ reg = <0>;
+ interrupt-parent = <&gpio>;
+ interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+ spi-max-frequency = <10000000>;
+ goodix,hid-report-addr = <0x22c8c>;
+ vdd-supply = <&pp3300_ts>;
+ };
+ };
--
2.43.0
Powered by blists - more mailing lists