mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
Input: atmel_mxt_ts - add support for generic touchscreen configurations
This provides support for generic touchscreen configuration options like swapped-x-y, min-x, min-y, size-x, size-y, etc. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Link: https://lore.kernel.org/r/20250909054903.11519-3-clamor95@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
b90d027afb
commit
fd321a861f
|
|
@ -19,6 +19,7 @@
|
|||
#include <linux/firmware.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/input/mt.h>
|
||||
#include <linux/input/touchscreen.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/of.h>
|
||||
|
|
@ -355,6 +356,8 @@ struct mxt_data {
|
|||
enum mxt_suspend_mode suspend_mode;
|
||||
|
||||
u32 wakeup_method;
|
||||
|
||||
struct touchscreen_properties prop;
|
||||
};
|
||||
|
||||
struct mxt_vb2_buffer {
|
||||
|
|
@ -888,8 +891,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
|
|||
|
||||
/* Touch active */
|
||||
input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
|
||||
input_report_abs(input_dev, ABS_MT_POSITION_X, x);
|
||||
input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
|
||||
touchscreen_report_pos(input_dev, &data->prop, x, y, true);
|
||||
input_report_abs(input_dev, ABS_MT_PRESSURE, amplitude);
|
||||
input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, area);
|
||||
} else {
|
||||
|
|
@ -1010,8 +1012,7 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
|
|||
id, type, x, y, major, pressure, orientation);
|
||||
|
||||
input_mt_report_slot_state(input_dev, tool, 1);
|
||||
input_report_abs(input_dev, ABS_MT_POSITION_X, x);
|
||||
input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
|
||||
touchscreen_report_pos(input_dev, &data->prop, x, y, true);
|
||||
input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
|
||||
input_report_abs(input_dev, ABS_MT_PRESSURE, pressure);
|
||||
input_report_abs(input_dev, ABS_MT_DISTANCE, distance);
|
||||
|
|
@ -2212,6 +2213,8 @@ static int mxt_initialize_input_device(struct mxt_data *data)
|
|||
0, 255, 0, 0);
|
||||
}
|
||||
|
||||
touchscreen_parse_properties(input_dev, true, &data->prop);
|
||||
|
||||
/* For T15 and T97 Key Array */
|
||||
if (data->T15_reportid_min || data->T97_reportid_min) {
|
||||
for (i = 0; i < data->t15_num_keys; i++)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user