[GIT PULL] bulk GPIO changes for v4.8

From: Linus Walleij
Date: Mon Jul 25 2016 - 04:02:47 EST


Hi Linus,

here is the bulk of the GPIO changes for the v4.8 kernel cycle. The big
news is the completion of the chardev ABI which I'm very happy about
and apart from that it's an ordinary, quite busy cycle. The details are
in the signed tag.

The patches are tested in linux-next for some time, patches to other
subsystem mostly have ACKs.

I got overly ambitious with configureing lines as input for IRQ lines but
it turns out that some controllers have their interrupt-enable and
input-enabling in orthogonal settings so the assumption that all IRQ
lines are input lines does not hold. Oh well, revert and back to the
drawing board with that.

Please pull it in!

Yours,
Linus Walleij


The following changes since commit af8c34ce6ae32addda3788d54a7e340cad22516b:

Linux 4.7-rc2 (2016-06-05 14:31:26 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
tags/gpio-v4.8-1

for you to fetch changes up to 224f9e6d538c4cfb2fa8dc4206fceb9431271388:

MAINTAINERS: Add INTEL MERRIFIELD GPIO entry (2016-07-22 15:30:43 +0200)

----------------------------------------------------------------
This is the bulk of GPIO changes for the v4.8 kernel cycle.

Core changes:

- The big item is of course the completion of the character
device ABI. It has now replaced and surpassed the former
unmaintainable sysfs ABI: we can now hammer (bitbang)
individual lines or sets of lines and read individual lines
or sets of lines from userspace, and we can also register
to listen to GPIO events from userspace. As a tie-in we
have two new tools in tools/gpio: gpio-hammer and
gpio-event-mon that illustrate the proper use of the new
ABI. As someone said: the wild west days of GPIO are now
over.

- Continued to remove the pointless
ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB Kconfig symbols.
I'm patching hexagon, openrisc, powerpc, sh, unicore,
ia64 and microblaze. These are either ACKed by their
maintainers or patched anyways after a grace period and
no response from maintainers. Some archs (ARM) come in from
their trees, and others (x86) are still not fixed, so I
might send a second pull request to root it out later in
this merge window, or just defer to v4.9.

- The GPIO tools are moved to the tools build system.

New drivers:

- New driver for the MAX77620/MAX20024.

- New driver for the Intel Merrifield.

- Enabled PCA953x for the TI PCA9536.

- Enabled PCA953x for the Intel Edison.

- Enabled R8A7792 in the RCAR driver.

Driver improvements:

- The STMPE and F7188x now supports the .get_direction()
callback.

- The Xilinx driver supports setting multiple lines at
once.

- ACPI support for the Vulcan GPIO controller.

- The MMIO GPIO driver supports device tree probing.

- The Acer One 10 is supported through the _DEP ACPI
attribute.

Cleanups:

- A major cleanup of the OF/DT support code. It is way
easier to read and understand now, probably this improves
performance too.

- Drop a few redundant .owner assignments.

- Remove CLPS711x boardfile support: we are 100% DT.

----------------------------------------------------------------
Alexander Shiyan (3):
gpio: clps711x: Change the compatibility string
gpio: syscon: Change the compatibility string
gpio: clps711x: Remove board support

Andrew F. Davis (1):
gpio: Only descend into gpio directory when CONFIG_GPIOLIB is set

Andrew Jeffery (1):
gpio: Fix paths to GPIO driver source files

Andy Shevchenko (13):
gpio: pca953x: remove redundant assignments
gpio: pca953x: enfore type for i2c_smbus_write_word_data()
gpio: pca953x: enable driver on Intel Edison
gpio: intel-mid: switch to devm_gpiochip_add_data()
tools/gpio: move to tools buildsystem
tools/gpio: add install section
gpio: lynxpoint: avoid potential warning on error path
gpio: intel-mid: Remove potentially harmful code
gpio: intel-mid: Sort header block alphabetically
gpio: intel-mid: Make it depend to X86_INTEL_MID
gpio: merrifield: Introduce GPIO driver to support Merrifield
gpio: merrifield: Protect irq_ack() and gpio_set() by lock
MAINTAINERS: Add INTEL MERRIFIELD GPIO entry

Arnd Bergmann (1):
gpiolib: avoid uninitialized data in gpio kfifo

Ben Dooks (1):
gpiolib: make lineevent_irq_thread static

Christian Lamparter (1):
gpio: mmio: add MyBook Live GPIO support

Geert Uytterhoeven (1):
gpio: 74x164: Use spi_write() helper instead of open coding

Iban Rodriguez (1):
gpio: xilinx: Add support to set multiple GPIO at once

Kamlakant Patel (2):
gpio: xlp: Fix vulcan IRQ descriptor allocation
gpio: Add ACPI support for XLP GPIO controller

Keerthy (1):
gpio: tps65218: Add platform_device_id table

Kishon Vijay Abraham I (1):
gpio: pcf857x: restore the initial line state of all pcf lines

Lars-Peter Clausen (1):
gpiolib: of_find_gpio(): Don't discard errors

Laxman Dewangan (4):
gpio: add DT binding doc for gpio of PMIC max77620/max20024
gpio: max77620: add gpio driver for MAX77620/MAX20024
gpio: max77620: Configure interrupt trigger level
gpio: max77620: use the new open drain callback

Linus Walleij (17):
gpio: stmpe: implement .get_direction()
hexagon: update TODO list
pinctrl: xway: use devm_gpiochip_add_data()
openrisc: do away with ARCH_REQUIRE_GPIOLIB
powerpc: do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
sh: do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
unicore: do away with ARCH_REQUIRE_GPIOLIB
ia64: remove ARCH_WANT_OPTIONAL_GPIOLIB
microblaze: remove ARCH_WANT_OPTIONAL_GPIOLIB
gpio: userspace ABI for reading/writing GPIO lines
tools/gpio: add the gpio-hammer tool
gpio: userspace ABI for reading GPIO line events
tools/gpio: add the gpio-event-mon tool
gpio: make the iterator point to last handle
gpio: convince line to become input in irq helper
gpio: free handles in fringe cases
Revert "gpio: convince line to become input in irq helper"

Masahiro Yamada (7):
gpio: of: add missing of_node_put() to of_gpiochip_add_pin_range()
gpio: remove redundant owner assignments of drivers
gpio: of: optimize "gpios" property parsing of of_parse_own_gpio()
gpio: of: drop needless gpio_chip look-up in of_parse_own_gpio()
gpio: of: move chip->of_gpio_n_cells checking to of_gpiochip_add()
gpio: of: remove of_gpiochip_and_xlate() and struct gg_data
gpio: of: factor out common code to a new helper function

Paul Gortmaker (1):
gpio: lpc18xx: convert GPIO_LPC18XX from bool to tristate

Rui Zhang (1):
gpio: acpi: add _DEP support for Acer One 10

Sergei Shtylyov (1):
gpio: rcar: add R8A7792 support

Thierry Reding (1):
gpio: of: Allow overriding the device node

Venkat Reddy Talla (1):
gpio: max77620: get gpio value based on direction

Vignesh R (2):
gpio: pca953x: Add support for TI PCA9536
gpio: pca953x: Fix NBANK calculation for PCA9536

Wei Yongjun (2):
gpiolib: remove duplicated include from gpiolib.c
gpio: dwapb: add missing fwnode_handle_put() in dwapb_gpio_get_pdata()

plr.vincent@xxxxxxxxx (1):
gpio: f7188x: Implement get_direction.

Ãlvaro FernÃndez Rojas (1):
gpio: mmio: add DT support for memory-mapped GPIOs

.../bindings/gpio/cirrus,clps711x-mctrl-gpio.txt | 4 +-
.../devicetree/bindings/gpio/gpio-clps711x.txt | 4 +-
.../devicetree/bindings/gpio/gpio-max77620.txt | 25 +
.../devicetree/bindings/gpio/gpio-pca953x.txt | 1 +
.../devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 +
Documentation/gpio/drivers-on-gpio.txt | 13 +-
MAINTAINERS | 6 +
arch/hexagon/Kconfig | 3 +-
arch/ia64/Kconfig | 1 -
arch/microblaze/Kconfig | 1 -
arch/openrisc/Kconfig | 2 +-
arch/powerpc/Kconfig | 1 -
arch/powerpc/platforms/40x/Kconfig | 2 +-
arch/powerpc/platforms/44x/Kconfig | 2 +-
arch/powerpc/platforms/512x/Kconfig | 1 -
arch/powerpc/platforms/83xx/Kconfig | 3 -
arch/powerpc/platforms/85xx/Kconfig | 4 +-
arch/powerpc/platforms/86xx/Kconfig | 7 +-
arch/powerpc/platforms/8xx/Kconfig | 2 +-
arch/powerpc/platforms/Kconfig | 8 +-
arch/sh/Kconfig | 11 +-
arch/sh/boards/Kconfig | 17 +-
arch/sh/boards/mach-highlander/Kconfig | 2 +-
arch/sh/boards/mach-rsk/Kconfig | 6 +-
arch/unicore32/Kconfig | 2 +-
drivers/Makefile | 2 +-
drivers/gpio/Kconfig | 24 +-
drivers/gpio/Makefile | 2 +
drivers/gpio/gpio-74x164.c | 9 +-
drivers/gpio/gpio-clps711x.c | 10 +-
drivers/gpio/gpio-dwapb.c | 1 +
drivers/gpio/gpio-f7188x.c | 22 +
drivers/gpio/gpio-intel-mid.c | 37 +-
drivers/gpio/gpio-lynxpoint.c | 1 -
drivers/gpio/gpio-max77620.c | 315 +++++++++++++
drivers/gpio/gpio-menz127.c | 1 -
drivers/gpio/gpio-merrifield.c | 444 ++++++++++++++++++
drivers/gpio/gpio-mmio.c | 51 +-
drivers/gpio/gpio-palmas.c | 1 -
drivers/gpio/gpio-pca953x.c | 23 +-
drivers/gpio/gpio-pcf857x.c | 9 +
drivers/gpio/gpio-rcar.c | 3 +
drivers/gpio/gpio-rdc321x.c | 1 -
drivers/gpio/gpio-sch311x.c | 1 -
drivers/gpio/gpio-stmpe.c | 18 +-
drivers/gpio/gpio-syscon.c | 4 +-
drivers/gpio/gpio-tc3589x.c | 1 -
drivers/gpio/gpio-tps65218.c | 7 +
drivers/gpio/gpio-tps6586x.c | 1 -
drivers/gpio/gpio-tps65910.c | 1 -
drivers/gpio/gpio-viperboard.c | 1 -
drivers/gpio/gpio-wm831x.c | 1 -
drivers/gpio/gpio-wm8350.c | 1 -
drivers/gpio/gpio-wm8994.c | 1 -
drivers/gpio/gpio-xilinx.c | 48 ++
drivers/gpio/gpio-xlp.c | 52 ++-
drivers/gpio/gpiolib-acpi.c | 1 +
drivers/gpio/gpiolib-of.c | 127 +++--
drivers/gpio/gpiolib.c | 511 ++++++++++++++++++++-
drivers/pinctrl/pinctrl-xway.c | 5 +-
include/uapi/linux/gpio.h | 105 ++++-
tools/Makefile | 7 +-
tools/gpio/Build | 3 +
tools/gpio/Makefile | 75 ++-
tools/gpio/gpio-event-mon.c | 192 ++++++++
tools/gpio/gpio-hammer.c | 189 ++++++++
66 files changed, 2207 insertions(+), 230 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-max77620.txt
create mode 100644 drivers/gpio/gpio-max77620.c
create mode 100644 drivers/gpio/gpio-merrifield.c
create mode 100644 tools/gpio/Build
create mode 100644 tools/gpio/gpio-event-mon.c
create mode 100644 tools/gpio/gpio-hammer.c