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. - I have added an API preserving fix to keep the new ST serial driver compiling and will iron out the API change in -rc2 or so. All should be fine, Greg suggested this fix and test merges+builds confirm it works smooth. - Changes to other subsystems have been ACKed and a test merge confirmed all is merging cleanly this morning to your tree. 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 3498d8694d41af701c51289e7caf3ffefc7bfb6b: gpio: reintroduce devm_get_gpiod_from_child() (2017-02-21 14:19:45 +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 (7): 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 gpio: reintroduce devm_get_gpiod_from_child() 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 | 55 ++- 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, 2234 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