RE: [PATCH 1/2] dt-bindings: HID: i2c-hid: elan: Introduce FocalTech FT8112

From: Daniel Peng(彭博煜_Pegatron)
Date: Tue Nov 11 2025 - 02:51:53 EST


Hi Pin-yen,

I had re-submitted the 2 CLs to upstream. Please refer the attachments.

> +maintainers:
> + - Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

List yourself as the maintainer of this binding file instead of the subsystem maintainer.
[Daniel] What your mean is maintainers in this file should be Me right?(as below)
> +maintainers:
> + - Daniel Peng <Daniel_Peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

You have an extra '>' here. This should be caught by `make dt_binding_check`. Please check [1] and [2], and make sure the patches are tested before you send them out.
[Daniel] Yes. I had re-upload the patch again to remove the extra '>' in focaltech,ft8112.yaml.
Moreover, I confirm no error for focaltech,ft8112.yaml after running command "make dt_binding_check".


> +F: drivers/hid/

Why did you add this?
[Daniel] If not added this, the command ./scripts/checkpatch.pl 0001-dt-bindings-input-i2c-hid-Introduce-FocalTech-FT8112.patch would had 1 warning.
And the WARNING as below:
WARNING: added, moved or deleted files(s_, does MAINTAINERS need updating?
#21:
new file mode 100644


Thanks.

Best Regards.
Daniel

-----Original Message-----
From: daniel_peng+caf_=Daniel_Peng=pegatroncorp.com@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <daniel_peng+caf_=Daniel_Peng=pegatroncorp.com@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sent: Tuesday, November 11, 2025 3:18 PM
To: daniel_peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>; linux-input@xxxxxxxxxxxxxxx; LKML <linux-kernel@xxxxxxxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>; Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; devicetree@xxxxxxxxxxxxxxx
Subject: Re: [PATCH 1/2] dt-bindings: HID: i2c-hid: elan: Introduce FocalTech FT8112

Hi Daniel,

On Tue, Nov 11, 2025 at 9:34 AM
<daniel_peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> From: Daniel Peng <Daniel_Peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
>
> The FocalTech FT8112 touch screen chip same as Ilitek ili2901
> controller has a reset gpio. The difference is that they have
> different post_gpio_reset_on_delay_ms.
> FocalTech FT8112 also uses 3.3V power supply.
>
> Signed-off-by: Daniel Peng
> <Daniel_Peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
> ---
>
> .../bindings/input/focaltech,ft8112.yaml | 66 +++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 67 insertions(+)
> create mode 100644
> Documentation/devicetree/bindings/input/focaltech,ft8112.yaml
>
> diff --git
> a/Documentation/devicetree/bindings/input/focaltech,ft8112.yaml
> b/Documentation/devicetree/bindings/input/focaltech,ft8112.yaml
> new file mode 100644
> index 000000000000..391825b24fcb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/focaltech,ft8112.yaml
> @@ -0,0 +1,66 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/focaltech,ft8112.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: FocalTech FT8112 touchscreen controller
> +
> +maintainers:
> + - Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

List yourself as the maintainer of this binding file instead of the subsystem maintainer.
> +
> +description:
> + Supports the FocalTech FT8112 touchscreen controller.
> + This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
> +
> +allOf:
> + - $ref: /schemas/input/touchscreen/touchscreen.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - focaltech,ft8112
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + panel: true
> +
> + reset-gpios:
> + maxItems: 1
> +
> + vcc33-supply: true
> +
> + vccio-supply: true
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - vcc33-supply
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + touchscreen@38 {
> + compatible = "focaltech,ft8112";
> + reg = <0x38>;
> +
> + interrupt-parent = <&pio>;
> + interrupts = <15 IRQ_TYPE_LEVEL_LOW>>;

You have an extra '>' here. This should be caught by `make dt_binding_check`. Please check [1] and [2], and make sure the patches are tested before you send them out.

[1]: https://www.kernel.org/doc/Documentation/devicetree/writing-schema.md
[2]: https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
> +
> + reset-gpios = <&pio 126 GPIO_ACTIVE_LOW>;
> + vcc33-supply = <&pp3300_tchscr_x>;
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS index
> ddecf1ef3bed..69f54515fe98 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12326,6 +12326,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
> F: Documentation/devicetree/bindings/input/
> F: Documentation/devicetree/bindings/serio/
> F: Documentation/input/
> +F: drivers/hid/

Why did you add this?

> F: drivers/input/
> F: include/dt-bindings/input/
> F: include/linux/gameport.h

Regards,
Pin-yen


This e-mail and its attachment may contain information that is confidential or privileged, and are solely for the use of the individual to whom this e-mail is addressed. If you are not the intended recipient or have received it accidentally, please immediately notify the sender by reply e-mail and destroy all copies of this email and its attachment. Please be advised that any unauthorized use, disclosure, distribution or copying of this email or its attachment is strictly prohibited.

本電子郵件及其附件可能含有機密或依法受特殊管制之資訊,僅供本電子郵件之受文者使用。台端如非本電子郵件之受文者或誤收本電子郵件,請立即回覆郵件通知寄件人,並銷毀本電子郵件之所有複本及附件。任何未經授權而使用、揭露、散佈或複製本電子郵件或其附件之行為,皆嚴格禁止 。

--- Begin Message --- From: Daniel Peng <Daniel_Peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

The FocalTech FT8112 touch screen chip same as Ilitek ili2901 controller
has a reset gpio. The difference is that they have different
post_gpio_reset_on_delay_ms.
FocalTech FT8112 also uses 3.3V power supply.

Signed-off-by: Daniel Peng <Daniel_Peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
---

.../bindings/input/focaltech,ft8112.yaml | 66 +++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 67 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/focaltech,ft8112.yaml

diff --git a/Documentation/devicetree/bindings/input/focaltech,ft8112.yaml b/Documentation/devicetree/bindings/input/focaltech,ft8112.yaml
new file mode 100644
index 000000000000..114288787c98
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/focaltech,ft8112.yaml
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/focaltech,ft8112.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: FocalTech FT8112 touchscreen controller
+
+maintainers:
+ - Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
+
+description:
+ Supports the FocalTech FT8112 touchscreen controller.
+ This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
+
+allOf:
+ - $ref: /schemas/input/touchscreen/touchscreen.yaml#
+
+properties:
+ compatible:
+ enum:
+ - focaltech,ft8112
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ panel: true
+
+ reset-gpios:
+ maxItems: 1
+
+ vcc33-supply: true
+
+ vccio-supply: true
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - vcc33-supply
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ touchscreen@38 {
+ compatible = "focaltech,ft8112";
+ reg = <0x38>;
+
+ interrupt-parent = <&pio>;
+ interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+
+ reset-gpios = <&pio 126 GPIO_ACTIVE_LOW>;
+ vcc33-supply = <&pp3300_tchscr_x>;
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index ddecf1ef3bed..69f54515fe98 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12326,6 +12326,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
F: Documentation/devicetree/bindings/input/
F: Documentation/devicetree/bindings/serio/
F: Documentation/input/
+F: drivers/hid/
F: drivers/input/
F: include/dt-bindings/input/
F: include/linux/gameport.h
--
2.34.1


--- End Message ---
--- Begin Message --- From: Daniel Peng <Daniel_Peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

Information for touchscreen model HKO/RB116AS01-2 as below:
- HID :FTSC1000
- slave address:0X38
- Interface:HID over I2C
- Touch control lC:FT8112
- I2C ID: PNP0C50

Signed-off-by: Daniel Peng <Daniel_Peng@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
---

drivers/hid/i2c-hid/i2c-hid-of-elan.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/hid/i2c-hid/i2c-hid-of-elan.c b/drivers/hid/i2c-hid/i2c-hid-of-elan.c
index 0215f217f6d8..b81fcc6ff49e 100644
--- a/drivers/hid/i2c-hid/i2c-hid-of-elan.c
+++ b/drivers/hid/i2c-hid/i2c-hid-of-elan.c
@@ -168,6 +168,13 @@ static const struct elan_i2c_hid_chip_data elan_ekth6a12nay_chip_data = {
.power_after_backlight = true,
};

+static const struct elan_i2c_hid_chip_data focaltech_ft8112_chip_data = {
+ .post_power_delay_ms = 10,
+ .post_gpio_reset_on_delay_ms = 150,
+ .hid_descriptor_address = 0x0001,
+ .main_supply_name = "vcc33",
+};
+
static const struct elan_i2c_hid_chip_data ilitek_ili9882t_chip_data = {
.post_power_delay_ms = 1,
.post_gpio_reset_on_delay_ms = 200,
@@ -191,6 +198,7 @@ static const struct elan_i2c_hid_chip_data ilitek_ili2901_chip_data = {
static const struct of_device_id elan_i2c_hid_of_match[] = {
{ .compatible = "elan,ekth6915", .data = &elan_ekth6915_chip_data },
{ .compatible = "elan,ekth6a12nay", .data = &elan_ekth6a12nay_chip_data },
+ { .compatible = "focaltech,ft8112", .data = &focaltech_ft8112_chip_data },
{ .compatible = "ilitek,ili9882t", .data = &ilitek_ili9882t_chip_data },
{ .compatible = "ilitek,ili2901", .data = &ilitek_ili2901_chip_data },
{ }
--
2.34.1


--- End Message ---