1. 07 Oct, 2008 5 commits
    • David Brownell's avatar
      twl4030-gpio irq simplification · f9ceca72
      David Brownell authored
      Simplify and correct TWL4030 GPIO IRQ handling:
      
       - support mask() not just unmask()
       - use genirq handle_edge_irq() handler not custom hacks
       - let that handle (correct) accounting of chained IRQ counts
       - use the more efficient clear-on-read mechanism
       - don't misuse IRQ_LEVEL
       - remove some superfluous locking
       - locking fix:  all irq_chip data needs spinlock protection
      
      Cleanups:
       - give the helper thread a more accurate name
       - don't name the NOP ack() method misleadingly
       - use generic_handle_irq(), not a manually unrolled version thereof
       - comment fixes
      
      Note that the previous IRQ dispatch code was somewhat confused.
      It seemed not to know that it was working with edge triggered
      interrupts, much less ones which could be transparently acked.
      
      (Also note that COR=1 doesn't enable Clear-On-Read for all modules;
      some are documented as using COR=0 for that.  GPIO uses COR=1.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      f9ceca72
    • David Brownell's avatar
      twl4030-core irq simplification · 83f474a2
      David Brownell authored
      Simplify twl4030 IRQ handling by removing a needless custom flow
      handler.  The top level IRQs, from the PIH, are well suited for
      handle_simple_irq() ... they can't be acked or masked.
      
      Switching resolves some issues with how IRQs were dispatched.
      Notably, abuse of desc->status, IRQ accounting, and handling
      of various faults.
      
      In short, use standard genirq code.
      
      Drivers that request_irq() to the PIH will need to pay more
      attention to things like setting IRQF_DISABLED (since it's
      no longer ignored), and making I2C calls from handlers (you'll
      need a lockdep workaround).
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      83f474a2
    • David Brownell's avatar
      twl4030 "subdriver" irq tweaks · baae8496
      David Brownell authored
      Bugfixes to TWL subdriver irq handler setup ... lockdep
      workarounds, remove IRQF_DISABLED.  NOPs with current code.
      
      These changes are specific to the drivers which register
      directly with the PIH irq_chip (in twl4030-core), and are
      prerequsites to a cleanup patch for that PIH infrastructure.
      (Unless you don't use these drivers.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      baae8496
    • David Brownell's avatar
      beagle: two more GPIOs · 85c0074e
      David Brownell authored
      Request two more GPIOs on Beagle:  MMC write protect, DVI enable.
      
      Also define the first OMAP3 GPIO mux config symbols, with a new
      naming convention.  Examples:
      
        - GPIO42 is bidirectional, and uses external pull up/down (if any);
        - GPIO42_UP is bidirectional, with an internal pullup;
        - GPIO42_DOWN is bidirectional, with an internal pulldown.
        - GPIO42_OUT is output-only, and needs no pullup or pulldown.
      
      All of those would be fully functional through the standard GPIO
      interface as well as the legacy OMAP-only one, except GPIO42_OUT
      which won't let you read the actual pin value after setting it.
      
      There's no special off-mode support for these particular pins;
      on Beagle they have external pullups or pulldowns.
      
      (OMAP2 can use this naming convention too, except that since it
      has no input-enable the "_OUT" convention can't be used there.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      85c0074e
    • Kevin Hilman's avatar
  2. 06 Oct, 2008 28 commits
  3. 03 Oct, 2008 7 commits