Skip to content
This is the bulk of GPIO changes for v3.15:

- Merged in a branch of irqchip changes from Thomas
  Gleixner: we need to have new callbacks from the
  irqchip to determine if the GPIO line will be eligible
  for IRQs, and this callback must be able to say "no".
  After some thinking I got the branch from tglx and
  have switched all current users over to use this.

- Based on tglx patches, we have added some generic
  irqchip helpers in the gpiolib core. These will
  help centralize code when GPIO drivers have simple
  chained/cascaded IRQs. Drivers will still define
  their irqchip vtables, but the gpiolib core will
  take care of irqdomain set-up, mapping from local
  offsets to Linux irqs, and reserve resources by
  marking the GPIO lines for IRQs.

- Initially the PL061 and Nomadik GPIO/pin control
  drivers have been switched over to use the new
  gpiochip-to-irqchip infrastructure with more
  drivers expected for the next kernel cycle. The
  factoring of just two drivers still makes it worth
  it so it is already a win.

- A new driver for the Synopsys DesignWare APB GPIO
  block.

- Modify the DaVinci GPIO driver to be reusable also
  for the new TI Keystone architecture.

- A new driver for the LSI ZEVIO SoCs.

- Delete the obsolte tnetv107x driver.

- Some incremental work on GPIO descriptors: have
  gpiod_direction_output() use a logical level,
  respecting assertion polarity through ACTIVE_LOW
  flags, adding gpiod_direction_output_raw() for the
  case where you want to set that very value. Add
  gpiochip_get_desc() to fetch a GPIO descriptor from
  a specific offset on a certain chip inside driver
  code.

- Switch ACPI GPIO code over to using
  gpiochip_get_desc() and get rid of gpio_to_desc().

- The ACPI GPIO event handling code has been reworked
  after encountering an actual real life implementation.

- Support for ACPI GPIO operation regions.

- Generic GPIO chips can now be assigned labels/names
  from platform data.

- We now clamp values returned from GPIO drivers to
  the boolean [0,1] range.

- Some improved documentation on how to use the polarity
  flag was added.

- The a large slew of incremental driver updates and
  non-critical fixes. Some targeted for stable.