[GIT PULL] gpio updates for v6.11-rc1

From: Bartosz Golaszewski
Date: Mon Jul 15 2024 - 04:51:34 EST


From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>

Linus,

Here's the pull-request from the GPIO tree for this merge window. The majority
of added lines are two new modules: the GPIO virtual consumer module that
improves our ability to add automated tests for the kernel API and the "sloppy"
logic analyzer module that uses the GPIO API to implement a coarse-grained
debugging tool for useful for remote development.

Other than that we have the usual assortment of various driver extensions,
improvements to the core GPIO code, DT-bindings and other documentation
updates as well as an extension to the interrupt simulator.

Details are in the signed tag. Please pull for rc1.

Best Regards,
Bartosz Golaszewski

The following changes since commit 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0:

Linux 6.10-rc1 (2024-05-26 15:20:12 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v6.11-rc1

for you to fetch changes up to dfda97e37de4c2fa4a079ae77737c6b9ed021f79:

gpio: mc33880: Convert comma to semicolon (2024-07-10 14:30:27 +0200)

----------------------------------------------------------------
gpio updates for v6.11-rc1

GPIOLIB core:
- rework kfifo handling rework in the character device code
- improve the labeling of GPIOs requested as interrupts and show more info
on interrupt-only GPIOs in debugfs
- remove unused APIs
- unexport interfaces that are only used from the core GPIO code
- drop the return value from gpiochip_set_desc_names() as it cannot fail
- move a string array definition out of a header and into a specific
compilation unit
- convert the last user of gpiochip_get_desc() other than GPIO core to using
a safer alternative
- use array_index_nospec() where applicable

New drivers:
- add a "virtual GPIO consumer" module that allows requesting GPIOs from actual
hardware and driving tests of the in-kernel GPIO API from user-space over
debugfs
- add a GPIO-based "sloppy" logic analyzer module useful for "first glance"
debugging on remote boards

Driver improvements:
- add support for a new model to gpio-pca953x
- lock GPIOs as interrupts in gpio-sim when the lines are requested as irqs
via the simulator domain + some other minor improvements
- improve error reporting in gpio-syscon
- convert gpio-ath79 to using dynamic GPIO base and range
- use pcibios_err_to_errno() for converting PCIBIOS error codes to errno
vaues in gpio-amd8111 and gpio-rdc321x
- allow building gpio-brcmstb for the BCM2835 architecture

DT bindings:
- convert DT bindings for lsi,zevio, mpc8xxx, and atmel to DT schema
- document new properties for aspeed,gpio, fsl,qoriq-gpio and gpio-vf610
- document new compatibles for pca953x and fsl,qoriq-gpio

Documentation:
- document stricter behavior of the GPIO character device uAPI with regards to
reconfiguring requested line without direction set
- clarify the effect of the active-low flag on line values and edges
- remove documentation for the legacy GPIO API in order to stop tempting
people to use it
- document the preference for using pread() for reading edge events in the
sysfs API

Other:
- add an extended initializer to the interrupt simulator allowing to specify
a number of callbacks callers can use to be notified about irqs being
requested and released

----------------------------------------------------------------
Andrew Davis (1):
gpiolib: Remove data-less gpiochip_add() function

Andrew Jeffery (2):
dt-bindings: gpio: aspeed,sgpio: Specify gpio-line-names
dt-bindings: gpio: aspeed,sgpio: Specify #interrupt-cells

Andy Shevchenko (3):
gpio: Remove legacy API documentation
gpiolib: Return label, if set, for IRQ only line
gpiolib: Show more info for interrupt only lines in debugfs

Bartosz Golaszewski (11):
gpiolib: make gpiochip_set_desc_names() return void
gpio: sim: use device_match_name() instead of strcmp(dev_name(...
gpio: sim: drop kernel.h include
gpio: sim: use devm_mutex_init()
gpiolib: put gpio_suffixes in a single compilation unit
pinctrl: da9062: replace gpiochip_get_desc() with gpio_device_get_desc()
gpiolib: unexport gpiochip_get_desc()
genirq/irq_sim: add an extended irq_sim initializer
gpio: sim: lock GPIOs as interrupts when they are requested
gpio: virtuser: new virtual testing driver for the GPIO API
gpio: virtuser: actually use the "trimmed" local variable

Chen Ni (1):
gpio: mc33880: Convert comma to semicolon

Etienne Buira (1):
gpio: syscon: do not report bogus error

Fabio Estevam (2):
gpio: pca953x: Add support for TI TCA9535 variant
dt-bindings: gpio: pca95xx: Document the TI TCA9535 variant

Frank Li (3):
dt-bindings: gpio: mpc8xxx: Convert to yaml format
dt-bindings: gpio: fsl,qoriq-gpio: add common property gpio-line-names
dt-bindings: gpio: fsl,qoriq-gpio: Add compatible string fsl,ls1046a-gpio

Frieder Schrempf (1):
dt-bindings: gpio: vf610: Allow gpio-line-names to be set

Hagar Hemdan (1):
gpio: prevent potential speculation leaks in gpio_device_get_desc()

Huichun Feng (1):
docs: gpio: prefer pread(2) for interrupt reading

Ilpo Järvinen (2):
gpio: amd8111: Convert PCIBIOS_* return codes to errnos
gpio: rdc321x: Convert PCIBIOS_* return codes to errnos

Kent Gibson (7):
gpiolib: cdev: Add INIT_KFIFO() for linereq events
gpiolib: cdev: Refactor allocation of linereq events kfifo
gpiolib: cdev: Cleanup kfifo_out() error handling
Documentation: gpio: Clarify effect of active low flag on line values
Documentation: gpio: Clarify effect of active low flag on line edges
Documentation: gpio: Reconfiguration with unset direction (uAPI v1)
Documentation: gpio: Reconfiguration with unset direction (uAPI v2)

Manikandan Muralidharan (1):
dt-bindings: gpio: convert Atmel GPIO to json-schema

Peter Robinson (1):
gpio: brcmstb: Allow building driver for ARCH_BCM2835

Pratik Farkase (1):
dt-bindings: gpio: lsi,zevio-gpio: convert to dtschema

Shiji Yang (1):
gpio: ath79: convert to dynamic GPIO base allocation

Wolfram Sang (1):
gpio: add sloppy logic analyzer using polling

Documentation/admin-guide/gpio/gpio-virtuser.rst | 177 ++
Documentation/admin-guide/gpio/index.rst | 1 +
.../dev-tools/gpio-sloppy-logic-analyzer.rst | 93 +
Documentation/dev-tools/index.rst | 1 +
.../devicetree/bindings/gpio/aspeed,sgpio.yaml | 10 +
.../bindings/gpio/atmel,at91rm9200-gpio.yaml | 81 +
.../devicetree/bindings/gpio/fsl,qoriq-gpio.yaml | 87 +
.../devicetree/bindings/gpio/gpio-mpc8xxx.txt | 53 -
.../devicetree/bindings/gpio/gpio-pca95xx.yaml | 1 +
.../devicetree/bindings/gpio/gpio-vf610.yaml | 4 +
.../devicetree/bindings/gpio/gpio-zevio.txt | 16 -
.../devicetree/bindings/gpio/gpio_atmel.txt | 31 -
.../devicetree/bindings/gpio/lsi,zevio-gpio.yaml | 43 +
Documentation/driver-api/gpio/board.rst | 6 -
Documentation/driver-api/gpio/consumer.rst | 4 +-
Documentation/driver-api/gpio/driver.rst | 5 +-
Documentation/driver-api/gpio/index.rst | 1 -
Documentation/driver-api/gpio/intro.rst | 12 -
Documentation/driver-api/gpio/legacy.rst | 679 --------
.../translations/zh_CN/driver-api/gpio/index.rst | 2 -
.../translations/zh_CN/driver-api/gpio/legacy.rst | 618 -------
Documentation/translations/zh_TW/gpio.txt | 574 -------
.../gpio/gpio-handle-get-line-values-ioctl.rst | 7 +
.../gpio/gpio-handle-set-config-ioctl.rst | 5 +-
.../gpio/gpio-handle-set-line-values-ioctl.rst | 7 +
.../gpio/gpio-lineevent-data-read.rst | 5 +
.../userspace-api/gpio/gpio-v2-line-event-read.rst | 5 +
.../gpio/gpio-v2-line-get-values-ioctl.rst | 7 +
.../gpio/gpio-v2-line-set-config-ioctl.rst | 7 +-
.../gpio/gpio-v2-line-set-values-ioctl.rst | 7 +
Documentation/userspace-api/gpio/sysfs.rst | 7 +-
drivers/gpio/Kconfig | 33 +-
drivers/gpio/Makefile | 2 +
drivers/gpio/gpio-amd8111.c | 4 +-
drivers/gpio/gpio-ath79.c | 2 -
drivers/gpio/gpio-mc33880.c | 2 +-
drivers/gpio/gpio-pca953x.c | 1 +
drivers/gpio/gpio-rdc321x.c | 6 +-
drivers/gpio/gpio-sim.c | 60 +-
drivers/gpio/gpio-sloppy-logic-analyzer.c | 344 ++++
drivers/gpio/gpio-syscon.c | 27 +-
drivers/gpio/gpio-virtuser.c | 1807 ++++++++++++++++++++
drivers/gpio/gpiolib-acpi.c | 4 +-
drivers/gpio/gpiolib-cdev.c | 80 +-
drivers/gpio/gpiolib-of.c | 4 +-
drivers/gpio/gpiolib.c | 36 +-
drivers/gpio/gpiolib.h | 4 +-
drivers/pinctrl/pinctrl-da9062.c | 2 +-
drivers/staging/greybus/gpio.c | 2 +-
include/linux/gpio.h | 6 +-
include/linux/gpio/driver.h | 5 -
include/linux/irq_sim.h | 17 +
kernel/irq/irq_sim.c | 60 +-
tools/gpio/gpio-sloppy-logic-analyzer.sh | 246 +++
54 files changed, 3187 insertions(+), 2123 deletions(-)
create mode 100644 Documentation/admin-guide/gpio/gpio-virtuser.rst
create mode 100644 Documentation/dev-tools/gpio-sloppy-logic-analyzer.rst
create mode 100644 Documentation/devicetree/bindings/gpio/atmel,at91rm9200-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/fsl,qoriq-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-mpc8xxx.txt
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-zevio.txt
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio_atmel.txt
create mode 100644 Documentation/devicetree/bindings/gpio/lsi,zevio-gpio.yaml
delete mode 100644 Documentation/driver-api/gpio/legacy.rst
delete mode 100644 Documentation/translations/zh_CN/driver-api/gpio/legacy.rst
delete mode 100644 Documentation/translations/zh_TW/gpio.txt
create mode 100644 drivers/gpio/gpio-sloppy-logic-analyzer.c
create mode 100644 drivers/gpio/gpio-virtuser.c
create mode 100755 tools/gpio/gpio-sloppy-logic-analyzer.sh