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