lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250929094107.34633-1-brgl@bgdev.pl>
Date: Mon, 29 Sep 2025 11:41:07 +0200
From: Bartosz Golaszewski <brgl@...ev.pl>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Linus Walleij <linus.walleij@...aro.org>,
	linux-gpio@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	Bartosz Golaszewski <bartosz.golaszewski@...aro.org>
Subject: [GIT PULL] gpio updates for v6.18-rc1

From: Bartosz Golaszewski <bartosz.golaszewski@...aro.org>

Linus,

Here's the PR containing the GPIO updates for this merge window. There are
two new drivers and support for more models in existing ones. 

The generic GPIO API has been reworked and all users converted which
allowed us to move the fields specific to the generic GPIO implementation
out of the high-level struct gpio_chip into its own structure that wraps
the gpio_chip.

Other than that, there's nothing too exciting. Mostly minor tweaks and
fixes all over the place, some refactoring and some small new features
in helper modules. Details are in the signed tag.

The merges you see here are either me pulling in MFD changes with GPIO
drivers that depend on MFD changes or my own immutable branches provided
for other trees.

Thanks,
Bartosz

The following changes since commit 76eeb9b8de9880ca38696b2fb56ac45ac0a25c6c:

  Linux 6.17-rc5 (2025-09-07 14:22:57 -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.18-rc1

for you to fetch changes up to bc061143637532c08d9fc657eec93fdc2588068e:

  gpio: mpfs: fix setting gpio direction to output (2025-09-26 11:56:26 +0200)

----------------------------------------------------------------
gpio updates for v6.18-rc1

GPIO core:
- add support for sparse pin ranges to the glue between GPIO and pinctrl
- use a common prefix across all GPIO descriptor flags for improved
  namespacing

New drivers:
- add new GPIO driver for the Nuvoton NCT6694
- add new GPIO driver for MAX7360

Driver improvements:
- add support for Tegra 256 to the gpio-tegra186 driver
- add support for Loongson-2K0300 to the gpio-loongson-64bit driver
- refactor the gpio-aggregator module to expose its GPIO forwarder API
  to other in-kernel users (to enable merging of a new pinctrl driver
  that uses it)
- convert all remaining drivers to using the modernized generic GPIO chip
  API and remove the old interface
- stop displaying global GPIO numbers in debugfs output of controller
  drivers
- extend the gpio-regmap helper with a new config option and improve its
  support for GPIO interrupts
- remove redundant fast_io parameter from regmap configs in GPIO drivers
  that already use MMIO regmaps which imply it
- add support for a new model in gpio-mmio: ixp4xx expansion bus
- order includes alphabetically in a few drivers for better readability
- use generic device properties where applicable
- use devm_mutex_init() where applicable
- extend build coverage of drivers by enabling more to be compiled with
  COMPILE_TEST enabled
- allow building gpio-stmpe as a module
- use dev_err_probe() where it makes sense in drivers

Late driver fixes:
- fix setting GPIO direction to output in gpio-mpfs

Documentation:
- document the usage of software nodes with GPIO chips

Device-tree bindings:
- Add DT bindings documents for new hardware: Tegra256, MAX7360
- Document a new model in Loongson bindings: LS2K0300
- Document a new model using the generic GPIO binding: IXP4xx
- Convert the DT binding for fsl,mxs-pinctrl to YAML
- fix the schema ID in the "trivial" GPIO schema
- describe GPIO hogs in the generic GPIO binding

----------------------------------------------------------------
Akhilesh Patil (1):
      gpio: Kconfig: Update help for GPIO_PCA953X

Alexander Stein (2):
      gpio: stmpe: Allow to compile as a module
      mfd: stmpe: Allow building as module

Bartosz Golaszewski (80):
      Merge tag 'gpio-aggregator-refactoring-for-v6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into gpio/for-next
      pinctrl: stm32: use new generic GPIO chip API
      pinctrl: equilibrium: use new generic GPIO chip API
      pinctrl: npcm8xx: use new generic GPIO chip API
      pinctrl: npcm7xx: use new generic GPIO chip API
      pinctrl: wpcm450: use new generic GPIO chip API
      Merge branch 'ib-gpio_generic_chip_init' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into gpio/for-next
      gpio: generic: provide to_gpio_generic_chip()
      gpio: generic: provide helpers for reading and writing registers
      gpio: hisi: use the BGPIOF_UNREADABLE_REG_DIR flag
      gpio: ts4800: remove the unnecessary call to platform_set_drvdata()
      gpio: ts4800: use generic device properties
      gpio: ts4800: use dev_err_probe()
      gpio: ts4800: use new generic GPIO chip API
      gpio: loongson-64bit: use new generic GPIO chip API
      gpio: dwapb: use new generic GPIO chip API
      gpio: amdpt: use new generic GPIO chip API
      gpio: rda: use new generic GPIO chip API
      gpio: grgpio: use new generic GPIO chip API
      gpio: mpc8xxx: use new generic GPIO chip API
      gpio: ge: use new generic GPIO chip API
      gpio: sim: don't use GPIO base in debugfs output
      gpio: xgene-sb: use new generic GPIO chip API
      gpio: mxs: order includes alphabetically
      gpio: mxs: use new generic GPIO chip API
      gpio: mlxbf2: use dev_err_probe() where applicable
      gpio: mlxbf2: use new generic GPIO chip API
      gpio: xgs-iproc: use new generic GPIO chip API
      gpio: ftgpio010: order includes alphabetically
      gpio: ftgpio010: use new generic GPIO chip API
      gpio: realtek-otto: use new generic GPIO chip API
      gpio: hisi: use new generic GPIO chip API
      gpio: vf610: use new generic GPIO chip API
      gpio: visconti: use new generic GPIO chip API
      gpio: stmpe: don't print out global GPIO numbers in debugfs callbacks
      gpio: nomadik: don't print out global GPIO numbers in debugfs callbacks
      gpio: wm831x: don't print out global GPIO numbers in debugfs callbacks
      gpio: wm8994: don't print out global GPIO numbers in debugfs callbacks
      gpio: mvebu: don't print out global GPIO numbers in debugfs callbacks
      gpio: xra1403: don't print out global GPIO numbers in debugfs callbacks
      mfd: vexpress-sysreg: Check the return value of devm_gpiochip_add_data()
      mfd: vexpress-sysreg: Use new generic GPIO chip API
      Merge tag 'ib-mfd-gpio-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
      Merge tag 'gpio/mfd-stmpe-for-v6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into gpio/for-next
      gpio: nomadik: wrap a local variable in a necessary ifdef
      Merge tag 'v6.17-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next
      gpio: ixp4xx: allow building the module with COMPILE_TEST enabled
      gpio: ixp4xx: use new generic GPIO chip API
      gpio: idt3243x: use new generic GPIO chip API
      gpio: blzp1600: use new generic GPIO chip API
      gpio: tb10x: order includes alphabetically
      gpio: tb10x: allow building the module with COMPILE_TEST=y
      gpio: tb10x: use new generic GPIO chip API
      gpio: mlxbf: use new generic GPIO chip API
      gpio: ep93xx: allow building the module with COMPILE_TEST enabled
      gpio: ep93xx: order includes alphabetically
      gpio: ep93xx: use new generic GPIO chip API
      gpio: mlxbf3: use new generic GPIO chip API
      gpio: use more common syntax for compound literals
      gpiolib: add a common prefix to GPIO descriptor flags
      gpio: loongson1: allow building the module with COMPILE_TEST enabled
      gpio: loongson1: use new generic GPIO chip API
      gpio: hlwd: use new generic GPIO chip API
      gpio: ath79: use new generic GPIO chip API
      gpio: ath79: use the generic GPIO chip lock for IRQ handling
      gpio: xgene-sb: use generic GPIO chip register read and write APIs
      gpio: brcmstb: use new generic GPIO chip API
      gpio: mt7621: use new generic GPIO chip API
      gpio: mt7621: use the generic GPIO chip lock for IRQ handling
      gpio: menz127: use new generic GPIO chip API
      gpio: sifive: use new generic GPIO chip API
      gpio: spacemit-k1: use new generic GPIO chip API
      gpio: sodaville: use new generic GPIO chip API
      gpio: mmio: use new generic GPIO chip API
      gpio: move gpio-mmio-specific fields out of struct gpio_chip
      gpio: nomadik: fix the debugfs helper stub
      Merge tag 'ib-mfd-gpio-hwmon-i2c-can-rtc-watchdog-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
      Merge tag 'ib-mfd-gpio-input-pinctrl-pwm-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
      gpio: generic: rename BGPIOF_ flags to GPIO_GENERIC_
      gpio: generic: move GPIO_GENERIC_ flags to the correct header

Chen Ni (1):
      gpio: loongson-64bit: Remove unneeded semicolon

Christophe JAILLET (1):
      gpio: pisosr: Use devm_mutex_init()

Colin Ian King (1):
      gpio: loongson-64bit: Fix a less than zero check on an unsigned int struct field

Conor Dooley (1):
      gpio: mpfs: fix setting gpio direction to output

Dan Carpenter (1):
      gpio: aggregator: Fix off by one in gpiochip_fwd_desc_add()

Dmitry Torokhov (1):
      Documentation: gpio: add documentation about using software nodes

Frank Li (1):
      dt-bindings: gpio: Move fsl,mxs-pinctrl.txt into gpio-mxs.yaml

Geert Uytterhoeven (1):
      gpio: TODO: remove the task for converting to the new line setters

Ioana Ciornei (1):
      dt-bindings: gpio: fix trivial-gpio's schema id

Kamel Bouhara (2):
      mfd: Add max7360 support
      pwm: max7360: Add MAX7360 PWM support

Krzysztof Kozlowski (1):
      dt-bindings: gpio: Minor whitespace cleanup in example

Li Jun (1):
      gpio: aggregator: fix macros coding style error

Linus Walleij (3):
      dt-bindings: gpio-mmio: Support hogs
      dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus
      gpio: mmio: Add compatible for the ixp4xx eb MMIO

Mathieu Dubois-Briand (8):
      dt-bindings: mfd: gpio: Add MAX7360
      pinctrl: Add MAX7360 pinctrl driver
      gpio: regmap: Allow to allocate regmap-irq device
      gpio: regmap: Allow to provide init_valid_mask callback
      gpio: max7360: Add MAX7360 gpio support
      input: keyboard: Add support for MAX7360 keypad
      input: misc: Add support for MAX7360 rotary
      MAINTAINERS: Add entry on MAX7360 driver

Ming Yu (7):
      mfd: Add core driver for Nuvoton NCT6694
      gpio: Add Nuvoton NCT6694 GPIO support
      i2c: Add Nuvoton NCT6694 I2C support
      can: Add Nuvoton NCT6694 CANFD support
      watchdog: Add Nuvoton NCT6694 WDT support
      hwmon: Add Nuvoton NCT6694 HWMON support
      rtc: Add Nuvoton NCT6694 RTC support

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

Thomas Richard (9):
      gpiolib: add support to register sparse pin range
      gpio: aggregator: move GPIO forwarder allocation in a dedicated function
      gpio: aggregator: refactor the code to add GPIO desc in the forwarder
      gpio: aggregator: refactor the forwarder registration part
      gpio: aggregator: update gpiochip_fwd_setup_delay_line() parameters
      gpio: aggregator: export symbols of the GPIO forwarder library
      gpio: aggregator: handle runtime registration of gpio_desc in gpiochip_fwd
      gpio: aggregator: add possibility to attach data to the forwarder
      lib/string_choices: Add str_input_output() helper

Waqar Hameed (1):
      gpio: twl4030: Remove error print for devm_add_action_or_reset()

Wolfram Sang (1):
      gpio: remove unneeded 'fast_io' parameter in regmap_config

Yao Zi (2):
      dt-bindings: gpio: loongson: Document GPIO controller of LS2K0300 SoC
      gpio: loongson-64bit: Add support for Loongson-2K0300 SoC

 .../devicetree/bindings/gpio/gpio-mmio.yaml        |  36 +-
 .../devicetree/bindings/gpio/gpio-mxs.yaml         |  80 +-
 .../devicetree/bindings/gpio/loongson,ls-gpio.yaml |  28 +-
 .../devicetree/bindings/gpio/maxim,max31910.yaml   |   6 +-
 .../bindings/gpio/maxim,max7360-gpio.yaml          |  83 ++
 .../bindings/gpio/nvidia,tegra186-gpio.yaml        |   2 +
 .../devicetree/bindings/gpio/spacemit,k1-gpio.yaml |   2 +-
 .../devicetree/bindings/gpio/trivial-gpio.yaml     |   2 +-
 .../devicetree/bindings/mfd/maxim,max7360.yaml     | 191 +++++
 .../bindings/pinctrl/fsl,mxs-pinctrl.txt           | 127 ---
 Documentation/driver-api/gpio/board.rst            |  65 ++
 Documentation/driver-api/gpio/index.rst            |   1 +
 Documentation/driver-api/gpio/legacy-boards.rst    | 298 +++++++
 MAINTAINERS                                        |  25 +
 drivers/gpio/Kconfig                               |  49 +-
 drivers/gpio/Makefile                              |   2 +
 drivers/gpio/TODO                                  |  17 -
 drivers/gpio/gpio-aggregator.c                     | 410 +++++++--
 drivers/gpio/gpio-amdpt.c                          |  44 +-
 drivers/gpio/gpio-ath79.c                          |  88 +-
 drivers/gpio/gpio-blzp1600.c                       |  39 +-
 drivers/gpio/gpio-brcmstb.c                        | 114 +--
 drivers/gpio/gpio-cadence.c                        |   2 +-
 drivers/gpio/gpio-dwapb.c                          | 160 ++--
 drivers/gpio/gpio-ep93xx.c                         |  33 +-
 drivers/gpio/gpio-ftgpio010.c                      |  48 +-
 drivers/gpio/gpio-ge.c                             |  25 +-
 drivers/gpio/gpio-grgpio.c                         |  87 +-
 drivers/gpio/gpio-hisi.c                           |  48 +-
 drivers/gpio/gpio-hlwd.c                           | 105 +--
 drivers/gpio/gpio-idt3243x.c                       |  45 +-
 drivers/gpio/gpio-ixp4xx.c                         |  72 +-
 drivers/gpio/gpio-loongson-64bit.c                 | 228 ++++-
 drivers/gpio/gpio-loongson1.c                      |  40 +-
 drivers/gpio/gpio-max7360.c                        | 257 ++++++
 drivers/gpio/gpio-menz127.c                        |  31 +-
 drivers/gpio/gpio-mlxbf.c                          |  25 +-
 drivers/gpio/gpio-mlxbf2.c                         |  81 +-
 drivers/gpio/gpio-mlxbf3.c                         | 101 +--
 drivers/gpio/gpio-mmio.c                           | 363 ++++----
 drivers/gpio/gpio-mpc8xxx.c                        | 105 ++-
 drivers/gpio/gpio-mpfs.c                           |   2 +-
 drivers/gpio/gpio-mt7621.c                         |  80 +-
 drivers/gpio/gpio-mvebu.c                          |   3 +-
 drivers/gpio/gpio-mxc.c                            |   2 +-
 drivers/gpio/gpio-mxs.c                            |  31 +-
 drivers/gpio/gpio-nct6694.c                        | 499 +++++++++++
 drivers/gpio/gpio-nomadik.c                        |  27 +-
 drivers/gpio/gpio-pisosr.c                         |   8 +-
 drivers/gpio/gpio-rda.c                            |  35 +-
 drivers/gpio/gpio-realtek-otto.c                   |  41 +-
 drivers/gpio/gpio-regmap.c                         |  30 +-
 drivers/gpio/gpio-sifive.c                         |  74 +-
 drivers/gpio/gpio-sim.c                            |   3 +-
 drivers/gpio/gpio-sodaville.c                      |  20 +-
 drivers/gpio/gpio-spacemit-k1.c                    |  29 +-
 drivers/gpio/gpio-stmpe.c                          |  34 +-
 drivers/gpio/gpio-tb10x.c                          |  74 +-
 drivers/gpio/gpio-tegra186.c                       |  28 +
 drivers/gpio/gpio-ts4800.c                         |  39 +-
 drivers/gpio/gpio-twl4030.c                        |   4 +-
 drivers/gpio/gpio-vf610.c                          |  31 +-
 drivers/gpio/gpio-visconti.c                       |  25 +-
 drivers/gpio/gpio-wm831x.c                         |   5 +-
 drivers/gpio/gpio-wm8994.c                         |   6 +-
 drivers/gpio/gpio-xgene-sb.c                       |  58 +-
 drivers/gpio/gpio-xgs-iproc.c                      |  34 +-
 drivers/gpio/gpio-xra1403.c                        |   3 +-
 drivers/gpio/gpiolib-cdev.c                        |  90 +-
 drivers/gpio/gpiolib-of.c                          |   2 +-
 drivers/gpio/gpiolib-sysfs.c                       |  46 +-
 drivers/gpio/gpiolib.c                             | 195 +++--
 drivers/gpio/gpiolib.h                             |  36 +-
 drivers/hwmon/Kconfig                              |  10 +
 drivers/hwmon/Makefile                             |   1 +
 drivers/hwmon/nct6694-hwmon.c                      | 949 +++++++++++++++++++++
 drivers/i2c/busses/Kconfig                         |  10 +
 drivers/i2c/busses/Makefile                        |   1 +
 drivers/i2c/busses/i2c-nct6694.c                   | 196 +++++
 drivers/input/keyboard/Kconfig                     |  12 +
 drivers/input/keyboard/Makefile                    |   1 +
 drivers/input/keyboard/max7360-keypad.c            | 308 +++++++
 drivers/input/misc/Kconfig                         |  10 +
 drivers/input/misc/Makefile                        |   1 +
 drivers/input/misc/max7360-rotary.c                | 192 +++++
 drivers/mfd/Kconfig                                |  39 +-
 drivers/mfd/Makefile                               |   3 +
 drivers/mfd/max7360.c                              | 171 ++++
 drivers/mfd/nct6694.c                              | 388 +++++++++
 drivers/mfd/stmpe.c                                |   6 +
 drivers/mfd/vexpress-sysreg.c                      |  25 +-
 drivers/net/can/usb/Kconfig                        |  11 +
 drivers/net/can/usb/Makefile                       |   1 +
 drivers/net/can/usb/nct6694_canfd.c                | 832 ++++++++++++++++++
 drivers/pinctrl/Kconfig                            |  11 +
 drivers/pinctrl/Makefile                           |   1 +
 drivers/pinctrl/nomadik/pinctrl-nomadik.c          |   2 +-
 drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c          | 181 ++--
 drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c          | 154 ++--
 drivers/pinctrl/nuvoton/pinctrl-wpcm450.c          |  46 +-
 drivers/pinctrl/pinctrl-equilibrium.c              |  26 +-
 drivers/pinctrl/pinctrl-equilibrium.h              |   2 +-
 drivers/pinctrl/pinctrl-max7360.c                  | 215 +++++
 drivers/pinctrl/stm32/pinctrl-stm32-hdp.c          |  32 +-
 drivers/pwm/Kconfig                                |  10 +
 drivers/pwm/Makefile                               |   1 +
 drivers/pwm/pwm-max7360.c                          | 209 +++++
 drivers/rtc/Kconfig                                |  10 +
 drivers/rtc/Makefile                               |   1 +
 drivers/rtc/rtc-nct6694.c                          | 297 +++++++
 drivers/watchdog/Kconfig                           |  11 +
 drivers/watchdog/Makefile                          |   1 +
 drivers/watchdog/nct6694_wdt.c                     | 307 +++++++
 include/dt-bindings/gpio/tegra256-gpio.h           |  28 +
 include/linux/gpio/driver.h                        | 105 ++-
 include/linux/gpio/forwarder.h                     |  41 +
 include/linux/gpio/generic.h                       | 102 ++-
 include/linux/gpio/gpio-nomadik.h                  |   6 +-
 include/linux/gpio/regmap.h                        |  18 +
 include/linux/mfd/max7360.h                        | 109 +++
 include/linux/mfd/nct6694.h                        | 102 +++
 include/linux/string_choices.h                     |   6 +
 122 files changed, 8577 insertions(+), 1783 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml
 create mode 100644 Documentation/devicetree/bindings/mfd/maxim,max7360.yaml
 delete mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt
 create mode 100644 Documentation/driver-api/gpio/legacy-boards.rst
 create mode 100644 drivers/gpio/gpio-max7360.c
 create mode 100644 drivers/gpio/gpio-nct6694.c
 create mode 100644 drivers/hwmon/nct6694-hwmon.c
 create mode 100644 drivers/i2c/busses/i2c-nct6694.c
 create mode 100644 drivers/input/keyboard/max7360-keypad.c
 create mode 100644 drivers/input/misc/max7360-rotary.c
 create mode 100644 drivers/mfd/max7360.c
 create mode 100644 drivers/mfd/nct6694.c
 create mode 100644 drivers/net/can/usb/nct6694_canfd.c
 create mode 100644 drivers/pinctrl/pinctrl-max7360.c
 create mode 100644 drivers/pwm/pwm-max7360.c
 create mode 100644 drivers/rtc/rtc-nct6694.c
 create mode 100644 drivers/watchdog/nct6694_wdt.c
 create mode 100644 include/dt-bindings/gpio/tegra256-gpio.h
 create mode 100644 include/linux/gpio/forwarder.h
 create mode 100644 include/linux/mfd/max7360.h
 create mode 100644 include/linux/mfd/nct6694.h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ