All of lore.kernel.org
 help / color / mirror / Atom feed
  • * [PATCH v2 0/4] da850-evm: add gpio-{keys,leds} for UI and BB expanders
    @ 2010-11-16 19:39   ` Ben Gardiner
      0 siblings, 0 replies; 104+ messages in thread
    From: Ben Gardiner @ 2010-11-16 19:39 UTC (permalink / raw)
      To: Kevin Hilman, davinci-linux-open-source, linux-input, Dmitry Torokhov
      Cc: linux-kernel, Chris Cordahi, Paul Mundt, Alexander Clouter
    
    The da850-evm baseboard (BB) and its UI board both have tca6416 IO expanders.
    They are bootstrapped to different I2C addresses so they can be used
    concurrently.
    
    The expander on the UI board is currently used to enable/disable the
    peripherals that are available on the UI board. In addition to this
    functionality the expander is also connected to 8 pushbuttons. The expander
    on the baseboard is not currently used; it is connected to deep sleep enable,
    sw reset, a push button, some switches and LEDs.
    
    This proposed patch series enables the push buttons and switches on the UI and
    BB expanders using the gpio-keys polling mode patch by Alexander Clouter. Some
    work was performed to test irq-based gpio-keys support on the expanders (a WIP
    patch can be posted on request) but I believe that it is not possible to use 
    irq-based gpio-keys on IO expanders for arm systems at this time. 
    
    The attempt started when I noticed the patch of Alek Du and Alan Cox [1] which 
    was recently committed [2]; a stab at integrating irq-based gpio-keys support
    based on that patch was attempted. I found that I either got a warning that the
    irq could not be mapped for the given gpio ; or, when N_IRQ was increased, a
    system freeze.
    
    >From what I have read (particularly the message by Grant Likely [3]) IRQs on
    IO expanders are not ready in ARM yet. I _think_ that the sparse IRQ rework by
    Thomas Gleixner [4] will resolve the blocker to irq-based gpio-keys support. 
    
    In the meantime we have buttons and switches that we would like to excersise
    in our prototyping development. The patch to convert this series to irq-based
    gpio-keys will be straighforward once the support in arch/arm is there.
    
    There is an existing tca6416-keypad driver with polling support which I did not
    employ because it isn't possible to keep the gpio's used for peripheral
    enable/disable on the UI board or the LEDs on the baseboard registered while
    simultaneously registering the pushbuttons or switches as a tca6416-keypad 
    instance.
    
    I tested this patch series using evtest on the resulting /dev/input/eventN 
    devices and also on the event node of a non-polling gpio-keys instance to 
    ensure that irq-based input handling is not broken by the introduction of the
    polling-mode gpio-keys patch. The non-polling instance creation and
    registration is not included in this series since it uses one of the boot-mode
    DIP switches and woult not (I think) be suitable for mainline.
    
    Disclaimer: 
    I'm not an expert in irq's or gpio-keys; this is, in fact, my first proposed
    feature. Please feel free to correct me -- I welcome the chance to learn from
    your expertise.
    
    [1] http://article.gmane.org/gmane.linux.kernel/1052551
    [2] http://article.gmane.org/gmane.linux.kernel.commits.head/260919
    [3] http://www.mail-archive.com/devicetree-discuss@lists.ozlabs.org/msg01974.html
    [4] http://article.gmane.org/gmane.linux.kernel.cross-arch/7786
    
    Alexander Clouter (1):
      input: gpio_keys: polling mode support
    
    Ben Gardiner (3):
      da850-evm: add UI Expander pushbuttons
      da850-evm: extract defines for SEL{A,B,C} pins in UI expander
      da850-evm: add baseboard UI expander buttons, switches and LEDs
    
     arch/arm/mach-davinci/Kconfig           |    3 +
     arch/arm/mach-davinci/board-da850-evm.c |  312 +++++++++++++++++++++++++++++--
     drivers/input/keyboard/gpio_keys.c      |  120 ++++++++++--
     include/linux/gpio_keys.h               |    1 +
     4 files changed, 406 insertions(+), 30 deletions(-)
    
    ---
    
    Changes since v1:
     * use locally defined functions that are no-ops/error checkers when
       INPUT_POLLDEV is not defined.
     * disable polling mode support when input-polldev is a module and gpio_keys
       is builtin
     * set INPUT_POLLDEV default for DA850_EVM machine, but don't select it
       unconditionally
     * adding note to description about why tca6416-keypad was not used
    
    
    ^ permalink raw reply	[flat|nested] 104+ messages in thread

  • end of thread, other threads:[~2010-12-17 15:15 UTC | newest]
    
    Thread overview: 104+ messages (download: mbox.gz / follow: Atom feed)
    -- links below jump to the message on this page --
         [not found] <cover.1289835508.git.bengardiner@nanometrics.ca>
         [not found] ` <8891d088e9a16122c780f737b1b1ec35f9517c36.1289835508.git.bengardiner@nanometrics.ca>
    2010-11-16  9:36   ` [PATCH 1/4] input: gpio_keys: polling mode support Paul Mundt
    2010-11-16 18:28     ` Ben Gardiner
    2010-11-16 19:39 ` [PATCH v2 0/4] da850-evm: add gpio-{keys,leds} for UI and BB expanders Ben Gardiner
    2010-11-16 19:39   ` [PATCH v2 0/4] da850-evm: add gpio-{keys, leds} " Ben Gardiner
    2010-11-16 19:39   ` [PATCH v2 1/4] input: gpio_keys: polling mode support Ben Gardiner
    2010-11-16 19:39   ` [PATCH v2 2/4] da850-evm: add UI Expander pushbuttons Ben Gardiner
    2010-11-19  9:58     ` Nori, Sekhar
    2010-11-19  9:58       ` Nori, Sekhar
    2010-11-19 15:38       ` Ben Gardiner
    2010-11-19 15:38         ` Ben Gardiner
    2010-11-22 11:49         ` Nori, Sekhar
    2010-11-22 11:49           ` Nori, Sekhar
    2010-11-22 13:50           ` Ben Gardiner
    2010-11-22 13:50             ` Ben Gardiner
    2010-11-23 12:38             ` Nori, Sekhar
    2010-11-23 12:38               ` Nori, Sekhar
    2010-11-23 13:29               ` Ben Gardiner
    2010-11-23 13:29                 ` Ben Gardiner
    2010-11-23 15:48               ` Kevin Hilman
    2010-11-23 15:48                 ` Kevin Hilman
    2010-11-23 17:58                 ` Ben Gardiner
    2010-11-23 17:58                   ` Ben Gardiner
    2010-11-24  6:09                 ` Paul Mundt
    2010-11-24  6:09                   ` Paul Mundt
    2010-11-24 17:17                   ` Ben Gardiner
    2010-11-24 17:17                     ` Ben Gardiner
    2010-11-16 19:39   ` [PATCH v2 3/4] da850-evm: extract defines for SEL{A,B,C} pins in UI expander Ben Gardiner
    2010-11-16 19:39     ` [PATCH v2 3/4] da850-evm: extract defines for SEL{A, B, C} " Ben Gardiner
    2010-11-19 11:19     ` Nori, Sekhar
    2010-11-19 11:19       ` Nori, Sekhar
    2010-11-19 15:38       ` Ben Gardiner
    2010-11-19 15:38         ` Ben Gardiner
    2010-11-16 19:39   ` [PATCH v2 4/4] da850-evm: add baseboard UI expander buttons, switches and LEDs Ben Gardiner
    2010-11-19 12:14     ` Nori, Sekhar
    2010-11-19 12:14       ` Nori, Sekhar
    2010-11-19 15:40       ` Ben Gardiner
    2010-11-19 15:40         ` Ben Gardiner
    2010-11-19 17:02         ` Dmitry Torokhov
    2010-11-19 17:02           ` Dmitry Torokhov
    2010-11-19 17:15           ` Ben Gardiner
    2010-11-19 17:15             ` Ben Gardiner
    2010-11-22 12:00         ` Nori, Sekhar
    2010-11-22 12:00           ` Nori, Sekhar
    2010-11-22 14:15           ` Ben Gardiner
    2010-11-22 14:15             ` Ben Gardiner
    2010-11-23 12:42             ` Nori, Sekhar
    2010-11-23 12:42               ` Nori, Sekhar
    2010-11-23 13:32               ` Ben Gardiner
    2010-11-23 13:32                 ` Ben Gardiner
    2010-11-19 21:37   ` [PATCH v3 0/4] da850-evm: add gpio-{keys,leds} for UI and BB expanders Ben Gardiner
    2010-11-19 21:37     ` [PATCH v3 1/4] input: gpio_keys: polling mode support Ben Gardiner
    2010-11-19 21:37     ` [PATCH v3 2/4] da850-evm: add UI Expander pushbuttons Ben Gardiner
    2010-11-19 21:37     ` [PATCH v3 3/4] da850-evm: extract defines for SEL{A,B,C} pins in UI expander Ben Gardiner
    2010-11-19 21:41       ` [PATCH v3 3/4] da850-evm: extract defines for SEL{A, B, C} " Victor Rodriguez
    2010-11-19 21:41         ` Victor Rodriguez
    2010-11-19 22:25         ` Ben Gardiner
    2010-11-19 22:25           ` Ben Gardiner
    2010-11-19 21:37     ` [PATCH v3 4/4] da850-evm: add baseboard GPIO expander buttons, switches and LEDs Ben Gardiner
    2010-11-23 19:40     ` [PATCH v4 0/5] da850-evm: add gpio-{keys,leds} for UI and BB expanders Ben Gardiner
    2010-11-23 19:40       ` [PATCH v4 1/5] input: gpio_keys: polling mode support Ben Gardiner
    2010-11-23 19:40         ` Ben Gardiner
    2010-11-23 19:40       ` [PATCH v4 2/5] da850-evm: add UI Expander pushbuttons Ben Gardiner
    2010-11-23 19:40         ` Ben Gardiner
    2010-11-24 13:16         ` Nori, Sekhar
    2010-11-24 13:16           ` Nori, Sekhar
    2010-11-24 17:16           ` Ben Gardiner
    2010-11-24 17:16             ` Ben Gardiner
    2010-11-23 19:40       ` [PATCH v4 3/5] da850-evm: extract defines for SEL{A,B,C} pins in UI expander Ben Gardiner
    2010-11-23 19:40       ` [PATCH v4 4/5] da850-evm: add baseboard GPIO expander buttons, switches and LEDs Ben Gardiner
    2010-11-23 19:41       ` [PATCH v4 5/5] da850-evm: KEYBOARD_GPIO and INPUT_POLLDEV Kconfig conditionals Ben Gardiner
    2010-11-23 19:41         ` Ben Gardiner
    2010-11-24 21:59       ` [PATCH v5 0/5] da850-evm: add gpio-{keys,leds} for UI and BB expanders Ben Gardiner
    2010-11-24 21:59         ` [PATCH v5 1/5] [WIP] input: add input driver for polled GPIO buttons Ben Gardiner
    2010-11-24 21:59           ` Ben Gardiner
    2010-11-24 21:59         ` [PATCH v5 2/5] da850-evm: add UI Expander pushbuttons Ben Gardiner
    2010-11-24 21:59           ` Ben Gardiner
    2010-11-24 21:59         ` [PATCH v5 3/5] da850-evm: extract defines for SEL{A,B,C} pins in UI expander Ben Gardiner
    2010-11-24 21:59         ` [PATCH v5 4/5] da850-evm: add baseboard GPIO expander buttons, switches and LEDs Ben Gardiner
    2010-11-24 21:59         ` [PATCH v5 5/5] da850-evm: KEYBOARD_GPIO_POLLED Kconfig conditional Ben Gardiner
    2010-11-24 21:59           ` Ben Gardiner
    2010-12-09 21:51         ` [PATCH v6 0/5] da850-evm: add gpio-{keys,leds} for UI and BB expanders Ben Gardiner
    2010-12-09 21:51           ` [PATCH v6 1/5] Input: add input driver for polled GPIO buttons Ben Gardiner
    2010-12-09 21:51             ` Ben Gardiner
    2010-12-10 15:50             ` Kevin Hilman
    2010-12-09 21:51           ` [PATCH v6 2/5] da850-evm: add UI Expander pushbuttons Ben Gardiner
    2010-12-09 21:51             ` Ben Gardiner
    2010-12-09 21:51           ` [PATCH v6 3/5] da850-evm: extract defines for SEL{A,B,C} pins in UI expander Ben Gardiner
    2010-12-09 21:51           ` [PATCH v6 4/5] da850-evm: add baseboard GPIO expander buttons, switches and LEDs Ben Gardiner
    2010-12-09 21:51           ` [PATCH v6 5/5] da850-evm: KEYBOARD_GPIO_POLLED Kconfig conditional Ben Gardiner
    2010-12-09 21:51             ` Ben Gardiner
    2010-12-10 16:16           ` [PATCH v6 0/5] da850-evm: add gpio-{keys,leds} for UI and BB expanders Kevin Hilman
    2010-12-10 16:33             ` Ben Gardiner
    2010-12-10 16:33               ` Ben Gardiner
    2010-12-11  0:04               ` Kevin Hilman
    2010-12-11  0:04                 ` Kevin Hilman
    2010-12-13 17:02               ` Ben Gardiner
    2010-12-13 17:02                 ` Ben Gardiner
    2010-12-13 21:53                 ` Kevin Hilman
    2010-12-13 21:53                   ` [PATCH v6 0/5] da850-evm: add gpio-{keys, leds} " Kevin Hilman
    2010-12-14  4:31                   ` [PATCH v6 0/5] da850-evm: add gpio-{keys,leds} " Ben Gardiner
    2010-12-14  4:31                     ` Ben Gardiner
    2010-12-14 16:17                   ` Ben Gardiner
    2010-12-14 17:10                     ` Kevin Hilman
    2010-12-17 15:15                       ` Ben Gardiner
    

    This is an external index of several public inboxes,
    see mirroring instructions on how to clone and mirror
    all data and code used by this external index.