[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230919024943.3088916-1-tylor_yang@himax.corp-partner.google.com>
Date: Tue, 19 Sep 2023 10:49:41 +0800
From: Tylor Yang <tylor_yang@...ax.corp-partner.google.com>
To: dmitry.torokhov@...il.com, robh+dt@...nel.org,
krzysztof.kozlowski+dt@...aro.org, conor+dt@...nel.org,
jikos@...nel.org, benjamin.tissoires@...hat.com,
linux-input@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: poyuan_chang@...ax.corp-partner.google.com, jingliang@...omium.org,
hbarnor@...omium.org,
Tylor Yang <tylor_yang@...ax.corp-partner.google.com>
Subject: [PATCH V2 0/2] HID: touchscreen: add himax hid-over-spi driver
Hello,
This patch series adds the driver for Himax HID-over-SPI touchscreen ICs.
This driver takes a position in [1], it intends to take advantage of SPI
transfer speed and HID interface. The userspace program [2] can use ioctl
through general hidraw interface provided by kernel HID sub-system to
control touch IC without creating special file nodes.
Patch 1 adds the Maintainer and devicetree bindings document for driver.
Patch 2 adds the driver itself, Kconfig and Makefiles.
[1] Overview:
+--------------------------------+
| himax hid-over-spi TPIC driver |
+--------------------------------+
| +-----------+ +-----------+ | +-----------+ +-----------+
| | Device #1 | | Device #i | | | Device #j | | Device #k |
| +-----------+ +-----------+ | +-----------+ +-----------+
| \\ // | \\ //
| +------------+ | +------------+
| | I/O Driver | | | I/O Driver |
| +------------+ | +------------+
| || | ||
| +------------------+ | +------------------+
| | Transport Driver | | | Transport Driver |
| +------------------+ | +------------------+
| \___ | ___/
+--------------------------------+ /
\ /
+----------------+
| HID Core |
+----------------+
/ | | \
/ | | \
____________/ | | \_________________
/ | | \
/ | | \
+----------------+ +-----------+ +------------------+ +------------------+
| Generic Driver | | MT Driver | | Custom Driver #1 | | Custom Driver #2 |
+----------------+ +-----------+ +------------------+ +------------------+
[2] https://github.com/HimaxSoftware/hx_hid_util/tree/hid_func
version 2 changes
-rename bindings name from himax,hid-over-hx-spi to himax,hid-over-spi
-remove "himax,fw_size", "himax,heatmap_16bits", "himax,fw_in_flash", "himax,pid"
and "himax,boot_time_fw_upgrade" items from dt-bindings and related code
-add "himax,id-gpios" for user to specify hardware id pins
-rename "himax,ic_det_delay" to "himax,ic-det-delay-ms" and
"himax,ic_resume_delay" to "himax,ic-resume-delay-ms"
-MAINTAINER position adjust: move info to the position by letter order
-Kconfig add HX_HID_HAS_FLASH option to replace "himax,fw_in_flash"
-HIMAX_DRIVER_VER upadte from 0.0.10 to 0.0.11
-remove unused includes and description in hx_hid.c
-add code to map id-gpios value to PID
-correct variable naming style and misspellings in hx_ic_core.c/h
-remove unnecessary global varaible debug_flag
Tylor Yang (2):
dt-bindings: input: Introduce Himax HID-over-SPI device
HID: touchscreen: Add initial support for Himax HID-over-SPI
.../bindings/input/himax,hid-over-spi.yaml | 109 +
MAINTAINERS | 7 +
drivers/hid/Kconfig | 2 +
drivers/hid/Makefile | 2 +
drivers/hid/hx-hid/Kconfig | 55 +
drivers/hid/hx-hid/Makefile | 35 +
drivers/hid/hx-hid/hx_acpi.c | 96 +
drivers/hid/hx-hid/hx_core.c | 1626 ++++++++
drivers/hid/hx-hid/hx_core.h | 487 +++
drivers/hid/hx-hid/hx_hid.c | 757 ++++
drivers/hid/hx-hid/hx_hid.h | 96 +
drivers/hid/hx-hid/hx_ic_83102j.c | 345 ++
drivers/hid/hx-hid/hx_ic_83102j.h | 42 +
drivers/hid/hx-hid/hx_ic_core.c | 3260 +++++++++++++++++
drivers/hid/hx-hid/hx_ic_core.h | 792 ++++
drivers/hid/hx-hid/hx_inspect.c | 652 ++++
drivers/hid/hx-hid/hx_inspect.h | 104 +
drivers/hid/hx-hid/hx_of.c | 171 +
drivers/hid/hx-hid/hx_plat.c | 480 +++
drivers/hid/hx-hid/hx_plat.h | 30 +
20 files changed, 9148 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/himax,hid-over-spi.yaml
create mode 100644 drivers/hid/hx-hid/Kconfig
create mode 100644 drivers/hid/hx-hid/Makefile
create mode 100644 drivers/hid/hx-hid/hx_acpi.c
create mode 100644 drivers/hid/hx-hid/hx_core.c
create mode 100644 drivers/hid/hx-hid/hx_core.h
create mode 100644 drivers/hid/hx-hid/hx_hid.c
create mode 100644 drivers/hid/hx-hid/hx_hid.h
create mode 100644 drivers/hid/hx-hid/hx_ic_83102j.c
create mode 100644 drivers/hid/hx-hid/hx_ic_83102j.h
create mode 100644 drivers/hid/hx-hid/hx_ic_core.c
create mode 100644 drivers/hid/hx-hid/hx_ic_core.h
create mode 100644 drivers/hid/hx-hid/hx_inspect.c
create mode 100644 drivers/hid/hx-hid/hx_inspect.h
create mode 100644 drivers/hid/hx-hid/hx_of.c
create mode 100644 drivers/hid/hx-hid/hx_plat.c
create mode 100644 drivers/hid/hx-hid/hx_plat.h
--
2.25.1
Powered by blists - more mailing lists