[GIT PULL] bulk GPIO changes for v5.3

From: Linus Walleij
Date: Mon Jul 08 2019 - 03:27:10 EST


Hi Linus,

this is the big slew of GPIO changes for the v5.3 kernel cycle.
This is mostly incremental work this time.

Three important things:

- The FMC subsystem is deleted through my tree. This happens
through GPIO as its demise was discussed in relation to a patch
decoupling its GPIO implementation from the standard way of
handling GPIO. As it turns out, that is not the only subsystem it
reimplements and the authors think it is better do scratch it and
start over using the proper kernel subsystems than try to polish
the rust shiny. See the commit (ACKed by the maintainers) for
details.

- Arnd made a small devres patch that was ACKed by Greg and
goes into the device core.

- SPDX header change colissions may happen, because at times
I've seen that quite a lot changed during the -rc:s in regards to
SPDX. (It is good stuff, tglx has me convinced, and it is worth
the occasional pain.)

Apart from this is is nothing controversial or problematic. I have
started to add Link: tags to lore using Kees script, it seems to
work for any message passing through the lore lists and this
seems pretty helpful (triggered by a discussion on the maintainer
summit list).

Please pull it in!

Yours,
Linus Walleij

The following changes since commit cd6c84d8f0cdc911df435bb075ba22ce3c605b07:

Linux 5.2-rc2 (2019-05-26 16:49:19 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
tags/gpio-v5.3-1

for you to fetch changes up to 9b3b623804a67d2274ee372c1587926ab0275833:

Revert "gpio: tegra: Clean-up debugfs initialisation" (2019-07-06
20:16:17 +0200)

----------------------------------------------------------------
Bulk GPIO changes for the v5.3 kernel cycle:

Core:

- When a gpio_chip request GPIOs from itself, it can now fully
control the line characteristics, both machine and consumer
flags. This makes a lot of sense, but took some time before I
figured out that this is how it has to work.

- Several smallish documentation fixes.

New drivers:

- The PCA953x driver now supports the TI TCA9539.

- The DaVinci driver now supports the K3 AM654 SoCs.

Driver improvements:

- Major overhaul and hardening of the OMAP driver by Russell
King.

- Starting to move some drivers to the new API passing irq_chip
along with the gpio_chip when adding the gpio_chip instead
of adding it separately.

Unrelated:

- Delete the FMC subsystem.

----------------------------------------------------------------
Andrey Smirnov (1):
gpio: vf610: Use PTR_ERR_OR_ZERO() in vf610_gpio_probe()

Arnd Bergmann (1):
devres: allow const resource arguments

Bartosz Golaszewski (3):
gpio: em: use the managed version of gpiochip_add_data()
gpio: max732x: use i2c_new_dummy_device()
gpio: max732x: use devm_gpiochip_add_data()

Charles Keepax (1):
gpio: madera: Fixup SPDX headers

Enrico Weigelt (6):
gpio: amd: Drop unused pdev pointer in privata data
gpio: Add comments on #if/#else/#endif
siox: Add helper macro to simplify driver registration
gpio: siox: Use module_siox_driver()
drivers: gpio: amd-fch: make resource struct const
gpio: pl061: drop duplicate printing of device name

Enrico Weigelt, metux IT consult (7):
gpio: rcar: Pedantic formatting
gpio: amdpt: Drop unneeded deref of &pdev->dev
gpio: ep93xx: Use devm_platform_ioremap_resource()
gpio: grgpio: Use devm_platform_ioremap_resource()
gpio: janz-ttl: Drop unneccessary temp variable dev
gpio: vr41xx: Use devm_platform_ioremap_resource()
gpio: eic-sprd: Use devm_platform_ioremap_resource()

Geert Uytterhoeven (7):
gpio: em: Remove error messages on out-of-memory conditions
gpio: em: Return early on error in em_gio_probe()
gpio: Sort GPIO drivers in Makefile
Documentation: gpio: Fix reference to gpiod_get_array()
gpiolib: Document new gpio_chip.init_valid_mask field
gpiolib: Fix references to gpiod_[gs]et_*value_cansleep() variants
gpiolib: Clarify use of non-sleeping functions

Greg Kroah-Hartman (3):
gpio: mockup: no need to check return value of debugfs_create functions
gpio: No need to cast away return value of debugfs_create_file()
gpio: tegra: No need to cast away return value of debugfs_create_file()

Jon Hunter (1):
gpio: tegra: Clean-up debugfs initialisation

Keerthy (4):
gpio: davinci: Fix the compiler warning with ARM64 config enabled
gpio: Davinci: Add K3 dependencies
gpio: davinci: Add new compatible for K3 AM654 SoCs
dt-bindings: gpio: davinci: Add k3 am654 compatible

Kelsey Skunberg (1):
tools: gpio: Add include/linux/gpio.h to .gitignore

Linus Walleij (21):
gpio: Update Kconfig text for GPIO_SYSFS
gpio: Fix minor grammar errors in documentation
gpio: ixp4xx: Use irq_domain_translate_twocell()
gpio: of: Handle the Freescale SPI CS
gpio: pass lookup and descriptor flags to request_own
fmc: Decouple from Linux GPIO subsystem
Merge branch 'ib-snps-reset-gpio' into devel
fmc: Delete the FMC subsystem
gpio: ftgpio: Pass irqchip when adding gpiochip
gpio: Add GPIOLIB_IRQCHIP cleanup to TODO
gpio: Drop the parent_irq from gpio_irq_chip
gpio: pl061: Pass irqchip when adding gpiochip
gpio: siox: Do not call gpiochip_remove() on errorpath
gpio: siox: Switch to IRQ_TYPE_NONE
Merge tag 'gpio-v5.3-updates-for-linus' of
git://git.kernel.org/.../brgl/linux into devel
gpio: ath79: Pass irqchip when adding gpiochip
gpio: siox: Pass irqchip when adding gpiochip
gpio: siox: Add struct device *dev helper variable
gpio: siox: Use devm_ managed gpiochip
gpio: altera: Pass irqchip when adding gpiochip
Revert "gpio: tegra: Clean-up debugfs initialisation"

Luca Ceresoli (1):
Documentation: gpio: remove duplicated lines

Martin Blumenstingl (5):
gpio: of: parse stmmac PHY reset line specific active-low property
gpio: stp-xway: simplify error handling in xway_stp_probe()
gpio: stp-xway: improve module clock error handling
gpio: stp-xway: get rid of the #include <lantiq_soc.h> dependency
gpio: stp-xway: allow compile-testing

Mauro Carvalho Chehab (1):
docs: gpio: driver.rst: fix a bad tag

Peter Robinson (1):
gpio: pca953x: Add support for the TI TCA9539

Phil Reid (1):
gpio: altera: Allocate irq_chip dynamically

Rob Herring (1):
dt-bindings: gpio: Convert Arm PL061 to json-schema

Robert Hancock (1):
gpio: xilinx: convert from OF GPIO to standard devm APIs

Russell King (20):
gpio: omap: ensure irq is enabled before wakeup
gpio: omap: fix lack of irqstatus_raw0 for OMAP4
gpio: omap: remove remainder of list management
gpio: omap: clean up edge interrupt handling
gpio: omap: remove irq_ack method
gpio: omap: move omap_gpio_request() and omap_gpio_free()
gpio: omap: simplify omap_gpio_get_direction()
gpio: omap: simplify get() method
gpio: omap: simplify get_multiple()
gpio: omap: simplify set_multiple()
gpio: omap: simplify bank->level_mask
gpio: omap: simplify read-modify-write
gpio: omap: simplify omap_toggle_gpio_edge_triggering()
gpio: omap: simplify omap_set_gpio_irqenable()
gpio: omap: remove dataout variation in context handling
gpio: omap: clean up omap_gpio_restore_context()
gpio: omap: constify register tables
gpio: omap: clean up wakeup handling
gpio: omap: irq_startup() must not return error codes
gpio: omap: clean up register access in omap2_set_gpio_debounce()

Sebastian Andrzej Siewior (1):
gpiolib: Use spinlock_t instead of struct spinlock

Tony Lindgren (1):
gpio: omap: Fix lost edge wake-up interrupts

.../devicetree/bindings/gpio/gpio-davinci.txt | 18 +
.../devicetree/bindings/gpio/pl061-gpio.txt | 10 -
.../devicetree/bindings/gpio/pl061-gpio.yaml | 69 +++
Documentation/driver-api/gpio/consumer.rst | 4 +-
Documentation/driver-api/gpio/driver.rst | 16 +-
Documentation/fmc/API.txt | 47 --
Documentation/fmc/FMC-and-SDB.txt | 88 ----
Documentation/fmc/carrier.txt | 311 -------------
Documentation/fmc/fmc-chardev.txt | 64 ---
Documentation/fmc/fmc-fakedev.txt | 36 --
Documentation/fmc/fmc-trivial.txt | 17 -
Documentation/fmc/fmc-write-eeprom.txt | 98 ----
Documentation/fmc/identifiers.txt | 168 -------
Documentation/fmc/mezzanine.txt | 123 -----
Documentation/fmc/parameters.txt | 56 ---
arch/arm/mach-omap1/ams-delta-fiq.c | 4 +-
arch/arm/mach-omap1/board-ams-delta.c | 5 +-
drivers/Kconfig | 2 -
drivers/Makefile | 1 -
drivers/fmc/Kconfig | 52 ---
drivers/fmc/Makefile | 15 -
drivers/fmc/fmc-chardev.c | 199 --------
drivers/fmc/fmc-core.c | 388 ----------------
drivers/fmc/fmc-debug.c | 172 -------
drivers/fmc/fmc-dump.c | 58 ---
drivers/fmc/fmc-fakedev.c | 355 --------------
drivers/fmc/fmc-match.c | 113 -----
drivers/fmc/fmc-private.h | 8 -
drivers/fmc/fmc-sdb.c | 219 ---------
drivers/fmc/fmc-trivial.c | 103 -----
drivers/fmc/fmc-write-eeprom.c | 175 -------
drivers/fmc/fru-parse.c | 80 ----
drivers/gpio/Kconfig | 20 +-
drivers/gpio/Makefile | 296 ++++++------
drivers/gpio/TODO | 40 ++
drivers/gpio/gpio-altera.c | 65 ++-
drivers/gpio/gpio-amd-fch.c | 4 +-
drivers/gpio/gpio-amdpt.c | 10 +-
drivers/gpio/gpio-ath79.c | 66 ++-
drivers/gpio/gpio-davinci.c | 7 +-
drivers/gpio/gpio-eic-sprd.c | 9 +-
drivers/gpio/gpio-em.c | 34 +-
drivers/gpio/gpio-ep93xx.c | 7 +-
drivers/gpio/gpio-ftgpio010.c | 35 +-
drivers/gpio/gpio-grgpio.c | 4 +-
drivers/gpio/gpio-ixp4xx.c | 14 +-
drivers/gpio/gpio-janz-ttl.c | 9 +-
drivers/gpio/gpio-madera.c | 6 +-
drivers/gpio/gpio-max732x.c | 45 +-
drivers/gpio/gpio-mockup.c | 21 +-
drivers/gpio/gpio-mvebu.c | 11 +-
drivers/gpio/gpio-omap.c | 509 +++++++--------------
drivers/gpio/gpio-pca953x.c | 1 +
drivers/gpio/gpio-pl061.c | 30 +-
drivers/gpio/gpio-rcar.c | 2 +-
drivers/gpio/gpio-siox.c | 51 +--
drivers/gpio/gpio-stp-xway.c | 33 +-
drivers/gpio/gpio-tegra.c | 4 +-
drivers/gpio/gpio-vf610.c | 14 +-
drivers/gpio/gpio-vr41xx.c | 19 +-
drivers/gpio/gpio-xilinx.c | 90 ++--
drivers/gpio/gpiolib-acpi.c | 6 +-
drivers/gpio/gpiolib-of.c | 43 ++
drivers/gpio/gpiolib.c | 88 ++--
drivers/gpio/gpiolib.h | 2 +-
drivers/hid/hid-cp2112.c | 7 +-
drivers/memory/omap-gpmc.c | 4 +-
include/linux/device.h | 3 +-
include/linux/fmc-sdb.h | 39 --
include/linux/fmc.h | 269 -----------
include/linux/gpio/driver.h | 29 +-
include/linux/gpio/gpio-reg.h | 2 +-
include/linux/gpio/machine.h | 4 +-
include/linux/platform_data/gpio-omap.h | 2 +-
include/linux/siox.h | 10 +
lib/devres.c | 3 +-
tools/gpio/.gitignore | 2 +-
77 files changed, 835 insertions(+), 4208 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/gpio/pl061-gpio.txt
create mode 100644 Documentation/devicetree/bindings/gpio/pl061-gpio.yaml
delete mode 100644 Documentation/fmc/API.txt
delete mode 100644 Documentation/fmc/FMC-and-SDB.txt
delete mode 100644 Documentation/fmc/carrier.txt
delete mode 100644 Documentation/fmc/fmc-chardev.txt
delete mode 100644 Documentation/fmc/fmc-fakedev.txt
delete mode 100644 Documentation/fmc/fmc-trivial.txt
delete mode 100644 Documentation/fmc/fmc-write-eeprom.txt
delete mode 100644 Documentation/fmc/identifiers.txt
delete mode 100644 Documentation/fmc/mezzanine.txt
delete mode 100644 Documentation/fmc/parameters.txt
delete mode 100644 drivers/fmc/Kconfig
delete mode 100644 drivers/fmc/Makefile
delete mode 100644 drivers/fmc/fmc-chardev.c
delete mode 100644 drivers/fmc/fmc-core.c
delete mode 100644 drivers/fmc/fmc-debug.c
delete mode 100644 drivers/fmc/fmc-dump.c
delete mode 100644 drivers/fmc/fmc-fakedev.c
delete mode 100644 drivers/fmc/fmc-match.c
delete mode 100644 drivers/fmc/fmc-private.h
delete mode 100644 drivers/fmc/fmc-sdb.c
delete mode 100644 drivers/fmc/fmc-trivial.c
delete mode 100644 drivers/fmc/fmc-write-eeprom.c
delete mode 100644 drivers/fmc/fru-parse.c
delete mode 100644 include/linux/fmc-sdb.h
delete mode 100644 include/linux/fmc.h