Skip to content
  • Linus Torvalds's avatar
    Merge tag 'gpio-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 6a497e9d
    Linus Torvalds authored
    Pull GPIO updates from Linus Walleij:
     "This is the bulk of GPIO changes for the v4.9 series:
    
      Subsystem improvements:
    
       - do away with the last users of the obsolete Kconfig options
         ARCH_REQUIRE_GPIOLIB and ARCH_WANT_OPTIONAL_GPIOLIB (the latter
         always sounded like an item on a wishlist to Santa Claus to me). We
         can now select GPIOLIB and be done with it, for all archs. After
         some struggle it even work on UM. Not that it has GPIO, but if it
         wants to, it can select the library.
    
       - continued efforts to make drivers properly either tristate or bool.
    
       - introduce a warning for drivers assigning default triggers to their
         irqchip lines when probed from device tree, so we find and fix
         these ambigous drivers. It is agreed that in the OF config path,
         the device tree defines trigger characteristics.
    
       - the same warning, mutatis mutandis, for ACPI-probed GPIO irqchips.
    
       - we introduce the ability to mark certain IRQ lines as "unusable" as
         they can be taken by BIOS/firmware, unrouted in silicon and
         generally nasty if you use them, and such things. This is put to
         good use in the STMPE driver and also in the Cherryview pin control
         driver.
    
       - a new "mockup" virtual GPIO device that can be used for testing.
         The plan is to add unit tests under tools/* for exercising this
         device and verify that the kernel code paths are working as they
         should.
    
       - make memory-mapped I/O-drivers depend on HAS_IOMEM. This was
         implicit all the time, but when people started building UM with
         allyesconfig or allmodconfig it exploded in their face.
    
       - move some stray bits of device tree and ACPI HW description
         callbacks down into their respective implementation silo. These
         were causing issues when compiling on !HAS_IOMEM as well, so now
         eventually UM compiles the GPIOLIB library if it wants to.
    
      New drivers:
    
       - new driver for the Aspeed GPIO front-end companion to the pin
         controller merged through the pin control tree.
    
       - new driver for the LP873x PMIC GPIO portions.
    
       - new driver for Technologic Systems' I2C FPGA GPIO such as TS4900,
         TS-7970, TS-7990 and TS-4100.
    
       - new driver for the Broadcom BCM63xx series including BCM6338 and
         BCM6345.
    
       - new driver for the Intel WhiskeyCove PMIC GPIO.
    
       - new driver for the Allwinner AXP209 PMIC GPIO portions.
    
       - new driver for Diamond Systems 48 line GPIO-MM, another of these
         port-mapped I/O expansion cards.
    
       - support the STMicroelectronics STMPE1600 variant in the STMPE
         driver.
    
      Driver improvements:
    
       - the STMPE driver now supports rising/falling edge detection
         properly for IRQs.
    
       - the PCA954x will now fetch and enable its VCC regulator properly.
    
       - major rework of the PCA953x driver with the goal of eventually
         switching it over to use regmap and thus modernize it even more.
    
       - switch the IOP driver to use the generic MMIO GPIO library.
    
       - move the ages old HTC EGPIO (extended GPIO) GPIO expander driver
         over to this subsystem from MFD, achieveing some separation of
         concerns"
    
    * tag 'gpio-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (81 commits)
      gpio: add missing static inline
      gpio: OF: localize some gpiochip init functions
      gpio: acpi: separation of concerns
      gpio: OF: separation of concerns
      gpio: make memory-mapped drivers depend on HAS_IOMEM
      gpio: stmpe: use BIT() macro
      gpio: stmpe: forbid unused lines to be mapped as IRQs
      mfd/gpio: Move HTC GPIO driver to GPIO subsystem
      gpio: MAINTAINERS: Add an entry for GPIO mockup driver
      gpio/mockup: add virtual gpio device
      gpio: Added zynq specific check for special pins on bank zero
      gpio: axp209: Implement get_direction
      gpio: aspeed: remove redundant return value check
      gpio: loongson1: remove redundant return value check
      ARM: omap2: fix missing include
      gpio: tc3589x: fix up complaints on unsigned
      gpio: tc3589x: add .get_direction() and small cleanup
      gpio: f7188x: use gpiochip_get_data instead of container_of
      gpio: tps65218: use devm_gpiochip_add_data() for gpio registration
      gpio: aspeed: fix return value check in aspeed_gpio_probe()
      ...
    6a497e9d