linux/drivers/input/misc
Jeff LaBundy bbd16b0d83 Input: iqs7222 - drop unused device node references
Each call to device/fwnode_get_named_child_node() must be matched
with a call to fwnode_handle_put() once the corresponding node is
no longer in use. This ensures a reference count remains balanced
in the case of dynamic device tree support.

Currently, the driver never calls fwnode_handle_put(). Solve this
problem by moving the node handling from iqs7222_parse_props() to
the new iqs7222_parse_reg_grp(), leaving the former to do nothing
but parse properties. The latter then manages the reference count
in a single location and consistent fashion.

This change drastically simplifies iqs7222_parse_all(), which can
then call iqs7222_parse_reg_grp() on every register group without
having to treat each register group differently.

For nested event nodes, common parsing code has been factored out
to the new iqs7222_parse_event() so as to allow the event node to
be dropped from as few locations as possible.

As part of this refactor, the 'linux,code' property has been made
optional. This enables applications that define an event with the
sole purpose of enabling a GPIO.

Fixes: e505edaedc ("Input: add support for Azoteq IQS7222A/B/C")
Signed-off-by: Jeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/Y1SRJIQ3WPwNpC0K@nixie71
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
History 2022-10-24 05:09:23 -07:00
..
88pm80x_onkey.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
88pm860x_onkey.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
ab8500-ponkey.c Input: ab8500-ponkey - fix incorrect name in 'ab8500_ponkey' doc header 2020-11-08 22:27:54 -08:00
ad714x-i2c.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad714x-spi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad714x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
ad714x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
adxl34x-i2c.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
adxl34x-spi.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
adxl34x.c Input: adxl34x - fix sparse warning 2021-10-15 18:39:32 -07:00
adxl34x.h Input: adxl34x - make adxl34x_remove() return void 2021-10-12 19:48:52 -07:00
apanel.c Input: apanel - switch to using polled mode of input devices 2019-10-29 17:14:14 -07:00
ariel-pwrbutton.c Input: ariel-pwrbutton - add SPI device ID table 2021-10-01 21:24:14 -07:00
arizona-haptics.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
atc260x-onkey.c input: atc260x: Add onkey driver for ATC260x PMICs 2021-03-10 11:10:30 +00:00
ati_remote2.c Input: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
atlas_btns.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
atmel_captouch.c Input: atmel_captouch - drop obsolete dependency on COMPILE_TEST 2022-10-10 11:06:55 -07:00
axp20x-pek.c Linux 5.16 2022-01-17 18:03:39 -08:00
bma150.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
cm109.c Input: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
cma3000_d0x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
cma3000_d0x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
cma3000_d0x_i2c.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
cobalt_btns.c Input: cobalt_btns - switch to using polled mode of input devices 2019-10-29 17:14:17 -07:00
cpcap-pwrbutton.c Input: cpcap-pwrbutton - do not set input parent explicitly 2021-10-16 18:51:02 -07:00
da7280.c Input: da7280 - protect OF match table with CONFIG_OF 2020-12-18 10:04:34 -08:00
da9052_onkey.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
da9055_onkey.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
da9063_onkey.c Input: da9063 - use devm_delayed_work_autocancel() 2022-02-28 23:31:24 -08:00
dm355evm_keys.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
drv260x.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
drv2665.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
drv2667.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
e3x0-button.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
gpio-beeper.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
gpio-vibra.c Input: add a driver for GPIO controllable vibrators 2019-04-30 00:11:25 -07:00
gpio_decoder.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
hisi_powerkey.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
hp_sdc_rtc.c Input: hp_sdc_rtc - remove dead chardev code 2019-10-23 15:56:08 -07:00
ibm-panel.c Input: ibm-panel - add missing MODULE_DEVICE_TABLE 2022-09-28 09:04:32 -07:00
ideapad_slidebar.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ims-pcu.c Input: ims-pcu - fix spelling mistake "BOOLTLOADER" -> "BOOTLOADER" 2022-09-28 15:22:46 -07:00
iqs269a.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00
iqs626a.c Input: iqs626a - prohibit inlining of channel parsing functions 2021-11-28 23:59:35 -08:00
iqs7222.c Input: iqs7222 - drop unused device node references 2022-10-24 05:09:23 -07:00
Kconfig Input: atmel_captouch - drop obsolete dependency on COMPILE_TEST 2022-10-10 11:06:55 -07:00
keyspan_remote.c Input: move from strlcpy with unused retval to strscpy 2022-08-18 15:44:08 -07:00
kxtj9.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
m68kspkr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Makefile Input: rt5120 - add power key support 2022-08-31 15:48:49 -07:00
max8925_onkey.c Input: max8925_onkey - don't mark comment as kernel-doc 2021-10-15 22:10:33 -07:00
max8997_haptic.c Input: max8997 - simplify open coding of a division using up to 64 divisions 2021-03-25 11:14:08 -07:00
max77650-onkey.c Input: max77650-onkey - add of_match table 2020-01-16 20:23:24 -08:00
max77693-haptic.c Input: max77693-haptic - drop unneeded MODULE_ALIAS 2021-10-16 21:18:30 -07:00
mc13783-pwrbutton.c Input: mc13783-pwrbutton - file headers are not good candidates for kernel-doc 2020-11-19 19:18:22 -08:00
mma8450.c Input: mma8450 - switch to using polled mode of input devices 2019-10-29 17:15:48 -07:00
palmas-pwrbutton.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_320.RULE 2022-06-10 14:51:36 +02:00
pcap_keys.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pcf8574_keypad.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
pcf50633-input.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pcspkr.c Input: pcspkr - fix fall-through warnings for Clang 2020-11-22 22:16:21 -08:00
pm8xxx-vibrator.c Input: pm8xxx-vib - fix handling of separate enable register 2020-01-20 20:40:04 -08:00
pm8941-pwrkey.c Input: pm8941-pwrkey - simulate missed key press events 2022-04-24 18:25:15 -07:00
pmic8xxx-pwrkey.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
powermate.c Input: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
pwm-beeper.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 151 2019-05-30 11:26:28 -07:00
pwm-vibra.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00
rave-sp-pwrbutton.c Input: add RAVE SP Powerbutton driver 2018-03-08 15:34:45 -08:00
rb532_button.c Input: rb532_button - switch to using polled mode of input devices 2019-10-29 17:15:46 -07:00
regulator-haptic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
retu-pwrbutton.c Input: misc - drop empty remove functions 2017-01-21 23:53:34 -08:00
rk805-pwrkey.c Input: rk805-pwrkey - fix module autoloading 2022-08-22 16:59:49 -07:00
rotary_encoder.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rt5120-pwrkey.c Input: rt5120 - add power key support 2022-08-31 15:48:49 -07:00
sc27xx-vibra.c Input: sc27xx - add support for sc2730 and sc2721 2020-12-11 19:00:21 -08:00
sgi_btns.c Input: sgi_btns - switch to using polled mode of input devices 2019-10-29 17:15:26 -07:00
soc_button_array.c Input updates for v5.19-rc1 2022-06-07 15:00:29 -07:00
sparcspkr.c Input: sparcspkr - fix refcount leak in bbc_beep_probe 2022-05-16 21:10:11 -07:00
stpmic1_onkey.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
tps65218-pwrbutton.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_320.RULE 2022-06-10 14:51:36 +02:00
twl4030-pwrbutton.c Input: twl4030-pwrbutton - add missing of.h include 2022-09-27 08:43:04 -07:00
twl4030-vibra.c Input: twl4030-vibra - drop legacy, non DT boot support 2022-09-24 22:40:04 -07:00
twl6040-vibra.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
uinput.c Input: input_event - fix struct padding on sparc64 2019-12-13 15:00:36 -08:00
wistron_btns.c Input: wistron_btns - switch to using polled mode of input devices 2019-10-29 17:14:15 -07:00
wm831x-on.c Input: wm831x-on - source file headers are not good candidates for kernel-doc 2020-11-19 19:18:43 -08:00
xen-kbdfront.c xen: switch gnttab_end_foreign_access() to take a struct page pointer 2022-05-27 11:05:29 +02:00
yealink.c Input: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
yealink.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00