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
  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

- 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

- 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

- 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 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

gpio: add missing static inline

of_get_named_gpiod_flags() was missing a static inline version
when compiling without OF_GPIO. Add this.

Reported-by: kbuild test robot <>
Signed-off-by: Linus Walleij <>
1 file changed