[GIT PULL] GPIO changes for the v5.9 merge window
From: Linus Walleij
Date: Tue Aug 04 2020 - 18:03:45 EST
Hi Linus,
here is the big slew of GPIO changes for the v5.9 merge window.
There is nothing too exciting in it, but a new macro that fixes a
build failure on a minor ARM32 platform that appeared yesterday
is part of it so we better merge it.
Please pull it in!
Yours,
Linus Walleij
The following changes since commit b3a9e3b9622ae10064826dccb4f7a52bd88c7407:
Linux 5.8-rc1 (2020-06-14 12:45:04 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
tags/gpio-v5.9-1
for you to fetch changes up to 22cc422070d9a9a399f8a70b89f1b852945444cb:
gpio: wcove: Request IRQ after all initialisation done (2020-08-04
01:25:02 +0200)
----------------------------------------------------------------
This is the bulk of GPIO changes for the v5.9 kernel cycle:
Core changes:
- Introduce the for_each_requested_gpio() macro to help in
dependent code all over the place. Also patch a few locations
to use it while we are at it.
- Split out the sysfs code into its own file.
- Split out the character device code into its own file, then
make a set of refactorings and improvements to this code.
We are setting the stage to revamp the userspace API a bit
in the next cycle.
- Fix a whole slew of kerneldoc that was wrong or missing.
New drivers:
- The PCA953x driver now supports the PCAL9535.
Driver improvements:
- A host of incremental modernizations and improvements to the
PCA953x driver.
- Incremental improvements to the Xilinx Zynq driver.
- Some improvements to the GPIO aggregator driver.
- I ran all over the place switching all threaded and other
drivers requesting their own IRQ while using the core
GPIO IRQ helpers to pass the GPIO irq chip as a template
instead of calling the explicit set-up functions. Next merge
window we may retire the old code altogether.
----------------------------------------------------------------
Abanoub Sameh (6):
gpio: pch: changed every 'unsigned' to 'unsigned int'
gpio: pch: Add a blank line between declaration and code
gpio: crystalcove: changed every 'unsigned' to 'unsigned int'
gpio: ich: changed every 'unsigned' to 'unsigned int'
gpio: sch: changed every 'unsigned' to 'unsigned int'
gpio: sch: Add a blank line between declaration and code
Ahmad Fatoum (1):
gpio: don't use same lockdep class for all devm_gpiochip_add_data users
Andy Shevchenko (16):
gpio: pca953x: Synchronize interrupt handler properly
gpio: pca953x: Override IRQ for one of the expanders on Galileo Gen 2
gpio: pca953x: Fix direction setting when configure an IRQ
gpio: pca953x: disable regmap locking for automatic address incrementing
gpiolib: Introduce for_each_requested_gpio_in_range() macro
ARM/orion/gpio: Make use of for_each_requested_gpio()
gpio: mvebu: Make use of for_each_requested_gpio()
gpio: xra1403: Make use of for_each_requested_gpio()
pinctrl: at91: Make use of for_each_requested_gpio()
gpio: pca953x: Fix GPIO resource leak on Intel Galileo Gen 2
gpiolib: Deduplicate find_first_zero_bit() call
gpio: pch: Move IRQ status message to verbose debug level
gpio: mmio: replace open-coded for_each_set_bit()
gpio: pca953x: Request IRQ after all initialisation done
gpio: crystalcove: Free IRQ on error path
gpio: wcove: Request IRQ after all initialisation done
Colton Lewis (1):
gpio: Correct kernel-doc inconsistency
Dmitry Osipenko (6):
gpio: max77620: Replace 8 with MAX77620_GPIO_NR
gpio: max77620: Fix missing release of interrupt
gpio: max77620: Don't set of_node
gpio: max77620: Don't shadow error code of platform_get_irq()
gpio: max77620: Use irqchip template
gpio: max77620: Initialize hardware state of interrupts
Drew Fustini (2):
gpio: omap: handle pin config bias flags
gpio: omap: improve coding style for pin config flags
Gaurav Singh (2):
gpio: max732x: remove redundant check
gpio: max732x: remove redundant check from probe()
Geert Uytterhoeven (3):
gpio: Drop superfluous dependencies on GPIOLIB
gpio: aggregator: Drop pre-initialization in get_arg()
gpio: aggregator: Use bitmap_parselist() for parsing GPIO offsets
Glenn Langedock (1):
gpio: zynq: protect direction in/out with a spinlock
Jan Kiszka (2):
dt-bindings: gpio: pca953x: add nxp,pcal9535
gpio: pca953x: Add support for the PCAL9535
Kent Gibson (18):
gpiolib: split character device into gpiolib-cdev
gpiolib: move gpiolib-sysfs function declarations into their own header
gpiolib: cdev: sort includes
gpiolib: cdev: minor indentation fixes
gpiolib: cdev: refactor gpiohandle_flags_to_desc_flags
gpiolib: cdev: rename 'filep' and 'filp' to 'file' to be
consistent with other use
gpiolib: cdev: rename numdescs to num_descs
gpiolib: cdev: remove pointless decrement of i
gpiolib: cdev: use blocking notifier call chain instead of atomic
gpiolib: cdev: rename priv to cdev
gpiolib: cdev: fix minor race in GET_LINEINFO_WATCH
gpiolib: cdev: remove recalculation of offset
gpiolib: cdev: refactor linehandle cleanup into linehandle_free
gpiolib: cdev: refactor lineevent cleanup into lineevent_free
gpio: uapi: fix misplaced comment line
tools: gpio: fix spurious close warning in lsgpio
tools: gpio: fix spurious close warning in gpio-utils
tools: gpio: fix spurious close warning in gpio-event-mon
Kieran Bingham (1):
drivers: gpio: Fix trivial spelling
Lee Jones (10):
gpio: gpio-ml-ioh: Fix missing ':' in 'struct ioh_gpio_reg_data
gpio: gpiolib-of: Provide documentation for of_gpio_spi_cs_get_count()
gpio: gpio-altera: Add missing kerneldoc entry and demote comment
gpio: gpio-pmic-eic-sprd: Fix incorrectly named property 'map'
gpio: gpio-sama5d2-piobu: Demote all kerneldoc headers to basic
comment blocks
gpio: gpio-syscon: Fix formatting issues which confuse kerneldoc
gpio: gpio-it87: Fix formatting issues which confuse kerneldoc
gpio: gpio-mlxbf: Tell the compiler that ACPI functions may not be used
gpio: gpio-mlxbf2: Tell the compiler that ACPI functions may not be use
gpio: gpio-mlxbf2.c: Provide __releases() annotation to stop
confusing Sparse
Linus Walleij (27):
Merge branch 'ib-for-each-requested' into devel
Merge tag 'gpio-fixes-for-v5.8-rc3' of
git://git.kernel.org/.../brgl/linux into fixes
Merge tag 'gpio-updates-for-v5.9-part1' of
git://git.kernel.org/.../brgl/linux into devel
gpio: Add gpio-charger to the documentation
Merge branch 'lee-fixes' into devel
Merge branch 'devel' into for-next
Merge tag 'gpio-updates-for-v5.9-part2' of
git://git.kernel.org/.../brgl/linux into devel
gpio: max77620: Use helper variable and clarify
gpio: tc35892: Use irqchip template
gpio: stmpe: Use irqchip template
gpio: adnp: Use irqchip template
gpio: adp5588: Use irqchip template
gpio: pcf857x: Use irqchip template
gpio: pca953x: Use irqchip template
gpio: crystalcove: Use irqchip template
gpio: wcove: Use irqchip template
Merge tag 'intel-gpio-v5.9-1' of
git://git.kernel.org/.../andy/linux-gpio-intel into devel
gpio: dln2: Use irqchip template
gpio: ws16c48: Use irqchip template
gpio: 104-dio-48e: Use irqchip template
gpio: 104-idi-48: Use irqchip template
gpio: 104-idio-16: Use irqchip template
gpio: pcie-idio-24: Use irqchip template
gpio: pci-idio-16: Use irqchip template
gpio: rcar: Use irqchip template
gpio: stmpe: Move chip registration
gpio: max732x: Use irqchip template
Mauro Carvalho Chehab (1):
gpio: driver.h: fix kernel-doc markup
Michael Walle (1):
gpio: regmap: fix type clash
Navid Emamdoost (2):
gpio: arizona: handle pm_runtime_get_sync failure case
gpio: arizona: put pm_runtime in case of failure
Shubhrajyoti Datta (6):
dt-bindings: gpio: Add binding for Versal gpio
dt-bindings: gpio: Add pmc gpio node to gpio-zynq
gpio: zynq: Add Versal support
gpio: zynq: Disable the irq if it is not a wakeup source
gpio: zynq: Add pmc gpio support
gpio: zynq: Remove error prints in EPROBE_DEFER
Song Hui (1):
gpio: mpc8xxx: change the gpio interrupt flags.
Sungbo Eo (2):
gpio: pca9570: add GPO driver for PCA9570
gpio: pca9570: Add DT bindings for NXP PCA9570
Tony Lindgren (1):
gpio: omap: Add missing PM ops for suspend
Wang Qing (1):
gpiolib: sysfs: use kobj_to_dev
.../devicetree/bindings/gpio/gpio-pca953x.txt | 1 +
.../devicetree/bindings/gpio/gpio-pca9570.yaml | 47 +
.../devicetree/bindings/gpio/gpio-zynq.txt | 4 +-
Documentation/driver-api/gpio/drivers-on-gpio.rst | 7 +
arch/arm/plat-orion/gpio.c | 8 +-
drivers/gpio/Kconfig | 12 +-
drivers/gpio/Makefile | 2 +
drivers/gpio/TODO | 2 +-
drivers/gpio/gpio-104-dio-48e.c | 35 +-
drivers/gpio/gpio-104-idi-48.c | 33 +-
drivers/gpio/gpio-104-idio-16.c | 33 +-
drivers/gpio/gpio-adnp.c | 95 +-
drivers/gpio/gpio-adp5588.c | 39 +-
drivers/gpio/gpio-aggregator.c | 63 +-
drivers/gpio/gpio-altera.c | 3 +-
drivers/gpio/gpio-arizona.c | 7 +-
drivers/gpio/gpio-crystalcove.c | 50 +-
drivers/gpio/gpio-dln2.c | 17 +-
drivers/gpio/gpio-ich.c | 26 +-
drivers/gpio/gpio-it87.c | 14 +-
drivers/gpio/gpio-max732x.c | 32 +-
drivers/gpio/gpio-max77620.c | 71 +-
drivers/gpio/gpio-ml-ioh.c | 2 +-
drivers/gpio/gpio-mlxbf.c | 2 +-
drivers/gpio/gpio-mlxbf2.c | 4 +-
drivers/gpio/gpio-mmio.c | 20 +-
drivers/gpio/gpio-mpc8xxx.c | 2 +-
drivers/gpio/gpio-mvebu.c | 8 +-
drivers/gpio/gpio-omap.c | 45 +-
drivers/gpio/gpio-pca953x.c | 142 ++-
drivers/gpio/gpio-pca9570.c | 146 +++
drivers/gpio/gpio-pcf857x.c | 47 +-
drivers/gpio/gpio-pch.c | 14 +-
drivers/gpio/gpio-pci-idio-16.c | 33 +-
drivers/gpio/gpio-pcie-idio-24.c | 17 +-
drivers/gpio/gpio-pmic-eic-sprd.c | 2 +-
drivers/gpio/gpio-rcar.c | 17 +-
drivers/gpio/gpio-sama5d2-piobu.c | 16 +-
drivers/gpio/gpio-sch.c | 23 +-
drivers/gpio/gpio-stmpe.c | 36 +-
drivers/gpio/gpio-syscon.c | 12 +-
drivers/gpio/gpio-tc3589x.c | 26 +-
drivers/gpio/gpio-wcove.c | 34 +-
drivers/gpio/gpio-ws16c48.c | 39 +-
drivers/gpio/gpio-xra1403.c | 8 +-
drivers/gpio/gpio-zynq.c | 66 +-
drivers/gpio/gpiolib-cdev.c | 1121 +++++++++++++++++++
drivers/gpio/gpiolib-cdev.h | 11 +
drivers/gpio/gpiolib-devres.c | 13 +-
drivers/gpio/gpiolib-of.c | 3 +
drivers/gpio/gpiolib-sysfs.c | 3 +-
drivers/gpio/gpiolib-sysfs.h | 24 +
drivers/gpio/gpiolib.c | 1144 +-------------------
drivers/gpio/gpiolib.h | 20 +-
drivers/pinctrl/pinctrl-at91.c | 7 +-
include/linux/gpio/driver.h | 37 +-
include/linux/gpio/regmap.h | 2 +-
include/uapi/linux/gpio.h | 2 +-
tools/gpio/gpio-event-mon.c | 3 +-
tools/gpio/gpio-utils.c | 4 +-
tools/gpio/lsgpio.c | 3 +-
61 files changed, 2150 insertions(+), 1609 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-pca9570.yaml
create mode 100644 drivers/gpio/gpio-pca9570.c
create mode 100644 drivers/gpio/gpiolib-cdev.c
create mode 100644 drivers/gpio/gpiolib-cdev.h
create mode 100644 drivers/gpio/gpiolib-sysfs.h