summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorStephan Gerhold <stephan@gerhold.net>2021-10-13 14:23:05 +0300
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2021-10-16 06:26:30 +0300
commit872e57abd171515bc180f2d44c2c99da29542320 (patch)
tree6c0be57069c06d873db1b258a0e30415e837f163 /drivers/input
parentf041a7af12636639d9c87e541c4c261d40f5afa7 (diff)
downloadlinux-872e57abd171515bc180f2d44c2c99da29542320.tar.xz
Input: tm2-touchkey - allow changing keycodes from userspace
At the moment the touch keys have key codes assigned from the device tree. In some cases, users might want to change the key code from userspace. There is existing functionality for this in the input core using the EVIOCSKEYCODE ioctl, which is integrated for example into udev. Make it possible to use this functionality for tm2-touchkey by simply making the input core aware of the array that holds the keycodes. Similar code also exists in mcs_touchkey and mpr121_touchkey. Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Link: https://lore.kernel.org/r/20211013112305.41574-2-stephan@gerhold.net Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/keyboard/tm2-touchkey.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/input/keyboard/tm2-touchkey.c b/drivers/input/keyboard/tm2-touchkey.c
index ce40ea2d940f..632cd6c1c8d4 100644
--- a/drivers/input/keyboard/tm2-touchkey.c
+++ b/drivers/input/keyboard/tm2-touchkey.c
@@ -252,6 +252,10 @@ static int tm2_touchkey_probe(struct i2c_client *client,
touchkey->input_dev->name = TM2_TOUCHKEY_DEV_NAME;
touchkey->input_dev->id.bustype = BUS_I2C;
+ touchkey->input_dev->keycode = touchkey->keycodes;
+ touchkey->input_dev->keycodemax = touchkey->num_keycodes;
+ touchkey->input_dev->keycodesize = sizeof(touchkey->keycodes[0]);
+
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,