From 40e64f1564adbba28628502cb0406f33313c684d Mon Sep 17 00:00:00 2001 From: Dominik Lau Date: Wed, 7 Aug 2024 13:02:33 +0200 Subject: [PATCH] drivers: input: use generic touch report in ft5336 Adds the use of generic touch reporting method for ft5336 driver. Signed-off-by: Dominik Lau Signed-off-by: Filip Kokosinski --- drivers/input/Kconfig.ft5336 | 1 + drivers/input/input_ft5336.c | 8 ++++++-- dts/bindings/input/focaltech,ft5336.yaml | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/input/Kconfig.ft5336 b/drivers/input/Kconfig.ft5336 index f817616a1d6..1f09483cc32 100644 --- a/drivers/input/Kconfig.ft5336 +++ b/drivers/input/Kconfig.ft5336 @@ -7,6 +7,7 @@ menuconfig INPUT_FT5336 default y depends on DT_HAS_FOCALTECH_FT5336_ENABLED select I2C + select INPUT_TOUCH help Enable driver for multiple Focaltech capacitive touch panel controllers. This driver should support FT5x06, FT5606, FT5x16, diff --git a/drivers/input/input_ft5336.c b/drivers/input/input_ft5336.c index c13276bd99d..2b82f7fbc7b 100644 --- a/drivers/input/input_ft5336.c +++ b/drivers/input/input_ft5336.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -50,6 +51,7 @@ LOG_MODULE_REGISTER(ft5336, CONFIG_INPUT_LOG_LEVEL); /** FT5336 configuration (DT). */ struct ft5336_config { + struct input_touchscreen_common_config common; /** I2C bus. */ struct i2c_dt_spec bus; struct gpio_dt_spec reset_gpio; @@ -76,6 +78,8 @@ struct ft5336_data { bool pressed_old; }; +INPUT_TOUCH_STRUCT_CHECK(struct ft5336_config); + static int ft5336_process(const struct device *dev) { const struct ft5336_config *config = dev->config; @@ -126,8 +130,7 @@ static int ft5336_process(const struct device *dev) } if (pressed) { - input_report_abs(dev, INPUT_ABS_X, col, false, K_FOREVER); - input_report_abs(dev, INPUT_ABS_Y, row, false, K_FOREVER); + input_touchscreen_report_pos(dev, col, row, K_FOREVER); input_report_key(dev, INPUT_BTN_TOUCH, 1, true, K_FOREVER); } else if (data->pressed_old && !pressed) { input_report_key(dev, INPUT_BTN_TOUCH, 0, true, K_FOREVER); @@ -293,6 +296,7 @@ static int ft5336_pm_action(const struct device *dev, #define FT5336_INIT(index) \ PM_DEVICE_DT_INST_DEFINE(n, ft5336_pm_action); \ static const struct ft5336_config ft5336_config_##index = { \ + .common = INPUT_TOUCH_DT_INST_COMMON_CONFIG_INIT(index), \ .bus = I2C_DT_SPEC_INST_GET(index), \ .reset_gpio = GPIO_DT_SPEC_INST_GET_OR(index, reset_gpios, {0}), \ IF_ENABLED(CONFIG_INPUT_FT5336_INTERRUPT, \ diff --git a/dts/bindings/input/focaltech,ft5336.yaml b/dts/bindings/input/focaltech,ft5336.yaml index d58ba18df80..0571754d299 100644 --- a/dts/bindings/input/focaltech,ft5336.yaml +++ b/dts/bindings/input/focaltech,ft5336.yaml @@ -5,7 +5,7 @@ description: FT3267/FT5XX6/FT6XX6 capacitive touch panels compatible: "focaltech,ft5336" -include: i2c-device.yaml +include: [i2c-device.yaml, touchscreen-common.yaml] properties: int-gpios: