[GIT PULL] GPIO bulk changes for v3.13

From: Linus Walleij
Date: Mon Nov 11 2013 - 07:57:10 EST


Hi Linus,

here is the bulk of GPIO changes for the v3.13 development
cycle.

Most of the description is in the signed tag. I've got ACKs for
the things that affect other subsystems (or it's my own subsystem,
like pinctrl). Most of that pertain to an attempt from my side
to consolidate and get rid of custom GPIO implementations
in the ARM tree. I will continue doing this.

The main change this time is the new GPIO descriptor API,
background for this can be found in Corbet's summary from
this january in LWN:
http://lwn.net/Articles/533632/

I merged in -rc4 and -rc6 to get rid of some nasty conflicts
appearing during the v3.12 development cycle.

Please pull it in!

Yours,
Linus Walleij


The following changes since commit 31d141e3a666269a3b6fcccddb0351caf7454240:

Linux 3.12-rc6 (2013-10-19 12:28:15 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
tags/gpio-v3.13-1

for you to fetch changes up to 993571273275bfecb5161806796eb368db234106:

gpio: gpio-mxs: Remove unneeded dt checks (2013-11-06 10:51:24 +0100)

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

----------------------------------------------------------------
Alexandre Courbot (7):
gpiolib: factorize gpiod_get/set functions
gpiolib: export descriptor-based GPIO interface
gpiolib: port of_ functions to use gpiod
gpiolib: add gpiod_get() and gpiod_put() functions
gpiolib: devres: fix devm_gpiod_get_index()
gpiolib: make GPIO_DEVRES depend on GPIOLIB
gpiolib: devres: add missing headers

Charles Keepax (2):
gpio: arizona: Add wm8997 support to probe
gpio: arizona: Use the of_node from the Arizona device

David Cohen (4):
gpio: langwell: add Intel Merrifield support
gpio: rename gpio-langwell to gpio-intel-mid
gpio-intel-mid: update prefixes and names from langwell to intel-mid
MAINTAINERS: GPIO-INTEL-MID: add maintainer

Fabio Estevam (1):
gpio: gpio-mxs: Remove unneeded dt checks

George Cherian (3):
gpio: pcf857x: change to devm_request_threaded_irq
gpio: pcf857x: remove the irq_demux_work and gpio->irq
gpio: pcf857x: call the gpio user handler iff gpio_to_irq is done

Graeme Smecher (1):
gpio: pca953x: Don't flip bits on PCA957x GPIO expanders when
probing them.

Ian Molton (1):
emev2: GPIOLIB: Enable support for OF

Javier Martinez Canillas (1):
gpio/omap: use gpiolib API to mark a GPIO used as an IRQ

Jean Delvare (1):
gpio: ucb1400: Can be built as a module

Jingoo Han (1):
gpio: bt8xx: remove unnecessary pci_set_drvdata()

Laurent Pinchart (1):
gpio: pcf857x: Add OF support

Laxman Dewangan (1):
gpio: palmas: add support for TPS80036

Linus Walleij (42):
gpio: pcf857x: only use set_irq_flags() on ARM
ARM: plat-iop: move the GPIO driver to drivers/gpio
ARM: iop32x: request and issue reset using gpio
ARM: iop32x: read N2100 power key using gpiolib
gpio: decouple the IOP GPIO driver from platform
ARM: plat-iop: remove custom complex GPIO implementation
ARM: plat-iop: instantiate GPIO from platform device
gpio: iop: use readl/writel accessors
ARM: plat-iop: pass physical base for GPIO
gpio: bcm-kona: only use set_irq_flags() on ARM
Merge branch 'iop-cleanup' into devel
ARM: mmp: delete the custom GPIO header
ARM: pxa: delete the custom GPIO header
Merge branch 'pxa-cleanup' into devel
ARM: ixp4xx: convert remaining users to use gpiolib
input: misc: ixp4-beeper: switch to use gpiolib
input: misc: ixp4-beeper: use gpiolib strictly
ptp: switch to use gpiolib
staging: media/lirc: switch to use gpiolib
ARM: ixp4: delete irq_to_gpio
ARM: ixp4xx: stop broadcasting the custom GPIO API
Merge branch 'ixp4-cleanup' into devel
ARM: w90x900: delete <mach/gpio.h>
ARM: gemini: delete <mach/gpio.h>
gpio: tc3589x: drop references to "virtual" IRQ
gpio: adnp: rename "virq" to "child_irq"
gpio: bcm_kona: rename confusing variables
gpio: em: drop references to "virtual" IRQ
gpio: intel-mid: drop references to "virtual" IRQ
gpio: lynxpoint: drop references to "virtual" IRQ
gpio: mpc8xxx: drop references to "virtual" IRQ
gpio: pl061: drop references to "virtual" IRQ
gpio: rcar: drop references to "virtual" IRQ
gpio: stmpe: drop references to "virtual" IRQ, fix bug
gpio: ep93xx: get rid of bogus __raw* accessors
gpio: add API to be strict about GPIO IRQ usage
pinctrl: nomadik: mark GPIO lines used for IRQ
pinctrl: coh901: mark GPIO lines used for IRQ
Merge tag 'v3.12-rc4' into devel
Fixup "MAINTAINERS: GPIO-INTEL-MID: add maintainer"
Merge tag 'v3.12-rc6' into devel
gpio: provide stubs for devres gpio functions

Mark Brown (2):
gpiolib: Provide helper macros for logging of GPIO events
gpiolib: Include GPIO label in log messages for GPIOs

Markus Mayer (3):
gpio: bcm281xx: Add GPIO driver
gpio: bcm281xx: Fix nested interrupt handler issue
gpio: bcm281xx: Don't print addresses of GPIO area in probe()

Mika Westerberg (5):
gpiolib / ACPI: move acpi_gpiochip_free_interrupts next to the
request function
gpiolib / ACPI: convert to gpiod interfaces
gpiolib / ACPI: add ACPI support for gpiod_get_index()
gpiolib / ACPI: allow passing GPIOF_ACTIVE_LOW for GpioInt resources
gpiolib / ACPI: document the GPIO descriptor based interface

Rob Herring (1):
gpio: pl061: don't depend on CONFIG_ARM

Sachin Kamat (8):
gpio: gpio-74x164: Remove redundant spi_set_drvdata
gpio: gpio-74x164: Remove redundant of_match_ptr
gpio: gpio-mc33880: Remove redundant spi_set_drvdata
gpio: adnp: Remove redundant of_match_ptr
gpio: clps711x: Remove redundant of_match_ptr
gpio: twl4030: Remove redundant of_match_ptr
gpio: lpc32xx: Include linux/of.h header
gpio: rcar: Include linux/of.h header

Stephen Rothwell (2):
gpiolib: include gpio/consumer.h in of_gpio.h for desc_to_gpio()
gpiolib: provide a declaration of seq_file in gpio/driver.h

Stephen Warren (1):
gpio: tegra: use new gpio_lock_as_irq() API

Wei Yongjun (1):
gpio: bcm-kona: add missing .owner to struct gpio_chip

Zhang Rui (1):
gpiolib-acpi: convert acpi_evaluate_object() to
acpi_execute_simple_method()

Documentation/acpi/enumeration.txt | 26 +-
.../devicetree/bindings/gpio/gpio-bcm-kona.txt | 52 ++
.../devicetree/bindings/gpio/gpio-pcf857x.txt | 71 ++
MAINTAINERS | 6 +
arch/arm/Kconfig | 7 +-
arch/arm/include/asm/hardware/iop3xx-gpio.h | 75 --
arch/arm/include/asm/hardware/iop3xx.h | 12 -
arch/arm/mach-gemini/gpio.c | 2 +-
arch/arm/mach-gemini/include/mach/gpio.h | 20 -
arch/arm/mach-iop32x/em7210.c | 2 +
arch/arm/mach-iop32x/glantank.c | 2 +
arch/arm/mach-iop32x/gpio-iop32x.h | 10 +
arch/arm/mach-iop32x/include/mach/gpio.h | 6 -
arch/arm/mach-iop32x/include/mach/iop32x.h | 1 -
arch/arm/mach-iop32x/iq31244.c | 2 +
arch/arm/mach-iop32x/iq80321.c | 2 +
arch/arm/mach-iop32x/n2100.c | 47 +-
arch/arm/mach-iop33x/include/mach/gpio.h | 6 -
arch/arm/mach-iop33x/include/mach/iop33x.h | 1 -
arch/arm/mach-iop33x/iq80331.c | 7 +
arch/arm/mach-iop33x/iq80332.c | 7 +
arch/arm/mach-ixp4xx/common.c | 49 +-
arch/arm/mach-ixp4xx/dsmg600-setup.c | 65 +-
arch/arm/mach-ixp4xx/include/mach/platform.h | 39 -
arch/arm/mach-ixp4xx/ixdp425-setup.c | 8 +-
arch/arm/mach-ixp4xx/nas100d-setup.c | 49 +-
arch/arm/mach-ixp4xx/nslu2-setup.c | 17 +-
arch/arm/mach-mmp/include/mach/gpio.h | 8 -
arch/arm/mach-pxa/include/mach/gpio.h | 32 -
arch/arm/mach-w90x900/include/mach/gpio.h | 30 -
arch/arm/plat-iop/Makefile | 2 -
drivers/gpio/Kconfig | 35 +-
drivers/gpio/Makefile | 4 +-
drivers/gpio/devres.c | 85 +++
drivers/gpio/gpio-74x164.c | 5 +-
drivers/gpio/gpio-adnp.c | 8 +-
drivers/gpio/gpio-arizona.c | 4 +
drivers/gpio/gpio-bcm-kona.c | 640 ++++++++++++++++
drivers/gpio/gpio-bt8xx.c | 2 -
drivers/gpio/gpio-clps711x.c | 2 +-
drivers/gpio/gpio-em.c | 13 +-
drivers/gpio/gpio-ep93xx.c | 18 +-
drivers/gpio/gpio-intel-mid.c | 471 ++++++++++++
.../arm/plat-iop/gpio.c => drivers/gpio/gpio-iop.c | 67 +-
drivers/gpio/gpio-langwell.c | 397 ----------
drivers/gpio/gpio-lpc32xx.c | 1 +
drivers/gpio/gpio-lynxpoint.c | 19 +-
drivers/gpio/gpio-mc33880.c | 3 -
drivers/gpio/gpio-mpc8xxx.c | 8 +-
drivers/gpio/gpio-mxs.c | 32 +-
drivers/gpio/gpio-omap.c | 20 +-
drivers/gpio/gpio-palmas.c | 104 ++-
drivers/gpio/gpio-pca953x.c | 11 -
drivers/gpio/gpio-pcf857x.c | 105 ++-
drivers/gpio/gpio-pl061.c | 10 +-
drivers/gpio/gpio-rcar.c | 13 +-
drivers/gpio/gpio-stmpe.c | 25 +-
drivers/gpio/gpio-tc3589x.c | 36 +-
drivers/gpio/gpio-tegra.c | 18 +
drivers/gpio/gpio-twl4030.c | 2 +-
drivers/gpio/gpiolib-acpi.c | 138 ++--
drivers/gpio/gpiolib-of.c | 28 +-
drivers/gpio/gpiolib.c | 828 +++++++++++++++------
drivers/input/misc/ixp4xx-beeper.c | 25 +-
drivers/pinctrl/pinctrl-coh901.c | 5 +
drivers/pinctrl/pinctrl-nomadik.c | 5 +
drivers/ptp/ptp_ixp46x.c | 9 +-
drivers/staging/media/lirc/lirc_serial.c | 16 +-
include/asm-generic/gpio.h | 225 ++----
include/linux/acpi_gpio.h | 31 +-
include/linux/gpio.h | 57 +-
include/linux/gpio/consumer.h | 253 +++++++
include/linux/gpio/driver.h | 184 +++++
include/linux/of_gpio.h | 29 +-
74 files changed, 3199 insertions(+), 1455 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-bcm-kona.txt
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-pcf857x.txt
delete mode 100644 arch/arm/include/asm/hardware/iop3xx-gpio.h
delete mode 100644 arch/arm/mach-gemini/include/mach/gpio.h
create mode 100644 arch/arm/mach-iop32x/gpio-iop32x.h
delete mode 100644 arch/arm/mach-iop32x/include/mach/gpio.h
delete mode 100644 arch/arm/mach-iop33x/include/mach/gpio.h
delete mode 100644 arch/arm/mach-mmp/include/mach/gpio.h
delete mode 100644 arch/arm/mach-pxa/include/mach/gpio.h
delete mode 100644 arch/arm/mach-w90x900/include/mach/gpio.h
create mode 100644 drivers/gpio/gpio-bcm-kona.c
create mode 100644 drivers/gpio/gpio-intel-mid.c
rename arch/arm/plat-iop/gpio.c => drivers/gpio/gpio-iop.c (56%)
delete mode 100644 drivers/gpio/gpio-langwell.c
create mode 100644 include/linux/gpio/consumer.h
create mode 100644 include/linux/gpio/driver.h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/