aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/keyboard/gpio_keys.c
Commit message (Collapse)AuthorAge
* Input: gpio_keys - add hooks to enable/disable deviceShubhrajyoti D2010-08-03
| | | | | | | | | Allow platform code to specify callbcks that will be invoked when input device is opened or closed, allowing, for example, to enable the device. Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - add gpiolib debounce supportGrazvydas Ignotas2010-06-28
| | | | | | | | | | | gpiolib now has debounce support added in .35, so let's make use of it. This allows to use hardware GPIO debouncing on some platforms like OMAP. In case gpiolib debounce setup fails for some GPIO, the driver will fall back to timer based debouncing, which is what it used before. Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* include cleanup: Update gfp.h and slab.h includes to prepare for breaking ↵Tejun Heo2010-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implicit slab.h inclusion from percpu.h percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: Tejun Heo <tj@kernel.org> Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
* Input: gpio-keys - add support for disabling gpios through sysfsMika Westerberg2010-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | Now gpio-keys input driver exports 4 new attributes to userland through sysfs: /sys/devices/platform/gpio-keys/keys [ro] /sys/devices/platform/gpio-keys/switches [ro] /sys/devices/platform/gpio-keys/disabled_keys [rw] /sys/devices/platform/gpio-keys/disables_switches [rw] With these attributes, userland program can read which keys and switches can be disabled and then disable/enable them as needed. Keys and switches are exported as stringified bitmap of codes (keycodes or switch codes). For example keys 15, 89, 100, 101, 102 are exported as: '15,89,100-102'. Description of the attributes: keys - bitmap of keys which can be disabled switches - bitmap of switches which can be disabled disabled_keys - bitmap of currently disabled keys (bit 1 means disabled, 0 enabled) disabled_switches - bitmap of currently disabled switches (bit 1 means disabled, 0 enabled) Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio_keys - scan gpio state at probe and resume timeDaniel Mack2009-11-30
| | | | | | | | | | | We need to read and report gpio state when we bind the driver to the device and upon resume so that userspace has correct state of the switches (and keys but they are less important since, even if they are happened to be pressed, we'd expect them to be released fairly soon). Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio_keys - seperate individual button setup to make code neaterBen Dooks2009-11-20
| | | | | | | | | | Move the code that deals with setting up each individual button out into a new function to reduce the indentation and allow us to common up some of the error recovery code. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio_keys - use <linux/gpio.h> instead of <asm/gpio.h>Ben Dooks2009-11-20
| | | | | | | | | The gpio keys driver should be using <linux/gpio.h> instead of <asm/gpio.h> Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio_keys - use dev_ macros to report informationBen Dooks2009-11-20
| | | | | | | | | | The gpio_keys driver is binding to a platform device but using pr_err() to report errors. Change to using dev_err() so that all messages are prefixed by the device name. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - use IRQF_SHAREDDmitry Eremin-Solenikov2009-11-03
| | | | | | | | | | | There is nothing that disallows gpio-keys to share it's IRQ line w/ other drivers. Make it use IRQF_SHARED in request_irq(). An example of other driver with which I'd like to share IRQ line for GPIO buttons is ledtrig-gpio. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio_keys - swtich to dev_pm_opsMike Rapoport2009-07-25
| | | | | Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - avoid possibility of sleeping in timer functionJani Nikula2009-06-29
| | | | | | | | The gpio_get_value function may sleep, so it should not be called in a timer function. Move gpio_get_value calls to workqueue. Signed-off-by: Jani Nikula <ext-jani.1.nikula@nokia.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - revert 'change timer to workqueue'Jani Nikula2009-06-29
| | | | | | | | | | | | This reverts commit 0b346838c5862bfe911432956a106d602535d030. This commit breaks GPIO debouncing by replacing the original mod_timer with schedule_delayed_work in the interrupt handler. The latter does not kick the timer further on GPIO line changes as it should to perform debouncing. Signed-off-by: Jani Nikula <ext-jani.1.nikula@nokia.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - change timer to workqueueAlek Du2009-06-11
| | | | | | | | The gpio_get_value function of I2C/SPI GPIO expander may sleep thus this function call can not be called in a timer function. Signed-off-by: Alek Du <alek.du@intel.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - remove depreciated IRQF_SAMPLE_RANDOM flagDmitry Torokhov2009-04-18
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - add flag to allow auto repeatDominic Curran2008-10-27
| | | | | | | | This patch adds a flag to gpio-key driver to turn on the input subsystems auto repeat feature if needed. Signed-off-by: Dominic Curran <dcurran@ti.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge branch 'next' into for-linusDmitry Torokhov2008-10-15
|\
| * Input: gpio-keys - simplify argument list for report_eventUwe Kleine-König2008-08-08
| | | | | | | | | | | | | | | | | | | | For now this only saves a few instructions (for gpio_keys_report_event, gpio_keys_isr and gpio_check_button one instraction each on ARM using arm-linux-gnu-gcc 4.2.3---I assume this is similar for other arch/compiler combinations). Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * Input: gpio-keys - optimize interrupt handlerUwe Kleine-König2008-08-08
| | | | | | | | | | | | | | | | By passing a gpio_button_data structure to the handler instead of the whole platform_device the search for the right button can go away. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: remove version.h from drivers that don't need itHuang Weiyi2008-08-18
| | | | | | | | | | | | | | | | | | If a driver dies not use LINUX_VERSION_CODE nor KERNEL_VERSION then it does not need to include version.h Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: gpio-keys - make gpio_keys_device_driver staticUwe Kleine-König2008-07-30
| | | | | | | | | | | | | | | | | | This fixes the sparse warning symbol 'gpio_keys_device_driver' was not declared. Should it be static? Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: gpio-keys - fix possible NULL pointer dereferenceUwe Kleine-König2008-07-30
|/ | | | | | | | | bdata->button is used in gpio_check_button but never initialized. Having a device with debounce_interval != 0 without this patch resulted on an oops on my machine. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys debouncing supportDmitry Baryshkov2008-05-16
| | | | | Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add MODULE_ALIAS() to hotpluggable platform modulesKay Sievers2008-04-24
| | | | | | | | | | | Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is prefixed with "platform:". Add MODULE_ALIAS() to the hotpluggable "input" platform drivers, to re-enable auto loading. [dbrownell@users.sourceforge.net: more drivers, registration fixes] Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio_keys - irq handling cleanupDavid Brownell2008-04-15
| | | | | | | | Cleanup IRQ handling in gpio_keys: bail after handling the IRQ, and report IRQ_NONE if we never handle it. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - request and configure GPIOsHerbert Valerio Riedel2007-11-21
| | | | | | | | | | | Currently, gpio_keys.c assumes the GPIOs to be already properly configured; this patch changes gpio-keys to perform explicit calls to gpio_request() and gpio_configure_input(). This matches the behaviour of leds-gpio. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* get rid of input BIT* duplicate definesJiri Slaby2007-10-19
| | | | | | | | | | | | | | | | | | | | | | get rid of input BIT* duplicate defines use newly global defined macros for input layer. Also remove includes of input.h from non-input sources only for BIT macro definiton. Define the macro temporarily in local manner, all those local definitons will be removed further in this patchset (to not break bisecting). BIT macro will be globally defined (1<<x) Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: <dtor@mail.ru> Acked-by: Jiri Kosina <jkosina@suse.cz> Cc: <lenb@kernel.org> Acked-by: Marcel Holtmann <marcel@holtmann.org> Cc: <perex@suse.cz> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: <vernux@us.ibm.com> Cc: <malattia@linux.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6Dmitry Torokhov2007-10-12
|\ | | | | | | | | | | Conflicts: drivers/macintosh/adbhid.c
| * Input: gpio_keys - remove duplicate includesJesper Juhl2007-07-23
| | | | | | | | | | Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: gpio-keys - add suspend/resume supportAnti Sullin2007-09-26
| | | | | | | | | | | | | | | | This patch adds suspend/resume support and enables wakeup from gpio_keys buttons. Signed-off-by: Anti Sullin <anti.sullin@artecdesign.ee> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: gpio_keys - verify that supplied GPIO numbers are validAnti Sullin2007-09-26
|/ | | | | | | | | | | | As David Brownell pointed out, gpio_keys driver does not check return code of gpio_to_irq(). This patch adds the gpio_to_irq return code check to gpio_keys and moves the IRQ edge type setting to request_irq flags to avoid changing the irq type before we have confirmed we can use it. Signed-off-by: Anti Sullin <anti.sullin@artecdesign.ee> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio_keys - add support for switches (EV_SW)Roman Moravcik2007-05-01
| | | | | | Signed-off-by: Roman Moravcik <roman.moravcik@gmail.com> Signed-off-by: Paul Sokolovsky <pmiscml@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6Dmitry Torokhov2007-05-01
|\ | | | | | | | | | | | | Conflicts: drivers/usb/input/Makefile drivers/usb/input/gtco.c
| * [PATCH] gpio_keys driver shouldn't be ARM-specificDavid Brownell2007-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The gpio_keys driver is wrongly ARM-specific; it can't build on other platforms with GPIO suport. This fixes that problem. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Dmitry Torokhov <dtor@mail.ru> Cc: pHilipp Zabel <philipp.zabel@gmail.com> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: Ben Nizette <ben.nizette@iinet.net.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Input: keyboards - switch to using input_dev->dev.parentDmitry Torokhov2007-04-12
| | | | | | | | | | | | | | | | In preparation for struct class_device -> struct device input core conversion, switch to using input_dev->dev.parent when specifying device position in sysfs tree. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: drivers/input/keyboard - don't access dev->private directlyDmitry Torokhov2007-04-12
|/ | | | | | Use input_get_drvdata() and input_set_drvdata() instead. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: gpio-keys - switch to common GPIO APIPhilipp Zabel2007-02-18
| | | | | | | This adds support for at least SA1100 and S3C24xx CPUs. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* [PATCH] Scheduled removal of SA_xxx interrupt flags fixups 2Thomas Gleixner2007-02-14
| | | | | | | | | | The obsolete SA_xxx interrupt flags have been used despite the scheduled removal. Fixup the remaining users in -mm. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Input: gpio-keys - keyboard driver for GPIO buttonsPhil Blundell2007-01-18
This is an interrupt-driven keyboard driver for simple buttons connected directly to CPU GPIO lines of embedded ARM systems. It supports pxa architectures and is used by a number of PDAs and PocketPC phones in the handhelds.org kernel. Support for other architectures, such as sa11xx and sc2410, will be added once generic GPIO API is available. Signed-off-by: Paul Sokolovsky <pmiscml@gmail.com> Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>