linux/drivers/input/keyboard
Philip Chen 820c872795 Input: cros-ec-keyb - expose function row physical map to userspace
The top-row keys in a keyboard usually have dual functionalities.
E.g. A function key "F1" is also an action key "Browser back".

Therefore, when an application receives an action key code from
a top-row key press, the application needs to know how to correlate
the action key code with the function key code and do the conversion
whenever necessary.

Since the userpace already knows the key scanlines (row/column)
associated with a received key code. Essentially, the userspace only
needs a mapping between the key row/column and the matching physical
location in the top row.

So, enhance the cros-ec-keyb driver to create such a mapping
and expose it to userspace in the form of a function_row_physmap
attribute. The attribute would be a space separated ordered list of
row/column codes for the keys in the function row, in a left-to-right
order.

The attribute will only be present when the device has a custom design
for the top-row keys.

Signed-off-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20210115122412.v7.2.I6542d7d9d0b246e7079bb16b41e697b2ac4b4e39@changeid
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2021-02-22 21:22:15 -08:00
..
adc-keys.c Input: adc-keys - switch to using polled mode of input devices 2019-10-29 17:13:42 -07:00
adp5520-keys.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
adp5588-keys.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
adp5589-keys.c Input: adp5589-keys - do not explicitly control IRQ for wakeup 2020-12-11 13:15:53 -08:00
amikbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
applespi_trace.h Input: add Apple SPI keyboard and trackpad driver 2019-07-19 11:58:34 +03:00
applespi.c Input: applespi - fix occasional crc errors under load. 2021-02-19 11:13:29 -08:00
applespi.h Input: add Apple SPI keyboard and trackpad driver 2019-07-19 11:58:34 +03:00
atakbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
atkbd.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00
bcm-keypad.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
cap11xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
clps711x-keypad.c Input: clps711x-keypad - switch to using polled mode of input devices 2019-10-29 17:13:43 -07:00
cros_ec_keyb.c Input: cros-ec-keyb - expose function row physical map to userspace 2021-02-22 21:22:15 -08:00
davinci_keyscan.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
dlink-dir685-touchkeys.c Input: dlink-dir685-touchkeys - fix a typo in driver name 2020-04-22 14:15:06 -07:00
ep93xx_keypad.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
goldfish_events.c Input: goldfish_events - replace zero-length array with flexible-array member 2020-02-13 17:09:47 -08:00
gpio_keys_polled.c Input: gpio_keys_polled - replace zero-length array with flexible-array member 2020-02-14 17:19:19 -08:00
gpio_keys.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
hil_kbd.c
hilkbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 377 2019-06-05 17:37:10 +02:00
hpps2atkbd.h
imx_keypad.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
imx_sc_key.c Input: imx_sc_key - use devm_add_action_or_reset() to handle all cleanups 2020-05-13 10:34:58 -07:00
ipaq-micro-keys.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
iqs62x-keys.c input: keyboard: Add support for Azoteq IQS620A/621/622/624/625 2020-03-27 08:25:42 +00:00
jornada680_kbd.c Input: jornada680_kbd - switch to using polled mode of input devices 2019-10-29 17:13:44 -07:00
jornada720_kbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Kconfig Input: add missing dependencies on CONFIG_HAS_IOMEM 2021-02-19 11:02:18 -08:00
lkkbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
lm8323.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 394 2019-06-05 17:37:12 +02:00
lm8333.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 178 2019-05-30 11:29:19 -07:00
locomokbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
lpc32xx-keys.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
Makefile input: keyboard: Add support for Azoteq IQS620A/621/622/624/625 2020-03-27 08:25:42 +00:00
maple_keyb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 64 2019-05-24 17:36:46 +02:00
matrix_keypad.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max7359_keypad.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mcs_touchkey.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mpr121_touchkey.c Input: mpr121 - add polling mode 2019-10-15 17:43:54 -07:00
mtk-pmic-keys.c Linux 5.2 2019-07-15 09:42:32 -07:00
newtonkbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
nomadik-ske-keypad.c Input: nomadik-ske-keypad - provide some missing struct member docs 2020-11-08 22:19:53 -08:00
nspire-keypad.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
omap4-keypad.c Input: omap4-keypad - implement errata check for lost key-up events 2021-01-10 22:23:04 -08:00
omap-keypad.c treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD() 2020-07-30 11:15:58 -07:00
opencores-kbd.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
pmic8xxx-keypad.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
pxa27x_keypad.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
pxa930_rotary.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
qt1050.c Input: qt1050 - add Microchip AT42QT1050 support 2019-05-07 14:12:43 -07:00
qt1070.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
qt2160.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
samsung-keypad.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
sh_keysc.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
snvs_pwrkey.c Input: snvs_pwrkey - remove gratuitous NULL initializers 2019-12-04 17:56:55 -08:00
spear-keyboard.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
st-keyscan.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
stmpe-keypad.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 464 2019-06-19 17:09:10 +02:00
stowaway.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
sun4i-lradc-keys.c Linux 5.2 2019-07-15 09:42:32 -07:00
sunkbd.c Input: sunkbd - avoid use-after-free in teardown paths 2020-11-08 21:59:07 -08:00
tc3589x-keypad.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 464 2019-06-19 17:09:10 +02:00
tca6416-keypad.c Linux 5.6 2020-05-12 12:18:21 -07:00
tca8418_keypad.c Input: tca8418 - remove set but not used variable 'max_keys' 2019-05-27 19:01:42 -07:00
tegra-kbc.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
tm2-touchkey.c Input: tm2-touchkey - add vddio regulator 2020-12-09 19:47:11 -08:00
twl4030_keypad.c Input: twl4030_keypad - fix handling of platform_get_irq() error 2020-09-16 10:42:15 -07:00
xtkbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00