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

From: Linus Walleij
Date: Thu Dec 17 2020 - 17:00:49 EST


Hi Linus,

here is the bulk of GPIO changes for the v5.11 kernel cycle.

The contents are explained in the signed tag as usual.

I had some more core patches boiling, but given your clear desire in
the release mail for v5.10 I quickly decided to pull that out and have
it wait for the next kernel cycle.

For the next kernel cycle the GPIO co-maintainer Bartosz Golaszewski
will be sending pull requests with fixes and also the bulk material for
v5.12. He has a kernel.org account so this should not be any infrastructural
problem.

Please pull it in!

Yours,
Linus Walleij

The following changes since commit 09162bc32c880a791c6c0668ce0745cf7958f576:

Linux 5.10-rc4 (2020-11-15 16:44:31 -0800)

are available in the Git repository at:

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

for you to fetch changes up to 7ac554888233468a9fd7c4f28721396952dd9959:

MAINTAINERS: Remove reference to non-existing file (2020-12-16 21:57:46 +0100)

----------------------------------------------------------------
This is the bulk of the GPIO changes for the v5.11 kernel cycle:

Core changes:

- Retired the old set-up function for GPIO IRQ chips. All chips
now use the template struct gpio_irq_chip and pass that to the core
to be set up alongside the gpio_chip. We can finally get rid of
the old cruft.

- Some refactoring and clean up of the core code.

- Support edge event timestamps to be stamped using REALTIME
(wall clock) timestamps. We have found solid use cases for
this, so we support it.

New drivers:

- MStar MSC313 GPIO driver.

- HiSilicon GPIO driver.

Driver improvements:

- The PCA953x driver now also supports the NXP PCAL9554B/C chips.

- The mockup driver can now be probed from the device tree which
is pretty useful for virtual prototyping of devices.

- The Rcar driver now supports .get_multiple()

- The MXC driver dropped some legacy and became a pure device
tree client.

- The Exar driver was moved over to the IDA interface for
enumerating, and also switched over to using regmap for
register access.

----------------------------------------------------------------
Alexandre Courbot (1):
Documentation: gpio: fix typo and unclear legacy API section

Alexandru Ardelean (1):
gpio: xra1403: remove unneeded spi_set_drvdata()

Andy Shevchenko (26):
gpiolib: Extract gpiod_not_found() helper
gpiolib: of: Use named item for enum gpiod_flags variable
gpiolib: Unify expectations about ->request() returned value
gpiolib: split error path in gpiod_request_commit()
gpiolib: Use proper type for bias enumerator in gpio_set_bias()
gpiolib: Switch to use compat_need_64bit_alignment_fixup() helper
Merge tag 'intel-pinctrl-v5.10-2' into HEAD
gpiolib: Replace unsigned by unsigned int
gpiolib: add missed break statement
gpiolib: use proper API to pack pin configuration parameters
gpiolib: Extract gpio_set_config_with_argument() for future use
gpiolib: move bias related code from gpio_set_config() to gpio_set_bias()
gpiolib: Extract gpio_set_config_with_argument_optional() helper
gpiolib: Introduce gpio_set_debounce_timeout() for internal use
gpiolib: acpi: Respect bias settings for GpioInt() resource
gpiolib: acpi: Use named item for enum gpiod_flags variable
gpiolib: acpi: Take into account debounce settings
gpiolib: acpi: Move non-critical code outside of critical section
gpiolib: acpi: Move acpi_gpio_to_gpiod_flags() upper in the code
gpiolib: acpi: Make acpi_gpio_to_gpiod_flags() usable for GpioInt()
gpiolib: acpi: Extract acpi_request_own_gpiod() helper
gpiolib: acpi: Convert pin_index to be u16
gpiolib: acpi: Use BIT() macro to increase readability
gpiolib: acpi: Make Intel GPIO tree official for GPIO ACPI work
gpio: hisi: Do not require ACPI for COMPILE_TEST
MAINTAINERS: Remove reference to non-existing file

Bartosz Golaszewski (8):
gpiolib: devres: shrink devm_gpiochip_add_data_with_key()
gpio: exar: add a newline after the copyright notice
gpio: exar: include idr.h
gpio: exar: switch to a simpler IDA interface
gpio: exar: use a helper variable for &pdev->dev
gpio: exar: unduplicate address and offset computation
gpio: exar: switch to using regmap
gpio: exar: use devm action for freeing the IDA and drop remove()

Baruch Siach (2):
gpio: mvebu: update Armada XP per-CPU comment
gpio: mvebu: switch pwm duration registers to regmap

Damien Le Moal (1):
gpio: dwapb: Remove unnecessary error message

Daniel Palmer (3):
dt-bindings: gpio: Add a binding header for the MSC313 GPIO driver
dt-bindings: gpio: Binding for MStar MSC313 GPIO controller
gpio: msc313: MStar MSC313 GPIO driver

Deepak R Varma (1):
gpio: 104-idi-48: improve code indentation

Dmitry Osipenko (2):
gpio: tegra: Add lockdep class
gpio: tegra: Use raw_spinlock

Enrico Weigelt (1):
gpio: just plain warning when nonexisting gpio requested

Enrico Weigelt, metux IT consult (4):
drivers: gpio: bt8xx: prefer dev_err()/dev_warn() over of raw printk
drivers: gpio: amd8111: prefer dev_err()/dev_info() over raw printk
drivers: gpio: amd8111: use SPDX-License-Identifier
gpio: put virtual gpio device into their own submenu

Fabio Estevam (2):
gpio: mxc: Convert the driver to DT-only
gpio: mxs: Remove unused .id_table support

Geert Uytterhoeven (4):
gpio: rcar: Cache gpiochip_get_data() return value
gpio: rcar: Align register offsets
gpio: rcar: Rework hardware features handling
gpio: rcar: Implement gpio_chip.get_multiple()

Greentime Hu (1):
gpio: sifive: To get gpio irq offset from device tree data

Grygorii Strashko (2):
gpio: omap: handle deferred probe with dev_err_probe() for
gpiochip_add_data()
gpiolib: do not print err message for EPROBE_DEFER

Gustavo A. R. Silva (2):
gpiolib: acpi: Fix fall-through warnings for Clang
gpio: ath79: Fix fall-through warning for Clang

Kent Gibson (5):
gpiolib: cdev: document that line eflags are shared
gpiolib: cdev: add GPIO_V2_LINE_FLAG_EDGE_BOTH and use it in
edge_irq_thread()
gpiolib: cdev: allow edge event timestamps to be configured as REALTIME
tools: gpio: add support for reporting realtime event clock to lsgpio
tools: gpio: add option to report wall-clock time to gpio-event-mon

Linus Walleij (10):
gpio: Retire the explicit gpio irqchip code
gpio: stmpe: Fix forgotten refactoring
Merge branch 'devel' into for-next
Merge tag 'v5.10-rc4' into devel
Merge tag 'intel-gpio-v5.11-1' of
gitolite.kernel.org:pub/scm/linux/kernel/git/andy/linux-gpio-intel
into devel
gpio: sysfs: Enforce character device
gpio: sifive: Set affinity callback to parent
gpio: tegra186: Set affinity callback to parent
gpio: Add TODO item for debugfs interface
Merge tag 'gpio-updates-for-v5.11' of
git://git.kernel.org/.../brgl/linux into devel

Luo Jiaxing (2):
gpio: gpio-hisi: Add HiSilicon GPIO support
MAINTAINERS: Add maintainer for HiSilicon GPIO driver

Marc Zyngier (1):
gpiolib: cdev: Flag invalid GPIOs as used

Mike Looijmans (1):
dt-bindings: gpio: pca953x: Add support for the NXP PCAL9554B/C

Nikita Shubin (1):
gpiolib: irq hooks: fix recursion in gpiochip_irq_unmask

Sergio Paracuellos (1):
dt-bindings: mt7621-gpio: convert bindings to YAML format

Srinivas Neeli (6):
gpio: gpio-xilinx: Arrange headers in sorting order
dt-bindings: gpio: gpio-xilinx: Add clk support to xilinx soft gpio IP
gpio: gpio-xilinx: Add clock support
gpio: gpio-xilinx: Add remove function
gpio: gpio-xilinx: Check return value of of_property_read_u32
MAINTAINERS: add fragment for xilinx GPIO drivers

Thierry Reding (1):
dt-bindings: gpio: Use Tegra186-specific include guard

Vasile-Laurentiu Stanimir (1):
gpiolib: acpi: Set initial value for output pin based on bias and polarity

Vincent Whitchurch (1):
gpio: mockup: Allow probing from device tree

Zheng Yongjun (1):
gpio: cs5535: Simplify the return expression of cs5535_gpio_probe()

.../devicetree/bindings/gpio/gpio-pca95xx.yaml | 1 +
.../devicetree/bindings/gpio/gpio-xilinx.txt | 2 +
.../bindings/gpio/mediatek,mt7621-gpio.txt | 35 --
.../bindings/gpio/mediatek,mt7621-gpio.yaml | 72 ++++
.../bindings/gpio/mstar,msc313-gpio.yaml | 59 +++
Documentation/driver-api/gpio/consumer.rst | 18 +-
Documentation/driver-api/gpio/driver.rst | 67 +--
MAINTAINERS | 20 +
drivers/gpio/Kconfig | 30 +-
drivers/gpio/Makefile | 2 +
drivers/gpio/TODO | 85 ++--
drivers/gpio/gpio-104-idi-48.c | 6 +-
drivers/gpio/gpio-amd8111.c | 11 +-
drivers/gpio/gpio-ath79.c | 1 +
drivers/gpio/gpio-bt8xx.c | 8 +-
drivers/gpio/gpio-cs5535.c | 8 +-
drivers/gpio/gpio-dwapb.c | 7 +-
drivers/gpio/gpio-exar.c | 155 ++++---
drivers/gpio/gpio-hisi.c | 323 +++++++++++++++
drivers/gpio/gpio-mockup.c | 11 +-
drivers/gpio/gpio-msc313.c | 460 +++++++++++++++++++++
drivers/gpio/gpio-mvebu.c | 71 ++--
drivers/gpio/gpio-mxc.c | 102 +----
drivers/gpio/gpio-mxs.c | 14 -
drivers/gpio/gpio-omap.c | 7 +-
drivers/gpio/gpio-rcar.c | 87 ++--
drivers/gpio/gpio-sifive.c | 25 +-
drivers/gpio/gpio-stmpe.c | 10 +-
drivers/gpio/gpio-tegra.c | 22 +-
drivers/gpio/gpio-tegra186.c | 11 +
drivers/gpio/gpio-xilinx.c | 49 ++-
drivers/gpio/gpio-xra1403.c | 10 +-
drivers/gpio/gpiolib-acpi.c | 139 ++++---
drivers/gpio/gpiolib-acpi.h | 2 +
drivers/gpio/gpiolib-cdev.c | 79 ++--
drivers/gpio/gpiolib-devres.c | 27 +-
drivers/gpio/gpiolib-of.c | 14 +-
drivers/gpio/gpiolib-sysfs.c | 2 +-
drivers/gpio/gpiolib.c | 301 ++++----------
drivers/gpio/gpiolib.h | 4 +
include/dt-bindings/gpio/msc313-gpio.h | 53 +++
include/dt-bindings/gpio/tegra186-gpio.h | 4 +-
include/linux/gpio/consumer.h | 4 +-
include/linux/gpio/driver.h | 71 ----
include/uapi/linux/gpio.h | 12 +-
tools/gpio/gpio-event-mon.c | 6 +-
tools/gpio/lsgpio.c | 4 +
47 files changed, 1685 insertions(+), 826 deletions(-)
delete mode 100644
Documentation/devicetree/bindings/gpio/mediatek,mt7621-gpio.txt
create mode 100644
Documentation/devicetree/bindings/gpio/mediatek,mt7621-gpio.yaml
create mode 100644
Documentation/devicetree/bindings/gpio/mstar,msc313-gpio.yaml
create mode 100644 drivers/gpio/gpio-hisi.c
create mode 100644 drivers/gpio/gpio-msc313.c
create mode 100644 include/dt-bindings/gpio/msc313-gpio.h