Skip to content
This is the bulk of GPIO changes for the v3.17 development
cycle, and this time we got a lot of action going on and
it will continue:

- The core GPIO library implementation has been split up in
  three different files:
  - gpiolib.c for the latest and greatest and shiny GPIO
    library code using GPIO descriptors only
  - gpiolib-legacy.c for the old integer number space API
    that we are phasing out gradually
  - gpiolib-sysfs.c for the sysfs interface that we are
    not entirely happy with, but has to live on for
    ABI compatibility

- Add a flags argument to *gpiod_get* functions, with some
  backward-compatibility macros to ease transitions. We
  should have had the flags there from the beginning it
  seems, now we need to clean up the mess. There is a plan
  on how to move forward here devised by Alexandre Courbot
  and Mark Brown.

- Split off a special <linux/gpio/machine.h> header for the
  board gpio table registration, as per example from the
  regulator subsystem.

- Start to kill off the return value from gpiochip_remove()
  by removing the __must_check attribute and removing all
  checks inside the drivers/gpio directory. The rationale
  is: well what were we supposed to do if there is an error
  code? Not much: print an error message. And gpiolib already
  does that. So make this function return void eventually.

- Some cleanups of hairy gpiolib code, make some functions
  not to be used outside the library private and make sure
  they are not exported, remove gpiod_lock/unlock_as_irq()
  as the existing function is for driver-internal use and
  fine as it is, delete gpio_ensure_requested() as it is
  not meaningful anymore.

- Support the GPIOF_ACTIVE_LOW flag from gpio_request_one()
  function calls, which is logical since this is already
  supported when referencing GPIOs from e.g. device trees.

- Switch STMPE, intel-mid, lynxpoint and ACPI (!) to use
  the gpiolib irqchip helpers cutting down on GPIO irqchip
  boilerplate a bit more.

- New driver for the Zynq GPIO block.

- The usual incremental improvements around a bunch of
  drivers.

- Janitorial syntactic and semantic cleanups by Jingoo Han,
  and Rickard Strandqvist especially.