Input: tm2-touchkey - report scan codes
authorStephan Gerhold <stephan@gerhold.net>
Wed, 13 Oct 2021 11:23:04 +0000 (13:23 +0200)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 16 Oct 2021 03:26:30 +0000 (20:26 -0700)
Report the index of pressed touch key as MSC_SCAN code to userspace
so it is possible to identify which of the keys was pressed (not
just the function that is currently assigned to the key).

This is done similarly also in mcs_touchkey and mpr121_touchkey.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20211013112305.41574-1-stephan@gerhold.net
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/tm2-touchkey.c

index 6218b1c..ce40ea2 100644 (file)
@@ -156,6 +156,8 @@ static irqreturn_t tm2_touchkey_irq_handler(int irq, void *devid)
                goto out;
        }
 
+       input_event(touchkey->input_dev, EV_MSC, MSC_SCAN, index);
+
        if (data & TM2_TOUCHKEY_BIT_PRESS_EV) {
                for (i = 0; i < touchkey->num_keycodes; i++)
                        input_report_key(touchkey->input_dev,
@@ -250,6 +252,7 @@ static int tm2_touchkey_probe(struct i2c_client *client,
        touchkey->input_dev->name = TM2_TOUCHKEY_DEV_NAME;
        touchkey->input_dev->id.bustype = BUS_I2C;
 
+       input_set_capability(touchkey->input_dev, EV_MSC, MSC_SCAN);
        for (i = 0; i < touchkey->num_keycodes; i++)
                input_set_capability(touchkey->input_dev, EV_KEY,
                                     touchkey->keycodes[i]);