Skip to content
Tags give the ability to mark specific points in history as being important
  • gpio-h-purge
    This is a purge of all things <mach/gpio.h>, now I never
    want to see it again.
    
    - Remove the need for <mach/gpio.h> from S5P
    - Kill CONFIG_NEED_MACH_GPIO_H
    - Kill remnants of ARM_GPIOLIB_COMPLEX
    
  • gpio-v3.12-1
    This is the bulk of GPIO changes for the v3.12 series:
    
    - A new driver for the TZ1090 PDC which is used on the metag
      architecture.
    
    - A new driver for the Kontron ETX or COMexpress GPIO block.
      This is found on some ETX x86 devices.
    
    - A new driver for the Fintek Super-I/O chips, used on
      some x86 boards.
    
    - Added device tree probing on a few select GPIO blocks.
    
    - Drop the Exynos support from the Samsung GPIO driver.
      The Samsung maintainers have moved over to use the
      modernized pin control driver to provide GPIO for the
      modern platforms instead.
    
    - The usual bunch of non-critical fixes and cleanups.
    
  • gpio-v3.12-2
    Fixes for the GPIO tree for v3.12:
    - Two patches for the OMAP driver, dealing with setting up IRQs
      properly on the device tree boot path.
    
  • gpio-v3.12-3
    Three GPIO fixes for the v3.12 series:
    - A fix to the Lynxpoint IRQ handler
    - Two late fixes to fallout from the gpiod refactoring
    
  • gpio-v3.13-1
    GPIO bulk changes for the v3.13 development cycle
    
    - Merged the GPIO descriptor API from Alexandre Courbot.
      This is a first step toward trying to get rid of the
      global GPIO numberspace for the future.
    
    - Add an API so that driver can flag that a certain GPIO
      line is being used by a irqchip backend for generating
      IRQs, so that we can enforce checks, like not allowing
      users to switch that line to an output at runtime, since
      this makes no sense. Implemented corresponding calls
      in a few select drivers.
    
    - ACPI GPIO cleanups, refactorings and switch to using the
      descriptor-based interface.
    
    - Support for the TPS80036 Palmas GPIO variant.
    
    - A new driver for the Broadcom Kona GPIO SoC IP block.
    
    - Device tree support for the PCF857x driver.
    
    - A set of ARM GPIO refactorings with the goal of getting
      rid of a bunch of custom GPIO implementations from the
      arch/arm/* tree:
    
      - Move the IOP GPIO driver to the GPIO subsystem and
        fix all users to use the gpiolib API for accessing
        GPIOs. Delete the old custom GPIO implementation.
    
      - Delete the unused custom PXA GPIO implemention.
    
      - Convert all users of the IXP4 custom GPIO
        implementation to use gpiolib and delete the custom
        implementation.
    
      - Delete the custom Gemini GPIO implementation, also
        completely unused.
    
    - Various cleanups and renamings.
    
  • gpio-v3.13-2
    GPIO fixes for the v3.13 series:
    
    - A big slew of documentation for the gpiod transition that
      happened in the merge window, no semantic effect, but we should
      provide proper documentation with the new API.
    
    - Fix flags related to the new API.
    
    - Fix to the find_chip_by_name() lookup function related to the
      new API.
    
    - Fix of_find_gpio() when not using device tree.
    
    - Bug fix for the TB10x direction setting.
    
    - Error path fixes from Dan Carpenter.
    
    - Nasty IRQdomain bug relating to taking an unitialized spinlock.
    
    - Minor fixes here and there.
    
  • gpio-v3.13-3
    GPIO fixes for the v3.13 series:
    
    - Fix compile warnings.
    
    - Fix overly talkative diagnostic messages from usual use
      cases wrt GPIO descriptors.
    
    - Add a documentation 00-INDEX
    
    - Use platform GPIOs as fallback when ACPI or device tree is
      used as the primary means to get GPIO lines.
    
    - A bug fix for the MPC8572/MPC8536 fixing erroneous input data.
    
  • gpio-v3.13-4
    GPIO fixes for the v3.13 development cycle:
    
    - Driver bug fixes for SH PFC, TWL4030, MSM and RCAR.
    
    - Update the MAINTAINERS
    
  • gpio-v3.14-1
    GPIO tree bulk changes for v3.14
    
    A big set this merge window, as we have much going on in
    this subsystem. Major changes this time:
    
    - Some core improvements and cleanups to the new GPIO
      descriptor API. This seems to be working now so we can
      start the exodus to this API, moving gradually away from
      the global GPIO numberspace.
    
    - Incremental improvements to the ACPI GPIO core, and move
      the few GPIO ACPI clients we have to the GPIO descriptor
      API right *now* before we go any further. We actually
      managed to contain this *before* we started to litter
      the kernel with yet another hackish global numberspace for
      the ACPI GPIOs, which is a big win.
    
    - The RFkill GPIO driver and all platforms using it have
      been migrated to use the GPIO descriptors rather than
      fixed number assignments. Tegra machine has been migrated
      as part of this.
    
    - New drivers for MOXA ART, Xtensa GPIO32 and SMSC SCH311x.
      Those should be really good examples of how I expect a
      nice GPIO driver to look these days.
    
    - Do away with custom GPIO implementations on a major
      part of the ARM machines: ks8695, lpc32xx, mv78xx0.
      Make a first step towards the same in the horribly
      convoluted Samsung S3C include forest. We expect to
      continue to clean this up as we move forward.
    
    - Flag GPIO lines used for IRQ on adnp, bcm-kona, em,
      intel-mid and lynxpoint.
      This makes the GPIOlib core aware that a certain GPIO line
      is used for IRQs and can then enforce some semantics such
      as disallowing a GPIO line marked as in use for IRQ to be
      switched to output mode.
    
    - Drop all use of irq_set_chip_and_handler_name().
      The name provided in these cases were just unhelpful
      tags like "mux" or "demux".
    
    - Extend the MCP23s08 driver to handle interrupts.
    
    - Minor incremental improvements for rcar, lynxpoint, em
      74x164 and msm drivers.
    
    - Some non-urgent bug fixes here and there, duplicate
      #includes and that usual kind of cleanups.
    
  • gpio-v3.14-2
    A set of GPIO fixes for the v3.14 series:
    
    - Get #ifdef's right in the <linux/gpio/consumer.h> header.
    
    - Minor fixes to tb10x, clps711x, bcm281xx, intel-mid and
      xtensa GPIO drivers.
    
  • gpio-v3.15-1
    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.
    
  • gpio-v3.15-2
    A few fixes for the GPIO tree:
    
    - Change a crucial semantic ordering in the GPIO irqchip
      helpers.
    
    - Fix two nasty regressions in the ACPI gpiolib extensions.
    
  • gpio-v3.15-3
    GPIO fixes for the v3.15 series:
    
    - Fix a null pointer bug in the ICH6 chipset driver
    
    - Fix device tree registration for the mcp23s08 driver
    
  • gpio-v3.16-1
    This is the bulk of GPIO changes for the v3.16 series:
    
    - We are finalizing and fixing up the gpiochip irqchip helpers
      bringing a helpful irqchip implementation into the gpiolib
      core and avoiding duplicate code and, more importantly,
      duplicate bug fixes:
    
      - Support for using the helpers with threaded interrupt
        handlers as used on sleeping GPIO-irqchips
    
      - Do not set up hardware triggers for edges or levels if
        the default IRQ type is IRQ_TYPE_NONE - some drivers
        would exploit the fact that you could get default
        initialization of the IRQ type from the core at probe()
        but if no default type is set up from the helper, we
        should not call the driver to configure anything. Wait
        until a consumer requests the interrupt instead.
    
      - Make the irqchip helpers put the GPIO irqs into their
        own lock class. The GPIO irqchips can often emit
        (harmless, but annoying) lockdep warnings about recursions
        when they are in fact just cascaded IRQs. By putting
        them into their own lock class we help the lockdep core
        to keep track of things.
    
      - Switch the tc3589x GPIO expanders to use the irqchip
        helpers
    
      - Switch the OMAP GPIO driver to use the irqchip helpers
    
      - Add some documentation for the irqchip helpers
    
      - select IRQ_DOMAIN when using the helpers since some
        platforms may not be using this by default and it's a
        strict dependency.
    
    - Continued GPIO descriptor refactoring:
    
      - Remove the one instance of gpio_to_desc() from the
        device tree code, making the OF GPIO code use GPIO
        descriptors only.
    
      - Introduce gpiod_get_optional() and
        gpiod_get_optional_index() akin to the similar
        regulator functions for cases where the use of GPIO
        is optional and not strictly required.
    
      - Make of_get_named_gpiod_flags() private - we do not
        want to unnecessarily expose APIs to drivers that
        make the gpiolib harder than necessary to maintain
        and refactor. Privatize this function.
    
    - Support "-gpio" suffix for the OF GPIO retrieveal path.
      We used to look for "foo-gpios" or just "gpios" in device
      tree nodes, but it turns out that some drivers with a
      single GPIO line will just state "foo-gpio" (singularis).
      Sigh. Support this with a fallback looking for it, as
      this simplifies driver code and handles it in core code.
    
    - Switch the ACPI GPIO core to fetch GPIOs with the
      *_cansleep function variants as the GPIO operation
      region handler can sleep, and shall be able to handle
      gpiochips that sleep.
    
    - Tons of cleanups and janitorial work from Jingoo Han,
      Axel Lin, Javier Martinez Canillas and Abdoulaye Berthe.
      Notably Jingoo cut off a ton of pointless OOM messages.
    
    - Incremental development and fixes for various drivers,
      nothing really special here.
    
  • gpio-v3.16-2
    A first GPIO fix for the v3.16 series, this was serious since
    it blocks the OMAP boot.
    
  • gpio-v3.16-3
    A GPIO fix for the v3.16 series - fixes up some merge
    confusion from the merge window.
    
  • gpio-v3.17-1
    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.
    
  • gpio-v3.17-2
    Fixes for the v3.17 series:
    
    - A largeish fix for the IRQ handling in the new Zynq driver.
      The quite verbose commit message gives the exact details.
    - Move some defines for gpiod flags outside an ifdef to make
      stub functions work again.
    - Various minor fixes that we can accept for -rc1.
    
  • gpio-v3.17-3
    GPIO fixes for the v3.17 series:
    
    - Some documentation sync
    - Resource leak in the bt8xx driver
    - Again fix the way varargs are used to handle the
      optional flags on the gpiod_* accessors. Now hopefully
      nailed the entire problem.
    
  • gpio-v3.17-4
    Two GPIO fixes:
    - GPIO direction flags where handled wrong in the new
      descriptor-based API, so direction changes did not always
      "take".
    - Fix a handler installation race in the generic GPIO
      irqchip code.