Skip to content
  • Linus Torvalds's avatar
    Merge tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 8d2faea6
    Linus Torvalds authored
    Pull GPIO updates from Linus Walleij:
     "This is the bulk of GPIO changes for the v4.3 kernel cycle.
    
      There is quite a lot going on in the GPIO subsystem this merge window,
      so the main matter is decribed below.
    
      The hits in other subsystems when making the GPIO flags optional are
      all ACKed by their respective subsystem maintainers.
    
      Core changes:
    
       - Root out the wrapper devm_gpiod_get() and gpiod_get() etc versions
         of the descriptor calls that did not use the flags argument on the
         end.  This was around for too long and eventually Uwe Kleine-König
         took the time to clean it out and the last users are removed along
         with the macros in this tag.  In several cases the use of flags
         simplifies the code.  For this reason we have (ACKed) patches
         hitting in DRM, IIO, media, NFC, USB+PHY up until we hammer in the
         nail with removing the macros.
    
       - Add a fat document describing how much ready-made GPIO stuff we
         have i the kernel to discourage people from reinventing a square
         wheel in userspace, as so often happens.
    
       - Create a separate lockdep class for each instance of a GPIO IRQ
         chip instead of using one class for all chips, as the current code
         will not work with systems with several GPIO chips doing lockdep
         debugging.
    
       - Protect against driver unloading also when a GPIO line is only used
         as IRQ for the GPIOLIB_IRQCHIP helpers.
    
       - If the GPIO chip has no designated owner, assign the parent device
         driver owner as owner.
    
       - Consolidation of chained IRQ handler install/remove replacing all
         call sites where irq_set_handler_data() and
         irq_set_chained_handler() were done in succession with a combined
         call to irq_set_chained_handler_and_data().
    
         This series was created by Thomas Gleixner after the problem was
         observed by Russell King.
    
       - Tglx also made another series of patches switching
         __irq_set_handler_locked() for irq_set_handler_locked() which is
         way cleaner.
    
       - Tglx and Jiang Liu wrote a good bunch of patches to make use of
         irq_desc_get_xxx() accessors and avoid looking up irq_descs from
         IRQ numbers.  The goal is to get rid of the irq number from the
         handlers in the IRQ flow which is nice.
    
       - Rob Herring killed off the set_irq_flags() for all GPIO drivers.
         This was an ARM specific function that is replaced with the generic
         irq_modify_status() where special flags are actually needed.
    
       - When an OF node has a pin range for its GPIOs, return -EPROBE_DEFER
         if the pin controller isn't available.  Pretty logical, yet needed
         to be fixed.
    
       - If a driver using GPIOLIB_IRQCHIP has its own irq_*_resources call
         back, then call these instead of the defaults provided by the
         GPIOLIB.
    
       - Fix an undocumented ABI hole: named GPIOs were not properly
         documented.
    
      Driver improvements:
    
       - Add get_direction() support to the generic GPIO driver, it's
         strange that we didn't have that before.
    
       - Make it possible to have input-only GPIO chips using the generic
         GPIO driver.
    
       - Clean out platform data support from the Emma Mobile (EM) driver
    
       - Finegrained runtime PM support for the RCAR driver.
    
       - Support r8a7795 (R-car H3) in the RCAR driver.
    
       - Support interrupts on GPIOs 16 thru 31 in the DaVinci driver.
    
       - Some consolidation and new support in the MPC8xxx driver, we now
         support MPC5125.
    
       - Preempt-RT-friendly patches: the OMAP, MPC8xxx, drivers uses raw
         spinlocks making it work better with the realime patches.
    
       - Interrupt support for the EXTRAXFS GPIO driver.
    
       - Make the ETRAXFS GPIO driver support also ARTPEC-3.
    
       - Interrupt and wakeup support for the BRCMSTB driver, also for
         wakeup from S5 cold boot.
    
       - Mask MXC IRQs during suspend.
    
       - Improve OMAP2 GPIO set_debounce() to work according to spec.
    
       - The VF610 driver handles IRQs properly.
    
      New drivers:
    
       - ZTE ZX GPIO driver"
    
    * tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits)
      Revert "gpio: extraxfs: fix returnvar.cocci warnings"
      gpio: tc3589x: use static container helper
      gpio: xlp: fix error return code
      gpio: vf610: handle level IRQ's properly
      gpio: max732x: Fix error handling in probe()
      gpio: omap: fix clk_prepare/unprepare usage
      gpio: omap: protect regs access in omap_gpio_irq_handler
      gpio: omap: fix omap2_set_gpio_debounce
      gpio: omap: switch to use platform_get_irq
      gpio: omap: remove wrong irq_domain_remove usage in probe
      gpiolib: add description for gpio irqchip fields in struct gpio_chip
      gpio: extraxfs: fix returnvar.cocci warnings
      gpiolib: irqchip: use different lockdep class for each gpio irqchip
      gpio/grgpio: fix deadlock in grgpio_irq_unmap()
      Documentation: gpio: consumer: describe active low property
      gpio: mxc: fix section mismatch warning
      gpio/mxc: mask gpio interrupts in suspend
      gpio: omap: Fix missing raw locks conversion
      gpio: brcmstb: support wakeup from S5 cold boot
      gpio: brcmstb: Add interrupt and wakeup source support
      ...
    8d2faea6