[GIT PULL] GPIO bulk changes for the v4.11 kernel cycle

From: Linus Walleij
Date: Tue Feb 21 2017 - 05:14:52 EST


Hi Linus,

this is the bulk of the GPIO changes for the v4.11 kernel cycle.
The details are in the signed tag as usual. Here some merge mechanics:

- As expected an immutable branch with changes shared with the pin
control subsystem was pulled into the GPIO tree as well, making a slew
of changes appear in drivers/pinctrl also in this pull request. The hashes
are the same, all should be fine.

- The above leads to a conflict with the staging tree greybus GPIO
driver in drivers/staging/greybus/gpio.c where a checkpatch fix was
clashing with the changes.
Stephen has a resolution in the next tree.

- A bunch of tree-wide changes updating the illogically named fwnode_*
accessors and adding flags was merged hitting sites in
drivers/input/keyboard/gpio_keys*
drivers/leds/leds-gpio.c
drivers/video/fbdev/amba-clcd-nomadik.c
Oh well no more sites than that needed to be changed. And the changes
are ACKed.

- The above leads to a merge problem where the TTY/serial tree adds
a new user of these APIs in drivers/tty/serial/st-asc.c
Oh well, things like that cannot be totally avoided.
Depending on which tree gets merged first this leads to a build regression.
Stephen has a resolution in the next tree.
"serial: st-asc: merge fix for devm_get_gpiod_from_child rename"

I guess the above conflicts could have been avoided by being more helpful
to point out to Greg that he could pull in the immutable branches to serial and
staging, sorry about that :(

Apart from this it should be fine.

Please pull it in!

Yours,
Linus Walleij


The following changes since commit 7ce7d89f48834cefece7804d38fc5d85382edf77:

Linux 4.10-rc1 (2016-12-25 16:13:08 -0800)

are available in the git repository at:

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

for you to fetch changes up to deab2b0524aa1d7d081a1b17d283a76f11c45b1b:

gpio: pci-idio-16: Fix PCI BAR index (2017-02-13 16:19:10 +0100)

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

Core changes:

- Augment fwnode_get_named_gpiod() to configure the GPIO pin
immediately after requesting it like all other APIs do.
This is a treewide change also updating all users.

- Pass a GPIO label down to gpiod_request() from
fwnode_get_named_gpiod(). This makes debugfs and the userspace
ABI correctly reflect the current in-kernel consumer of a pin
taken using this abstraction. This is a treewide change also
updating all users.

- Rename devm_get_gpiod_from_child() to
devm_fwnode_get_gpiod_from_child() to reflect the fact that this
function is operating on a fwnode object. This is a treewide
change also updating all users.

- Make it possible to take multiple GPIOs in a single hog of device
tree hogs.

- The refactorings switching GPIO chips to use the .set_config()
callback using standard pin control properties and providing
a backend into the pin control subsystem that were also merged
into the pin control tree naturally appear here too.

Testing instrumentation:

- A whole slew of cleanups and improvements to the mockup GPIO
driver. We now have an extended userspace test exercising the
subsystem, and we can inject interrupts etc from userspace
to fully test the core GPIO functionality.

New drivers:

- New driver for the Cortina Systems Gemini GPIO controller.

- New driver for the Exar XR17V352/354/358 chips.

- New driver for the ACCES PCI-IDIO-16 PCI GPIO card.

Driver changes:

- RCAR: set the irqchip parent device, add fine-grained runtime
PM support.

- pca953x: support optional RESET control line on the chip.

- DaVinci: cleanups and simplifications. Add support for multiple
instances.

- .set_multiple() and naming of lines on more or less all of the
ISA/PCI GPIO controllers.

- mcp23s08: refactored to use regmap as a first step to further
rewrites and modernizations.

----------------------------------------------------------------
Alexander Stein (1):
gpio: Pass GPIO label down to gpiod_request

Andy Shevchenko (4):
gpio: devres: Use global array of gpio suffixes
gpiolib: Switch to for_each_set_bit()
gpiolib: Update documentation of struct acpi_gpio_info
gpiolib: Convert fwnode_get_named_gpiod() to configure GPIO

Augusto Mecking Caringi (1):
gpio: intel-mid: Fix build warning when !CONFIG_PM

Axel Lin (1):
gpio: mcp23s08: Select REGMAP/REGMAP_I2C to fix build error

Bartosz Golaszewski (8):
gpio: mockup: make pins_name_start static
gpio: mockup: dynamically allocate memory for chip name
gpio: mockup: coding style fixes
gpio: mockup: readability tweaks
gpio: mockup: code shrink
gpio: mockup: implement naming the lines
gpio: mockup: add a dummy irqchip
gpio: mockup: implement event injecting over debugfs

Boris Brezillon (2):
gpio: Rename devm_get_gpiod_from_child()
gpio: Add the devm_fwnode_get_index_gpiod_from_child() helper

Christophe JAILLET (1):
gpiolib: Fix a WARN_ON that can never trigger

Geert Uytterhoeven (2):
gpio: rcar: Fine-grained Runtime PM support
gpio: of: Add support for multiple GPIOs in a single GPIO hog

John Crispin (1):
gpio: update my email address

Keerthy (6):
gpio: davinci: Remove redundant members davinci_gpio_controller stuct
gpio: davinci: Remove gpio2regs function
gpio: davinci: Remove unwanted blank line
gpio: davinci: Redesign driver to accommodate ngpios in one gpio chip
gpio: davinci: Add support for multiple GPIO controllers
gpio: davinci: Remove custom .xlate

Linus Walleij (6):
gpio: add DT bindings for Cortina Gemini GPIO
gpio: Add a driver for Cortina Systems Gemini GPIO
Merge branch 'ib-gpiod-flags' into devel
Merge branch 'ib-pinctrl-genprops' of /home/linus/linux-pinctrl into devel
gpio: random documentation update
Merge branch 'ib-gpiod-flags' into devel

Mika Westerberg (3):
pinctrl: Widen the generic pinconf argument from 16 to 24 bits
pinctrl: Allow configuration of pins from gpiolib based drivers
pinctrl / gpio: Introduce .set_config() callback for GPIO chips

Niklas SÃderlund (1):
gpio: rcar: set IRQ chip parent_device

Russell King (1):
gpio: mvebu: fix warning when building on 64-bit

Sebastian Reichel (1):
gpio: mcp23s08: use regmap

Shuah Khan (1):
gpio: tools: add .gitignore for generated files

Stephen Boyd (1):
gpio: Remove impossible checks on container_of() result

Steve Longerbeam (1):
gpio: pca953x: Add optional reset gpio control

Sudip Mukherjee (1):
gpio: exar: add gpio for exar cards

Uwe Kleine-KÃnig (1):
gpio-hammer: fix make consumer_label suitable to work on gpio-nails

William Breathitt Gray (22):
gpio: 104-dio-48e: Add set_multiple callback function support
gpio: 104-idio-16: Add set_multiple callback function support
gpio: gpio-mm: Add set_multiple callback function support
gpio: ws16c48: Add set_multiple callback function support
gpio: 104-dio-48e: Utilize devm_ functions in driver probe callback
gpio: 104-idi-48: Utilize devm_ functions in driver probe callback
gpio: 104-idio-16: Utilize devm_ functions in driver probe callback
gpio: gpio-mm: Utilize devm_ functions in driver probe callback
gpio: ws16c48: Utilize devm_ functions in driver probe callback
gpio: 104-dio-48e: Remove unnecessary driver_data set
gpio: 104-idi-48: Remove unnecessary driver_data set
gpio: 104-idio-16: Remove unnecessary driver_data set
gpio: gpio-mm: Remove unnecessary driver_data set
gpio: ws16c48: Remove unnecessary driver_data set
gpio: 104-dio-48e: Add support for GPIO names
gpio: 104-idi-48: Add support for GPIO names
gpio: 104-idio-16: Add support for GPIO names
gpio: gpio-mm: Add support for GPIO names
gpio: ws16c48: Add support for GPIO names
gpio: Add GPIO support for the ACCES PCI-IDIO-16
gpio: pci-idio-16: Fix PCI device ID code
gpio: pci-idio-16: Fix PCI BAR index

.../bindings/gpio/cortina,gemini-gpio.txt | 24 ++
.../devicetree/bindings/gpio/gpio-pca953x.txt | 4 +
Documentation/devicetree/bindings/gpio/gpio.txt | 8 +-
Documentation/gpio/driver.txt | 64 +++-
MAINTAINERS | 6 +
drivers/gpio/Kconfig | 29 ++
drivers/gpio/Makefile | 3 +
drivers/gpio/devres.c | 32 +-
drivers/gpio/gpio-104-dio-48e.c | 91 +++--
drivers/gpio/gpio-104-idi-48.c | 45 ++-
drivers/gpio/gpio-104-idio-16.c | 60 ++--
drivers/gpio/gpio-bcm-kona.c | 14 +-
drivers/gpio/gpio-davinci.c | 177 +++++-----
drivers/gpio/gpio-dln2.c | 12 +-
drivers/gpio/gpio-dwapb.c | 14 +-
drivers/gpio/gpio-ep93xx.c | 11 +-
drivers/gpio/gpio-exar.c | 200 +++++++++++
drivers/gpio/gpio-f7188x.c | 19 +-
drivers/gpio/gpio-gemini.c | 236 +++++++++++++
drivers/gpio/gpio-gpio-mm.c | 68 +++-
drivers/gpio/gpio-intel-mid.c | 2 +-
drivers/gpio/gpio-lp873x.c | 14 +-
drivers/gpio/gpio-max77620.c | 20 +-
drivers/gpio/gpio-mcp23s08.c | 320 +++++++----------
drivers/gpio/gpio-menz127.c | 34 +-
drivers/gpio/gpio-merrifield.c | 14 +-
drivers/gpio/gpio-mm-lantiq.c | 2 +-
drivers/gpio/gpio-mockup.c | 377 ++++++++++++++++-----
drivers/gpio/gpio-mvebu.c | 2 +-
drivers/gpio/gpio-omap.c | 14 +-
drivers/gpio/gpio-pca953x.c | 9 +
drivers/gpio/gpio-pci-idio-16.c | 349 +++++++++++++++++++
drivers/gpio/gpio-rcar.c | 21 +-
drivers/gpio/gpio-stp-xway.c | 2 +-
drivers/gpio/gpio-tc3589x.c | 15 +-
drivers/gpio/gpio-tegra.c | 14 +-
drivers/gpio/gpio-tps65218.c | 14 +-
drivers/gpio/gpio-vx855.c | 13 +-
drivers/gpio/gpio-wcove.c | 13 +-
drivers/gpio/gpio-wm831x.c | 21 +-
drivers/gpio/gpio-wm8994.c | 13 +-
drivers/gpio/gpio-ws16c48.c | 90 +++--
drivers/gpio/gpiolib-acpi.c | 5 +-
drivers/gpio/gpiolib-of.c | 31 +-
drivers/gpio/gpiolib.c | 111 +++---
drivers/gpio/gpiolib.h | 3 +-
drivers/input/keyboard/gpio_keys.c | 12 +-
drivers/input/keyboard/gpio_keys_polled.c | 14 +-
drivers/leds/leds-gpio.c | 14 +-
drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 6 +-
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 2 +-
drivers/pinctrl/bcm/pinctrl-ns2-mux.c | 6 +-
drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 6 +-
drivers/pinctrl/core.c | 29 ++
drivers/pinctrl/intel/pinctrl-cherryview.c | 4 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 14 +-
drivers/pinctrl/meson/pinctrl-meson.c | 2 -
drivers/pinctrl/pinconf.c | 12 +
drivers/pinctrl/pinconf.h | 9 +
drivers/pinctrl/pinctrl-amd.c | 14 +-
drivers/pinctrl/pinctrl-da850-pupd.c | 2 -
drivers/pinctrl/pinctrl-lpc18xx.c | 10 +-
drivers/pinctrl/pinctrl-max77620.c | 2 +-
drivers/pinctrl/pinctrl-palmas.c | 2 +-
drivers/pinctrl/pinctrl-rockchip.c | 2 +-
drivers/pinctrl/pinctrl-single.c | 2 +-
drivers/pinctrl/pinctrl-sx150x.c | 55 +--
drivers/pinctrl/sirf/pinctrl-atlas7.c | 3 +-
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 2 +-
drivers/pinctrl/uniphier/pinctrl-uniphier-core.c | 4 +-
drivers/pinctrl/vt8500/pinctrl-wmt.c | 2 +-
drivers/rtc/rtc-omap.c | 2 +-
drivers/staging/greybus/gpio.c | 15 +-
drivers/usb/serial/cp210x.c | 13 +-
drivers/video/fbdev/amba-clcd-nomadik.c | 19 +-
include/linux/gpio/consumer.h | 38 ++-
include/linux/gpio/driver.h | 37 +-
include/linux/pinctrl/consumer.h | 6 +
include/linux/pinctrl/pinconf-generic.h | 52 +--
include/linux/platform_data/gpio-davinci.h | 15 +-
tools/gpio/.gitignore | 4 +
tools/gpio/gpio-hammer.c | 2 +-
82 files changed, 2217 insertions(+), 856 deletions(-)
create mode 100644
Documentation/devicetree/bindings/gpio/cortina,gemini-gpio.txt
create mode 100644 drivers/gpio/gpio-exar.c
create mode 100644 drivers/gpio/gpio-gemini.c
create mode 100644 drivers/gpio/gpio-pci-idio-16.c
create mode 100644 tools/gpio/.gitignore