• Linus Torvalds's avatar
    Merge tag 'gpio-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 1cd04d29
    Linus Torvalds authored
    Pull GPIO updates from Linus Walleij:
     "This is the bulk of GPIO changes for the v4.8 kernel cycle.  The big
      news is the completion of the chardev ABI which I'm very happy about
      and apart from that it's an ordinary, quite busy cycle.  The details
      are below.
    
      The patches are tested in linux-next for some time, patches to other
      subsystem mostly have ACKs.
    
      I got overly ambitious with configureing lines as input for IRQ lines
      but it turns out that some controllers have their interrupt-enable and
      input-enabling in orthogonal settings so the assumption that all IRQ
      lines are input lines does not hold.  Oh well, revert and back to the
      drawing board with that.
    
      Core changes:
    
       - The big item is of course the completion of the character device
         ABI.  It has now replaced and surpassed the former unmaintainable
         sysfs ABI: we can now hammer (bitbang) individual lines or sets of
         lines and read individual lines or sets of lines from userspace,
         and we can also register to listen to GPIO events from userspace.
    
         As a tie-in we have two new tools in tools/gpio: gpio-hammer and
         gpio-event-mon that illustrate the proper use of the new ABI.  As
         someone said: the wild west days of GPIO are now over.
    
       - Continued to remove the pointless ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
         Kconfig symbols.  I'm patching hexagon, openrisc, powerpc, sh,
         unicore, ia64 and microblaze.  These are either ACKed by their
         maintainers or patched anyways after a grace period and no response
         from maintainers.
    
         Some archs (ARM) come in from their trees, and others (x86) are
         still not fixed, so I might send a second pull request to root it
         out later in this merge window, or just defer to v4.9.
    
       - The GPIO tools are moved to the tools build system.
    
      New drivers:
    
       - New driver for the MAX77620/MAX20024.
    
       - New driver for the Intel Merrifield.
    
       - Enabled PCA953x for the TI PCA9536.
    
       - Enabled PCA953x for the Intel Edison.
    
       - Enabled R8A7792 in the RCAR driver.
    
      Driver improvements:
    
       - The STMPE and F7188x now supports the .get_direction() callback.
    
       - The Xilinx driver supports setting multiple lines at once.
    
       - ACPI support for the Vulcan GPIO controller.
    
       - The MMIO GPIO driver supports device tree probing.
    
       - The Acer One 10 is supported through the _DEP ACPI attribute.
    
      Cleanups:
    
       - A major cleanup of the OF/DT support code.  It is way easier to
         read and understand now, probably this improves performance too.
    
       - Drop a few redundant .owner assignments.
    
       - Remove CLPS711x boardfile support: we are 100% DT"
    
    * tag 'gpio-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (67 commits)
      MAINTAINERS: Add INTEL MERRIFIELD GPIO entry
      gpio: dwapb: add missing fwnode_handle_put() in dwapb_gpio_get_pdata()
      gpio: merrifield: Protect irq_ack() and gpio_set() by lock
      gpio: merrifield: Introduce GPIO driver to support Merrifield
      gpio: intel-mid: Make it depend to X86_INTEL_MID
      gpio: intel-mid: Sort header block alphabetically
      gpio: intel-mid: Remove potentially harmful code
      gpio: rcar: add R8A7792 support
      gpiolib: remove duplicated include from gpiolib.c
      Revert "gpio: convince line to become input in irq helper"
      gpiolib: of_find_gpio(): Don't discard errors
      gpio: of: Allow overriding the device node
      gpio: free handles in fringe cases
      gpio: tps65218: Add platform_device_id table
      gpio: max77620: get gpio value based on direction
      gpio: lynxpoint: avoid potential warning on error path
      tools/gpio: add install section
      tools/gpio: move to tools buildsystem
      gpio: intel-mid: switch to devm_gpiochip_add_data()
      gpio: 74x164: Use spi_write() helper instead of open coding
      ...
    1cd04d29
gpiolib.c 94.3 KB