Skip to contentSkip to conversation

gpio: updates for v5.17

GIT PULL Merged Bartosz Golaszewski 3 participants 3 messages Jan 11, 2022 GPIO

lore
Share & tools
lore
#0 lore raw

Hi Linus!

This is the main pull-request from the GPIO subsystem for the next release cycle.

The gpio-sim module is back, this time without any changes to configfs. This results in a less elegant user-space interface but I never got any follow-up on the committable items and didn't want to delay this module for several more months.

Other than that we have support for several new models and some support going away. We started working on converting GPIO drivers to using fwnode exclusively in order to limit references to OF symbols to gpiolib-of.c exclusively. We also have regular tweaks and improvements all over the place.

The details are in the signed tag. Please pull!

Best Regards,
Bartosz Golaszewski

The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf:

Linux 5.16-rc1 (2021-11-14 13:56:52 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v5.17

for you to fetch changes up to ffe31c9ed35d70069ee76d6b6d41ac86a17d7a07:

gpio: rcar: Propagate errors from devm_request_irq() (2022-01-05 09:57:34 +0100)

----------------------------------------------------------------
gpio updates for v5.17

- new testing module: gpio-sim that is scheduled to replace gpio-mockup
- initial changes aiming at converting all GPIO drivers to using the fwnode interface and limiting any references to OF symbols to gpiolib-of.c
- add support for Tegra234 and Tegra241 to gpio-tegra186
- add support for new models (SSD201 and SSD202D) to gpio-msc313
- add basic support for interrupts to gpio-aggregator
- add support for AMDIF031 HID device to gpio-amdpt
- drop support for unused platforms in gpio-xlp
- cleanup leftovers from the removal of the legacy Samsung Exynos GPIO driver
- use raw spinlocks in gpio-aspeed and gpio-aspeed-sgpio to make PREEMPT_RT happy
- generalize the common 'ngpios' device property by reading it in the core gpiolib code so that we can remove duplicate reads from drivers
- allow line names from device properties to override names set by drivers
- code shrink in gpiod_add_lookup_table()
- add new model to the DT bindings for gpio-vf610
- convert DT bindings for tegra devices to YAML
- improvements to interrupt handling in gpio-rcar and gpio-rockchip
- updates to intel drivers from Andy (details in the merge commit)
- some minor tweaks, improvements and coding-style fixes all around the subsystem

----------------------------------------------------------------
Akhil R (2):
dt-bindings: gpio: Add Tegra241 support
gpio: tegra186: Add support for Tegra241

Andy Shevchenko (12):
gpiolib: acpi: Remove never used devm_acpi_dev_remove_driver_gpios()
gpiolib: acpi: shrink devm_acpi_dev_add_driver_gpios()
gpiolib: acpi: Unify debug and other messages format
gpio: dwapb: clarify usage of the register file version
gpio: Get rid of duplicate of_node assignment in the drivers
gpio: Setup parent device and get rid of unnecessary of_node assignment
gpio: Propagate firmware node from a parent device
gpio: Remove unused local OF node pointers
gpio: brcmstb: Use local variable to access OF node
gpio: regmap: Switch to use fwnode instead of of_node
gpiolib: acpi: make fwnode take precedence in struct gpio_chip
gpio: dwapb: Switch to use fwnode instead of of_node

Bartosz Golaszewski (12):
gpiolib: improve coding style for local variables
gpiolib: check the 'ngpios' property in core gpiolib code
gpiolib: provide gpiod_remove_hogs()
gpiolib: allow to specify the firmware node in struct gpio_chip
gpiolib: of: make fwnode take precedence in struct gpio_chip
gpio: sim: new testing module
selftests: gpio: provide a helper for reading chip info
selftests: gpio: add a helper for reading GPIO line names
selftests: gpio: add test cases for gpio-sim
selftests: gpio: gpio-sim: remove bashisms
selftests: gpio: gpio-sim: avoid forking test twice
Merge tag 'intel-gpio-v5.17-1' of gitolite.kernel.org:pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-next

Bjorn Helgaas (5):
gpio: pch: Use .driver_data instead of checking Device IDs again
gpio: pch: Cache &pdev->dev to reduce repetition
gpio: ml-ioh: Cache &pdev->dev to reduce repetition
gpio: ml-ioh: Use BIT() to match gpio-pch.c
gpio: ml-ioh: Change whitespace to match gpio-pch.c

Christophe JAILLET (1):
gpio: max3191x: Use bitmap_free() to free bitmap

Daniel Palmer (4):
dt-bindings: gpio: msc313: Add compatible for ssd20xd
dt-bindings: gpio: msc313: Add offsets for ssd20xd
gpio: msc313: Code clean ups
gpio: msc313: Add support for SSD201 and SSD202D

Geert Uytterhoeven (3):
dt-bindings: gpio: sifive,gpio: Group interrupt tuples
gpiolib: Let gpiod_add_lookup_table() call gpiod_add_lookup_tables()
gpio: aggregator: Add interrupt support

Hans de Goede (1):
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use

Hsu Yuchang (1):
gpio: amdpt: add new device ID and 24-pin support

Iwona Winiarska (2):
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock

Jacky Bai (1):
dt-bindings: gpio: gpio-vf610: Add imx8ulp compatible string

Jason Wang (2):
gpio: sch: fix typo in a comment
gpio: sta2x11: fix typo in a comment

John Keeping (1):
gpio: rockchip: lock GPIOs used as interrupts

Krzysztof Kozlowski (1):
dt-bindings: gpio: samsung: drop unused bindings

Lad Prabhakar (3):
gpio: ts5500: Use platform_get_irq() to get the interrupt
gpio: rcar: Use platform_get_irq() to get the interrupt
gpio: rcar: Propagate errors from devm_request_irq()

Peter Rosin (1):
gpiolib: allow line names from device props to override driver names

Prathamesh Shete (2):
dt-bindings: gpio: Add Tegra234 support
gpio: tegra186: Add support for Tegra234

Rob Herring (2):
gpio: xlp: Remove Netlogic XLP variants
gpio: xlp: Fix build errors from Netlogic XLP removal

Thierry Reding (2):
dt-bindings: gpio: tegra: Convert to json-schema
dt-bindings: gpio: tegra186: Convert to json-schema

Tom Rix (1):
gpio: sim: fix uninitialized ret variable

Yang Yingliang (1):
gpio: sim: add missing fwnode_handle_put() in gpio_sim_probe()

 Documentation/admin-guide/gpio/gpio-sim.rst        |  134 ++
 .../devicetree/bindings/gpio/gpio-samsung.txt      |   41 -
 .../devicetree/bindings/gpio/gpio-vf610.yaml       |    3 +
 .../bindings/gpio/mstar,msc313-gpio.yaml           |    4 +-
 .../bindings/gpio/nvidia,tegra186-gpio.txt         |  165 --
 .../bindings/gpio/nvidia,tegra186-gpio.yaml        |  214 +++
 .../bindings/gpio/nvidia,tegra20-gpio.txt          |   40 -
 .../bindings/gpio/nvidia,tegra20-gpio.yaml         |  110 ++
 .../devicetree/bindings/gpio/sifive,gpio.yaml      |    3 +-
 drivers/gpio/Kconfig                               |   18 +-
 drivers/gpio/Makefile                              |    1 +
 drivers/gpio/gpio-adnp.c                           |    1 -
 drivers/gpio/gpio-aggregator.c                     |   11 +-
 drivers/gpio/gpio-amdpt.c                          |   12 +-
 drivers/gpio/gpio-arizona.c                        |    5 +-
 drivers/gpio/gpio-aspeed-sgpio.c                   |   32 +-
 drivers/gpio/gpio-aspeed.c                         |   52 +-
 drivers/gpio/gpio-bcm-kona.c                       |    2 +-
 drivers/gpio/gpio-bd71828.c                        |    1 -
 drivers/gpio/gpio-brcmstb.c                        |    3 +-
 drivers/gpio/gpio-creg-snps.c                      |    2 +-
 drivers/gpio/gpio-davinci.c                        |    1 -
 drivers/gpio/gpio-dwapb.c                          |   15 +-
 drivers/gpio/gpio-eic-sprd.c                       |    1 -
 drivers/gpio/gpio-em.c                             |    1 -
 drivers/gpio/gpio-ge.c                             |    1 -
 drivers/gpio/gpio-grgpio.c                         |    1 -
 drivers/gpio/gpio-gw-pld.c                         |    2 -
 drivers/gpio/gpio-lpc32xx.c                        |    2 +-
 drivers/gpio/gpio-max3191x.c                       |    2 +-
 drivers/gpio/gpio-ml-ioh.c                         |   52 +-
 drivers/gpio/gpio-msc313.c                         |  266 +++-
 drivers/gpio/gpio-mt7621.c                         |    6 +-
 drivers/gpio/gpio-mvebu.c                          |    1 -
 drivers/gpio/gpio-omap.c                           |    3 -
 drivers/gpio/gpio-palmas.c                         |    4 +-
 drivers/gpio/gpio-pch.c                            |   42 +-
 drivers/gpio/gpio-pmic-eic-sprd.c                  |    1 -
 drivers/gpio/gpio-pxa.c                            |    8 +-
 drivers/gpio/gpio-raspberrypi-exp.c                |    1 -
 drivers/gpio/gpio-rcar.c                           |   16 +-
 drivers/gpio/gpio-rda.c                            |    3 -
 drivers/gpio/gpio-regmap.c                         |    6 +-
 drivers/gpio/gpio-rockchip.c                       |   21 +-
 drivers/gpio/gpio-sama5d2-piobu.c                  |    1 -
 drivers/gpio/gpio-sch.c                            |    2 +-
 drivers/gpio/gpio-sim.c                            | 1592 ++++++++++++++++++++
 drivers/gpio/gpio-sprd.c                           |    1 -
 drivers/gpio/gpio-sta2x11.c                        |    2 +-
 drivers/gpio/gpio-stmpe.c                          |    1 -
 drivers/gpio/gpio-tc3589x.c                        |    1 -
 drivers/gpio/gpio-tegra186.c                       |  129 +-
 drivers/gpio/gpio-tps65218.c                       |    3 -
 drivers/gpio/gpio-tps6586x.c                       |    5 +-
 drivers/gpio/gpio-tps65910.c                       |    6 +-
 drivers/gpio/gpio-ts5500.c                         |   11 +-
 drivers/gpio/gpio-twl6040.c                        |    5 +-
 drivers/gpio/gpio-vf610.c                          |    1 -
 drivers/gpio/gpio-wm831x.c                         |    5 +-
 drivers/gpio/gpio-xlp.c                            |  147 +-
 drivers/gpio/gpiolib-acpi.c                        |   54 +-
 drivers/gpio/gpiolib-of.c                          |    3 +
 drivers/gpio/gpiolib.c                             |   73 +-
 include/dt-bindings/gpio/msc313-gpio.h             |   71 +
 include/dt-bindings/gpio/tegra234-gpio.h           |   63 +
 include/dt-bindings/gpio/tegra241-gpio.h           |   42 +
 include/linux/gpio/consumer.h                      |    2 -
 include/linux/gpio/driver.h                        |    2 +
 include/linux/gpio/machine.h                       |    2 +
 tools/testing/selftests/gpio/.gitignore            |    2 +
 tools/testing/selftests/gpio/Makefile              |    4 +-
 tools/testing/selftests/gpio/config                |    1 +
 tools/testing/selftests/gpio/gpio-chip-info.c      |   57 +
 tools/testing/selftests/gpio/gpio-line-name.c      |   55 +
 tools/testing/selftests/gpio/gpio-sim.sh           |  396 +++++
 75 files changed, 3415 insertions(+), 634 deletions(-)
 create mode 100644 Documentation/admin-guide/gpio/gpio-sim.rst
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-samsung.txt
 delete mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra186-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra186-gpio.yaml
 delete mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.yaml
 create mode 100644 drivers/gpio/gpio-sim.c
 create mode 100644 include/dt-bindings/gpio/tegra234-gpio.h
 create mode 100644 include/dt-bindings/gpio/tegra241-gpio.h
 create mode 100644 tools/testing/selftests/gpio/gpio-chip-info.c
 create mode 100644 tools/testing/selftests/gpio/gpio-line-name.c
 create mode 100755 tools/testing/selftests/gpio/gpio-sim.sh
#1 lore raw
Quoted 5 lines · Bartosz Golaszewski

The gpio-sim module is back, this time without any changes to configfs. This results in a less elegant user-space interface but I never got any follow-up on the committable items and didn't want to delay this module for several more months.

Yeah, I think that was the right choice.

I actually did spend some time looking at the configfs code, and it just worried me. It may have been clever, but there was no real serious user that would have used it outside of this gpio use-case, and the games it played with the dentry layer were scary. With no real maintainer for configfs, and no VFS person willing to work on it, I think it was a dead end. With that in mind, the fewer fancy configfs users we have, and the fewer reasons to use it, the better.

Linus

merge bot Merged
#2 lore raw
In reply to Bartosz Golaszewski
The pull request you sent on Tue, 11 Jan 2022 16:52:55 +0100:

The pull request you sent on Tue, 11 Jan 2022 16:52:55 +0100:

Quoted 1 line

git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v5.17

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c288ea679840de4dee2ce6da5d0f139e3774ad86

Thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html