mbox series

[GIT,PULL] gpio: updates for v5.17

Message ID 20220111155255.745428-1-brgl@bgdev.pl
State New
Headers show
Series [GIT,PULL] gpio: updates for v5.17 | expand

Pull-request

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

Message

Bartosz Golaszewski Jan. 11, 2022, 3:52 p.m. UTC
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

Comments

Linus Torvalds Jan. 11, 2022, 8:36 p.m. UTC | #1
On Tue, Jan 11, 2022 at 7:53 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> 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
pr-tracker-bot@kernel.org Jan. 11, 2022, 8:53 p.m. UTC | #2
The pull request you sent on Tue, 11 Jan 2022 16:52:55 +0100:

> 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!