Linux GPIO subsystem development
 help / color / mirror / Atom feed
* Re: [PATCH 04/61] ext4: Prefer IS_ERR_OR_NULL over manual NULL check
From: Theodore Ts'o @ 2026-04-10 15:18 UTC (permalink / raw)
  To: amd-gfx, apparmor, bpf, ceph-devel, cocci, dm-devel, dri-devel,
	gfs2, intel-gfx, intel-wired-lan, iommu, kvm, linux-arm-kernel,
	linux-block, linux-bluetooth, linux-btrfs, linux-cifs, linux-clk,
	linux-erofs, linux-ext4, linux-fsdevel, linux-gpio, linux-hyperv,
	linux-input, linux-kernel, linux-leds, linux-media, linux-mips,
	linux-mm, linux-modules, linux-mtd, linux-nfs, linux-omap,
	linux-phy, linux-pm, linux-rockchip, linux-s390, linux-scsi,
	linux-sctp, linux-security-module, linux-sh, linux-sound,
	linux-stm32, linux-trace-kernel, linux-usb, linux-wireless,
	netdev, ntfs3, samba-technical, sched-ext, target-devel,
	tipc-discussion, v9fs, Philipp Hahn
  Cc: Theodore Ts'o, Andreas Dilger
In-Reply-To: <20260310-b4-is_err_or_null-v1-4-bd63b656022d@avm.de>


On Tue, 10 Mar 2026 12:48:30 +0100, Philipp Hahn wrote:
> Prefer using IS_ERR_OR_NULL() over using IS_ERR() and a manual NULL
> check.
> 
> Change generated with coccinelle.

Applied, thanks!

[04/61] ext4: Prefer IS_ERR_OR_NULL over manual NULL check
        commit: 1d749e110277ce4103f27bd60d6181e52c0cc1e3

Best regards,
-- 
Theodore Ts'o <tytso@mit.edu>

^ permalink raw reply

* [PATCH v2 1/2] gpio: usbio: Add ACPI device-id for NVL platforms
From: Arun T @ 2026-04-10 14:08 UTC (permalink / raw)
  To: israel.a.cepeda.lopez, hansg, linusw, brgl
  Cc: sakari.ailus, linux-gpio, linux-kernel, arun.t, miguel.vadillo
In-Reply-To: <20260410140858.585609-1-arun.t@intel.com>

Add device IDs of Nova Lake into gpio-usbio support list.

Signed-off-by: Arun T <arun.t@intel.com>
Reviewed-by: Vadillo Miguel <miguel.vadillo@intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 drivers/gpio/gpio-usbio.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpio/gpio-usbio.c b/drivers/gpio/gpio-usbio.c
index 34d42c743d5b..489c8ac6299e 100644
--- a/drivers/gpio/gpio-usbio.c
+++ b/drivers/gpio/gpio-usbio.c
@@ -31,6 +31,7 @@ static const struct acpi_device_id usbio_gpio_acpi_hids[] = {
 	{ "INTC10B5" }, /* LNL */
 	{ "INTC10D1" }, /* MTL-CVF */
 	{ "INTC10E2" }, /* PTL */
+	{ "INTC1116" }, /* NVL */
 	{ }
 };
 
-- 
2.43.0


^ permalink raw reply related

* [PATCH v2 0/2] Add Nova Lake (NVL) ACPI device IDs to the usbio GPIO and I2C drivers.
From: Arun T @ 2026-04-10 14:08 UTC (permalink / raw)
  To: israel.a.cepeda.lopez, hansg, linusw, brgl
  Cc: sakari.ailus, linux-gpio, linux-kernel, arun.t, miguel.vadillo

This patch series add NVL ACPI device ID to USBIO gpio and i2c drivers.

Changes in v2:
	- Updated commit message sentence end.
	- Added Reviewed-by tag from Sakari Ailus to patch 1/2

Suggested by Sakari:
	- Add sentences end in a period.
	- Add Reviewed-by tag. 

Arun T (2):
  gpio: usbio: Add ACPI device-id for NVL platforms
  i2c: usbio: Add ACPI device-id for NVL platforms

 drivers/gpio/gpio-usbio.c      | 1 +
 drivers/i2c/busses/i2c-usbio.c | 1 +
 2 files changed, 2 insertions(+)

-- 
2.43.0


^ permalink raw reply

* [linusw-pinctrl:ib-mux-pinctrl 5/5] ERROR: modpost: "pinctrl_generic_to_map" [drivers/pinctrl/pinctrl-generic-mux.ko] undefined!
From: kernel test robot @ 2026-04-10 13:40 UTC (permalink / raw)
  To: Frank Li; +Cc: llvm, oe-kbuild-all, linux-gpio, Linus Walleij

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git ib-mux-pinctrl
head:   62f97854fd4bf56e5eb15970787aa4125ea912cd
commit: 62f97854fd4bf56e5eb15970787aa4125ea912cd [5/5] pinctrl: add generic board-level pinctrl driver using mux framework
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20260410/202604102148.hRtBBCXr-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260410/202604102148.hRtBBCXr-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604102148.hRtBBCXr-lkp@intel.com/

All errors (new ones prefixed by >>, old ones prefixed by <<):

>> ERROR: modpost: "pinctrl_generic_to_map" [drivers/pinctrl/pinctrl-generic-mux.ko] undefined!

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply

* [PATCH 4/4] ARM: realtek: MAINTAINERS: Include pin controller drivers
From: Krzysztof Kozlowski @ 2026-04-10 13:04 UTC (permalink / raw)
  To: Linus Walleij, Andreas Färber
  Cc: linux-gpio, linux-kernel, Andrew Jeffery, linux-aspeed, openbmc,
	linux-arm-kernel, Joel Stanley, linux-realtek-soc, James Tai,
	Yu-Chun Lin, Krzysztof Kozlowski
In-Reply-To: <20260410-pinctrl-testing-v1-0-6f708c855867@oss.qualcomm.com>

No dedicated maintainers are shown for Realtek SoC pin controllers,
except pinctrl subsystem maintainer, which means reduced review and
impression of abandoned drivers.  Pin controller drivers are essential
part of an SoC, so in case of lack of dedicated entry at least cover it
by the SoC platform maintainers.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

---

This patch should go via Realtek SoC maintainers, not pinctrl.
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 10d12b51b1f6..374ce55e4fb6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3373,6 +3373,7 @@ F:	Documentation/devicetree/bindings/arm/realtek.yaml
 F:	arch/arm/boot/dts/realtek/
 F:	arch/arm/mach-realtek/
 F:	arch/arm64/boot/dts/realtek/
+F:	drivers/pinctrl/realtek/
 
 ARM/RISC-V/RENESAS ARCHITECTURE
 M:	Geert Uytterhoeven <geert+renesas@glider.be>

-- 
2.51.0


^ permalink raw reply related

* [PATCH 3/4] pinctrl: vt8500: Enable compile testing
From: Krzysztof Kozlowski @ 2026-04-10 13:04 UTC (permalink / raw)
  To: Linus Walleij, Andreas Färber
  Cc: linux-gpio, linux-kernel, Andrew Jeffery, linux-aspeed, openbmc,
	linux-arm-kernel, Joel Stanley, linux-realtek-soc, James Tai,
	Yu-Chun Lin, Krzysztof Kozlowski
In-Reply-To: <20260410-pinctrl-testing-v1-0-6f708c855867@oss.qualcomm.com>

Enable compile testing for Realtek pin controller drivers for increased
build and static checkers coverage.  PINCTRL_WMT uses
gpiochip_get_data(), thus needs GPIOLIB.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
 drivers/pinctrl/Makefile       |  2 +-
 drivers/pinctrl/vt8500/Kconfig | 13 +++++++------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index 9320ffae5f31..78135ee963db 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -97,4 +97,4 @@ obj-y				+= tegra/
 obj-y				+= ti/
 obj-$(CONFIG_PINCTRL_UNIPHIER)	+= uniphier/
 obj-$(CONFIG_PINCTRL_VISCONTI)	+= visconti/
-obj-$(CONFIG_ARCH_VT8500)	+= vt8500/
+obj-$(CONFIG_PINCTRL_WMT)	+= vt8500/
diff --git a/drivers/pinctrl/vt8500/Kconfig b/drivers/pinctrl/vt8500/Kconfig
index 2ca00b54b7a8..1a40c153a82a 100644
--- a/drivers/pinctrl/vt8500/Kconfig
+++ b/drivers/pinctrl/vt8500/Kconfig
@@ -3,16 +3,17 @@
 # VIA/Wondermedia PINCTRL drivers
 #
 
-if ARCH_VT8500
+if ARCH_VT8500 || COMPILE_TEST
 
 config PINCTRL_WMT
 	bool
 	select PINMUX
 	select GENERIC_PINCONF
+	select GPIOLIB
 
 config PINCTRL_VT8500
 	bool "VIA VT8500 pin controller driver"
-	depends on ARCH_WM8505
+	depends on ARCH_WM8505 || COMPILE_TEST
 	select PINCTRL_WMT
 	help
 	  Say yes here to support the gpio/pin control module on
@@ -20,7 +21,7 @@ config PINCTRL_VT8500
 
 config PINCTRL_WM8505
 	bool "Wondermedia WM8505 pin controller driver"
-	depends on ARCH_WM8505
+	depends on ARCH_WM8505 || COMPILE_TEST
 	select PINCTRL_WMT
 	help
 	  Say yes here to support the gpio/pin control module on
@@ -28,7 +29,7 @@ config PINCTRL_WM8505
 
 config PINCTRL_WM8650
 	bool "Wondermedia WM8650 pin controller driver"
-	depends on ARCH_WM8505
+	depends on ARCH_WM8505 || COMPILE_TEST
 	select PINCTRL_WMT
 	help
 	  Say yes here to support the gpio/pin control module on
@@ -36,7 +37,7 @@ config PINCTRL_WM8650
 
 config PINCTRL_WM8750
 	bool "Wondermedia WM8750 pin controller driver"
-	depends on ARCH_WM8750
+	depends on ARCH_WM8750 || COMPILE_TEST
 	select PINCTRL_WMT
 	help
 	  Say yes here to support the gpio/pin control module on
@@ -44,7 +45,7 @@ config PINCTRL_WM8750
 
 config PINCTRL_WM8850
 	bool "Wondermedia WM8850 pin controller driver"
-	depends on ARCH_WM8850
+	depends on ARCH_WM8850 || COMPILE_TEST
 	select PINCTRL_WMT
 	help
 	  Say yes here to support the gpio/pin control module on

-- 
2.51.0


^ permalink raw reply related

* [PATCH 2/4] pinctrl: aspeed: Enable compile testing outside of ARCH_ASPEED
From: Krzysztof Kozlowski @ 2026-04-10 13:04 UTC (permalink / raw)
  To: Linus Walleij, Andreas Färber
  Cc: linux-gpio, linux-kernel, Andrew Jeffery, linux-aspeed, openbmc,
	linux-arm-kernel, Joel Stanley, linux-realtek-soc, James Tai,
	Yu-Chun Lin, Krzysztof Kozlowski
In-Reply-To: <20260410-pinctrl-testing-v1-0-6f708c855867@oss.qualcomm.com>

Since inception in commit 4d3d0e4272d8 ("pinctrl: Add core support for
Aspeed SoCs"), the Aspeed pin controller drivers cannot be compile
tested, unless ARCH_ASPEED is selected.  .  That partially defeats the
purpose of compile testing, since ARCH_ASPEED is pulled when building
platform kernels.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
 drivers/pinctrl/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index b054cfb99348..9320ffae5f31 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -66,7 +66,7 @@ obj-$(CONFIG_PINCTRL_ZYNQMP)	+= pinctrl-zynqmp.o
 obj-$(CONFIG_PINCTRL_ZYNQ)	+= pinctrl-zynq.o
 
 obj-y				+= actions/
-obj-$(CONFIG_ARCH_ASPEED)	+= aspeed/
+obj-$(CONFIG_PINCTRL_ASPEED)	+= aspeed/
 obj-y				+= bcm/
 obj-$(CONFIG_PINCTRL_BERLIN)	+= berlin/
 obj-y				+= cirrus/

-- 
2.51.0


^ permalink raw reply related

* [PATCH 1/4] pinctrl: realtek: Enable compile testing
From: Krzysztof Kozlowski @ 2026-04-10 13:04 UTC (permalink / raw)
  To: Linus Walleij, Andreas Färber
  Cc: linux-gpio, linux-kernel, Andrew Jeffery, linux-aspeed, openbmc,
	linux-arm-kernel, Joel Stanley, linux-realtek-soc, James Tai,
	Yu-Chun Lin, Krzysztof Kozlowski
In-Reply-To: <20260410-pinctrl-testing-v1-0-6f708c855867@oss.qualcomm.com>

Enable compile testing for Realtek pin controller drivers for increased
build and static checkers coverage.  PINCTRL_RTD uses
pinconf_generic_dt_node_to_map(), thus needs OF.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
 drivers/pinctrl/Makefile        |  2 +-
 drivers/pinctrl/realtek/Kconfig | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index 9d33fa28a096..b054cfb99348 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -82,7 +82,7 @@ obj-y				+= nuvoton/
 obj-y				+= nxp/
 obj-$(CONFIG_PINCTRL_PXA)	+= pxa/
 obj-y				+= qcom/
-obj-$(CONFIG_ARCH_REALTEK)      += realtek/
+obj-$(CONFIG_PINCTRL_RTD)	+= realtek/
 obj-$(CONFIG_PINCTRL_RENESAS)	+= renesas/
 obj-$(CONFIG_PINCTRL_SAMSUNG)	+= samsung/
 obj-y				+= sophgo/
diff --git a/drivers/pinctrl/realtek/Kconfig b/drivers/pinctrl/realtek/Kconfig
index 054e85db99e7..a156c4ef556e 100644
--- a/drivers/pinctrl/realtek/Kconfig
+++ b/drivers/pinctrl/realtek/Kconfig
@@ -2,8 +2,8 @@
 
 config PINCTRL_RTD
 	tristate "Realtek DHC core pin controller driver"
-	depends on ARCH_REALTEK
-	default y
+	depends on ARCH_REALTEK || (COMPILE_TEST && OF)
+	default ARCH_REALTEK
 	select PINMUX
 	select GENERIC_PINCONF
 	select REGMAP_MMIO
@@ -11,22 +11,22 @@ config PINCTRL_RTD
 config PINCTRL_RTD1619B
 	tristate "Realtek DHC 1619B pin controller driver"
 	depends on PINCTRL_RTD
-	default y
+	default ARCH_REALTEK
 
 config PINCTRL_RTD1319D
 	tristate "Realtek DHC 1319D pin controller driver"
 	depends on PINCTRL_RTD
-	default y
+	default ARCH_REALTEK
 
 config PINCTRL_RTD1315E
 	tristate "Realtek DHC 1315E pin controller driver"
 	depends on PINCTRL_RTD
-	default y
+	default ARCH_REALTEK
 
 config PINCTRL_RTD1625
 	tristate "Realtek DHC 1625 pin controller driver"
 	depends on PINCTRL_RTD
-	default y
+	default ARCH_REALTEK
 	help
 	  This driver enables support for the pin controller on the Realtek
 	  RTD1625 SoCs.

-- 
2.51.0


^ permalink raw reply related

* [PATCH 0/4] pinctrl: More compile testing
From: Krzysztof Kozlowski @ 2026-04-10 13:04 UTC (permalink / raw)
  To: Linus Walleij, Andreas Färber
  Cc: linux-gpio, linux-kernel, Andrew Jeffery, linux-aspeed, openbmc,
	linux-arm-kernel, Joel Stanley, linux-realtek-soc, James Tai,
	Yu-Chun Lin, Krzysztof Kozlowski

Follows https://lore.kernel.org/r/20260410103005.163128-2-krzysztof.kozlowski@oss.qualcomm.com/
but should not depend on it anyhow.

More compile testing means better bot coverage. Plus having ||
COMPILE_TEST and obj-CONFIG_ARCH_FOO is kind of pointless.

I built these on arm, arm64, i386, x86_64, sparc, m68k, s390, riscv and
powerpc. Branch is pushed also to LKP, so more build tests will follow.

Best regards,
Krzysztof

---
Krzysztof Kozlowski (4):
      pinctrl: realtek: Enable compile testing
      pinctrl: aspeed: Enable compile testing outside of ARCH_ASPEED
      pinctrl: vt8500: Enable compile testing
      ARM: realtek: MAINTAINERS: Include pin controller drivers

 MAINTAINERS                     |  1 +
 drivers/pinctrl/Makefile        |  6 +++---
 drivers/pinctrl/realtek/Kconfig | 12 ++++++------
 drivers/pinctrl/vt8500/Kconfig  | 13 +++++++------
 4 files changed, 17 insertions(+), 15 deletions(-)
---
base-commit: a53c56fc5daedea57de51c02ede0b48f055fd8b3
change-id: 20260410-pinctrl-testing-10edae894600

Best regards,
--  
Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>


^ permalink raw reply

* Re: [PATCH 1/2] gpio: usbio: Add ACPI device-id for NVL platforms
From: Sakari Ailus @ 2026-04-10 12:48 UTC (permalink / raw)
  To: Arun T
  Cc: israel.a.cepeda.lopez, hansg, linusw, brgl, linux-gpio,
	linux-kernel, miguel.vadillo
In-Reply-To: <20260410080229.562160-1-arun.t@intel.com>

Hi Arun,

On Fri, Apr 10, 2026 at 01:32:29PM +0530, Arun T wrote:
> Add device IDs of Nova Lake into gpio-usbio support list

Sentences end in a period.

Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

> 
> Signed-off-by: Arun T <arun.t@intel.com>
> Reviewed-by: Vadillo Miguel <miguel.vadillo@intel.com>
> ---
>  drivers/gpio/gpio-usbio.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpio/gpio-usbio.c b/drivers/gpio/gpio-usbio.c
> index 34d42c743d5b..489c8ac6299e 100644
> --- a/drivers/gpio/gpio-usbio.c
> +++ b/drivers/gpio/gpio-usbio.c
> @@ -31,6 +31,7 @@ static const struct acpi_device_id usbio_gpio_acpi_hids[] = {
>  	{ "INTC10B5" }, /* LNL */
>  	{ "INTC10D1" }, /* MTL-CVF */
>  	{ "INTC10E2" }, /* PTL */
> +	{ "INTC1116" }, /* NVL */
>  	{ }
>  };
>  

-- 
Sakari Ailus

^ permalink raw reply

* Re: [PATCH] gpio: rockchip: convert to dynamic GPIO base allocation
From: Steven Price @ 2026-04-10 11:41 UTC (permalink / raw)
  To: Linus Walleij, Jonas Karlman
  Cc: Shawn Lin, Bartosz Golaszewski, Heiko Stuebner, linux-gpio,
	linux-rockchip, ye.zhang
In-Reply-To: <CAD++jLmhkZhWzjV9b6r9P4oZq=4dqVEVV7mwwE_WWRgRXbq3AQ@mail.gmail.com>

On 09/04/2026 23:25, Linus Walleij wrote:
> On Thu, Apr 9, 2026 at 9:09 PM Jonas Karlman <jonas@kwiboo.se> wrote:
> 
>> This patch is causing boot issues on my Rock Pi 4 (RK3399) board using
>> next-20260409 kernel where this patch has been applied as c8079f83e0bf.

I had similar problems with my Firefly RK3288.

>>
>> [    0.082771] rockchip-gpio ff720000.gpio: probed /pinctrl/gpio@ff720000
>> [    0.083531] rockchip-gpio ff730000.gpio: probed /pinctrl/gpio@ff730000
>> [    0.084110] rockchip-gpio ff780000.gpio: probed /pinctrl/gpio@ff780000
>> [    0.084746] rockchip-gpio ff788000.gpio: probed /pinctrl/gpio@ff788000
>> [    0.085389] rockchip-gpio ff790000.gpio: probed /pinctrl/gpio@ff790000
>> --
>> [    0.212208] rockchip-pinctrl pinctrl: pin 637 is not registered so it cannot be requested
>> [    0.212271] rockchip-pinctrl pinctrl: error -EINVAL: pin-637 (gpio3:637)
>> [    0.212344] leds-gpio leds: error -EINVAL: Failed to get GPIO '/leds/led-0'
>> [    0.212389] leds-gpio leds: probe with driver leds-gpio failed with error -22
> 
> I think this may be because the rk3399 is missing gpio-ranges despite it is a
> new platform and should have had its gpio-ranges defined in
> arch/arm64/boot/dts/rockchip/rk3399-base.dtsi ...
> 
> A bunch of these rockchips seem to have this problem despite the
> code in pinctrl-rockchip.c that says:
> 
>     /*
>      * For DeviceTree-supported systems, the gpio core checks the
>      * pinctrl's device node for the "gpio-ranges" property.
>      * If it is present, it takes care of adding the pin ranges
>      * for the driver. In this case the driver can skip ahead.
>      *
>      * In order to remain compatible with older, existing DeviceTree
>      * files which don't set the "gpio-ranges" property or systems that
>      * utilize ACPI the driver has to call gpiochip_add_pin_range().
>      */
>     if (!of_property_present(bank->of_node, "gpio-ranges")) {
>         struct device_node *pctlnp = of_get_parent(bank->of_node);
>         struct pinctrl_dev *pctldev = NULL;
> 
>         if (!pctlnp)
>             return -ENODATA;
> 
>         pctldev = of_pinctrl_get(pctlnp);
>         of_node_put(pctlnp);
>         if (!pctldev)
>             return -ENODEV;
> 
>         ret = gpiochip_add_pin_range(gc, dev_name(pctldev->dev), 0,
>                          gc->base, gc->ngpio);
>         if (ret) {
>             dev_err(bank->dev, "Failed to add pin range\n");
>             goto fail;
>         }
>     }
> 
> Notice dereference of gpiolib internal gc-base here.
> 
>         ret = gpiochip_add_pin_range(gc, dev_name(pctldev->dev), 0,
>                          gc->base, gc->ngpio);
> 
> arguments are gpipchip, pinctontrol device name,
> gpio offset, pin offset, number of pins.
> 
> GPIO offset always 0?? Passing GPIO offset as pin offset??
> 
> This is probably just working because of luck that 0,0 is passed.
> 
> This should probably rather be something like:
> 
>         ret = gpiochip_add_pin_range(gc, dev_name(pctldev->dev), gc->base,
>                          bank->bank_num * bank->nr_pins, gc->ngpio);

This however didn't work. Instead ChatGPT was able to suggest:

	ret = gpiochip_add_pin_range(gc, dev_name(pctldev->dev), 0,
				     bank->pin_base, gc->ngpio);

which works for me. I won't repeat the waffle from ChatGPT because I
honestly don't understand this area of the kernel (and you can ask an AI
yourself if you want to). I'm not subscribed, so please CC me if you
want me to try any alternative fixes.

Thanks,
Steve

> Here we put the assigned (by gpiolib) gc->base in the right place, then
> bank->bank_num should be 0,1,2... and bank->nr_pins always 32 (I think).
> 
> Jonas can you test this oneliner change? I can send a proper patch
> if it helps.
> 
> If this works the DTS files can (SHOULD) be fixed with proper ranges later.
> 
> It would be nice if we could augment the rockchip pinctrl DT schema to
> make gpio-ranges mandatory on new SoCs.
> 
> Yours,
> Linus Walleij
> 


^ permalink raw reply

* Aw: Re: [PATCH] pinctrl: mediatek: moore: implement gpio_chip::get_direction()
From: Frank Wunderlich @ 2026-04-10 11:23 UTC (permalink / raw)
  To: brgl
  Cc: bartosz.golaszewski, linux, sean.wang, linusw, matthias.bgg,
	angelogioacchino.delregno, linux-mediatek, linux-gpio,
	linux-kernel, linux-arm-kernel
In-Reply-To: <CAMRc=Md1pC_a8zSQqWWcubNG-1ret8Lf9sajVDnU8nw2gnXZiA@mail.gmail.com>


> > > Reported-by: Frank Wunderlich <linux@fw-web.de>
> >
> > please use the email i used for SoB in my linked patch (closes link below), the other email i use only for sending patches due to mail provider limitation.
> >
> 
> Linus: Can you fix this when applying, please?
> 
> Frank: Can you also leave your Tested-by under the patch?

if my testcase is enough (just accessing /sys/kernel/debug/gpio via cat)

Tested-By: Frank Wunderlich <frank-w@public-files.de>

> Thanks,
> Bartosz

^ permalink raw reply

* [PATCH 2/2] dt-bindings: pinctrl: nvidia,tegra234: Correctly use additionalProperties
From: Krzysztof Kozlowski @ 2026-04-10 11:10 UTC (permalink / raw)
  To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, Jonathan Hunter, Prathamesh Shete, linux-gpio,
	devicetree, linux-tegra, linux-kernel
  Cc: Krzysztof Kozlowski
In-Reply-To: <20260410111047.309798-3-krzysztof.kozlowski@oss.qualcomm.com>

The binding does not reference any other schema, thus should use
"additionalProperties: false" to disallow any undocumented properties.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
 .../devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml | 2 +-
 .../devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml
index 56fb9cf763ef..4910dc8e8aeb 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml
@@ -62,7 +62,7 @@ required:
   - compatible
   - reg
 
-unevaluatedProperties: false
+additionalProperties: false
 
 examples:
   - |
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml
index bd305a34eee2..52b3d40e8839 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml
@@ -119,7 +119,7 @@ required:
   - compatible
   - reg
 
-unevaluatedProperties: false
+additionalProperties: false
 
 examples:
   - |
-- 
2.51.0


^ permalink raw reply related

* [PATCH 1/2] dt-bindings: pinctrl: nvidia,tegra234: Add missing required block
From: Krzysztof Kozlowski @ 2026-04-10 11:10 UTC (permalink / raw)
  To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Thierry Reding, Jonathan Hunter, Prathamesh Shete, linux-gpio,
	devicetree, linux-tegra, linux-kernel
  Cc: Krzysztof Kozlowski

Binding should require 'reg' property, because address space cannot be
missing in the hardware and is already needed by the Linux drivers.
Require also 'compatible' by convention, although it is not strictly
necessary.

Fixes: 857982138b79 ("dt-bindings: pinctrl: Document Tegra234 pin controllers")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
 .../bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml          | 4 ++++
 .../devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml   | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml
index db8224dfba2c..56fb9cf763ef 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux-aon.yaml
@@ -58,6 +58,10 @@ patternProperties:
                     drive_soc_gpio27_pee6, drive_ao_retention_n_pee2,
                     drive_vcomp_alert_pee1, drive_hdmi_cec_pgg0 ]
 
+required:
+  - compatible
+  - reg
+
 unevaluatedProperties: false
 
 examples:
diff --git a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml
index f5a3a881dec4..bd305a34eee2 100644
--- a/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/nvidia,tegra234-pinmux.yaml
@@ -115,6 +115,10 @@ patternProperties:
                     drive_sdmmc1_dat2_pj4, drive_sdmmc1_dat1_pj3,
                     drive_sdmmc1_dat0_pj2 ]
 
+required:
+  - compatible
+  - reg
+
 unevaluatedProperties: false
 
 examples:
-- 
2.51.0


^ permalink raw reply related

* Re: [PATCH 2/6] dt-bindings: pinctrl: Document Tegra238 pin controllers
From: Krzysztof Kozlowski @ 2026-04-10 11:04 UTC (permalink / raw)
  To: pshete
  Cc: linux-gpio, devicetree, linux-tegra, linux-kernel, arnd,
	bjorn.andersson, conor+dt, dmitry.baryshkov, ebiggers, geert,
	jonathanh, krzk+dt, kuninori.morimoto.gx, linusw, luca.weiss,
	michal.simek, prabhakar.mahadev-lad.rj, robh, rosenp, sven,
	thierry.reding, webgeek1234
In-Reply-To: <20260409131340.168556-3-pshete@nvidia.com>

On Thu, Apr 09, 2026 at 01:13:36PM +0000, pshete@nvidia.com wrote:
> +      properties:
> +        nvidia,pins:
> +          items:
> +            enum: [ bootv_ctl_n_paa0, soc_gpio00_paa1, vcomp_alert_paa2,
> +                    pwm1_paa3, batt_oc_paa4, soc_gpio04_paa5,
> +                    soc_gpio25_paa6, soc_gpio26_paa7,
> +                    hdmi_cec_pbb0,
> +                    spi2_sck_pcc0, spi2_miso_pcc1, spi2_mosi_pcc2,
> +                    spi2_cs0_pcc3, spi2_cs1_pcc4, uart3_tx_pcc5,
> +                    uart3_rx_pcc6, gen2_i2c_scl_pcc7,
> +                    gen2_i2c_sda_pdd0, gen8_i2c_scl_pdd1,
> +                    gen8_i2c_sda_pdd2, touch_clk_pdd3, dmic1_clk_pdd4,
> +                    dmic1_dat_pdd5, soc_gpio19_pdd6, pwm2_pdd7,
> +                    pwm3_pee0, pwm7_pee1,
> +                    # drive groups (ordered PAA, PBB, PCC, PDD, PEE)
> +                    drive_bootv_ctl_n_paa0, drive_soc_gpio00_paa1,
> +                    drive_vcomp_alert_paa2, drive_pwm1_paa3,
> +                    drive_batt_oc_paa4, drive_soc_gpio04_paa5,
> +                    drive_soc_gpio25_paa6, drive_soc_gpio26_paa7,
> +                    drive_hdmi_cec_pbb0,
> +                    drive_spi2_sck_pcc0, drive_spi2_miso_pcc1,
> +                    drive_spi2_mosi_pcc2, drive_spi2_cs0_pcc3,
> +                    drive_spi2_cs1_pcc4, drive_uart3_tx_pcc5,
> +                    drive_uart3_rx_pcc6, drive_gen2_i2c_scl_pcc7,
> +                    drive_gen2_i2c_sda_pdd0, drive_gen8_i2c_scl_pdd1,
> +                    drive_gen8_i2c_sda_pdd2, drive_touch_clk_pdd3,
> +                    drive_dmic1_clk_pdd4, drive_dmic1_dat_pdd5,
> +                    drive_soc_gpio19_pdd6, drive_pwm2_pdd7,
> +                    drive_pwm3_pee0, drive_pwm7_pee1 ]
> +

And missing required. I'll also fix existing ones.

> +unevaluatedProperties: false

Best regards,
Krzysztof


^ permalink raw reply

* Re: [PATCH] pinctrl: tegra: Enable easier compile testing
From: Krzysztof Kozlowski @ 2026-04-10 11:00 UTC (permalink / raw)
  To: Linus Walleij, Thierry Reding, Jonathan Hunter, linux-gpio,
	linux-kernel, linux-tegra
In-Reply-To: <20260410103005.163128-2-krzysztof.kozlowski@oss.qualcomm.com>

On 10/04/2026 12:30, Krzysztof Kozlowski wrote:
> Currently NVIDIA Tegra pin controller drivers cannot be compile tested,
> unless ARCH_TEGRA is selected.  That partially defeats the purpose of
> compile testing, since ARCH_TEGRA is pulled when building platform
> kernels.  Solve it and allow compile testing independently of ARCH_TEGRA
> choice which requires few less usual changes:
> 
> 1. Descent in Makefile in to drivers/pinctrl/tegra/ unconditionally,
>    because there is no menu option.
> 
> 2. Depend on COMMON_CLK for PINCTRL_TEGRA20, because it uses
>    clk_register_mux().
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> 
> ---
> 
> Not extensively compile tested yet. Pushing so LKP will pick it up. My
> build tests are still in progress.


I tested all of Ubuntu cross compile environments - arm, arm64, i386,
x86_64, sparc, m68k, sh, s390, riscv and powerpc.

Best regards,
Krzysztof

^ permalink raw reply

* Re: [PATCH 2/6] dt-bindings: pinctrl: Document Tegra238 pin controllers
From: Krzysztof Kozlowski @ 2026-04-10 11:00 UTC (permalink / raw)
  To: pshete
  Cc: linux-gpio, devicetree, linux-tegra, linux-kernel, arnd,
	bjorn.andersson, conor+dt, dmitry.baryshkov, ebiggers, geert,
	jonathanh, krzk+dt, kuninori.morimoto.gx, linusw, luca.weiss,
	michal.simek, prabhakar.mahadev-lad.rj, robh, rosenp, sven,
	thierry.reding, webgeek1234
In-Reply-To: <20260409131340.168556-3-pshete@nvidia.com>

On Thu, Apr 09, 2026 at 01:13:36PM +0000, pshete@nvidia.com wrote:
> +patternProperties:
> +  "^pinmux(-[a-z0-9-]+)?$":
> +    type: object
> +
> +    # pin groups
> +    additionalProperties:
> +      $ref: nvidia,tegra238-pinmux-common.yaml
> +
> +      properties:
> +        nvidia,pins:
> +          items:
> +            enum: [ bootv_ctl_n_paa0, soc_gpio00_paa1, vcomp_alert_paa2,
> +                    pwm1_paa3, batt_oc_paa4, soc_gpio04_paa5,
> +                    soc_gpio25_paa6, soc_gpio26_paa7,
> +                    hdmi_cec_pbb0,
> +                    spi2_sck_pcc0, spi2_miso_pcc1, spi2_mosi_pcc2,
> +                    spi2_cs0_pcc3, spi2_cs1_pcc4, uart3_tx_pcc5,
> +                    uart3_rx_pcc6, gen2_i2c_scl_pcc7,
> +                    gen2_i2c_sda_pdd0, gen8_i2c_scl_pdd1,
> +                    gen8_i2c_sda_pdd2, touch_clk_pdd3, dmic1_clk_pdd4,
> +                    dmic1_dat_pdd5, soc_gpio19_pdd6, pwm2_pdd7,
> +                    pwm3_pee0, pwm7_pee1,
> +                    # drive groups (ordered PAA, PBB, PCC, PDD, PEE)
> +                    drive_bootv_ctl_n_paa0, drive_soc_gpio00_paa1,
> +                    drive_vcomp_alert_paa2, drive_pwm1_paa3,
> +                    drive_batt_oc_paa4, drive_soc_gpio04_paa5,
> +                    drive_soc_gpio25_paa6, drive_soc_gpio26_paa7,
> +                    drive_hdmi_cec_pbb0,
> +                    drive_spi2_sck_pcc0, drive_spi2_miso_pcc1,
> +                    drive_spi2_mosi_pcc2, drive_spi2_cs0_pcc3,
> +                    drive_spi2_cs1_pcc4, drive_uart3_tx_pcc5,
> +                    drive_uart3_rx_pcc6, drive_gen2_i2c_scl_pcc7,
> +                    drive_gen2_i2c_sda_pdd0, drive_gen8_i2c_scl_pdd1,
> +                    drive_gen8_i2c_sda_pdd2, drive_touch_clk_pdd3,
> +                    drive_dmic1_clk_pdd4, drive_dmic1_dat_pdd5,
> +                    drive_soc_gpio19_pdd6, drive_pwm2_pdd7,
> +                    drive_pwm3_pee0, drive_pwm7_pee1 ]
> +
> +unevaluatedProperties: false

additionalProperties. I'll fix existing files.

> +
> +examples:
> +  - |

Best regards,
Krzysztof


^ permalink raw reply

* [PATCH] pinctrl: tegra: Enable easier compile testing
From: Krzysztof Kozlowski @ 2026-04-10 10:30 UTC (permalink / raw)
  To: Linus Walleij, Thierry Reding, Jonathan Hunter, linux-gpio,
	linux-kernel, linux-tegra
  Cc: Krzysztof Kozlowski

Currently NVIDIA Tegra pin controller drivers cannot be compile tested,
unless ARCH_TEGRA is selected.  That partially defeats the purpose of
compile testing, since ARCH_TEGRA is pulled when building platform
kernels.  Solve it and allow compile testing independently of ARCH_TEGRA
choice which requires few less usual changes:

1. Descent in Makefile in to drivers/pinctrl/tegra/ unconditionally,
   because there is no menu option.

2. Depend on COMMON_CLK for PINCTRL_TEGRA20, because it uses
   clk_register_mux().

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

---

Not extensively compile tested yet. Pushing so LKP will pick it up. My
build tests are still in progress.
---
 drivers/pinctrl/Makefile      |  2 +-
 drivers/pinctrl/tegra/Kconfig | 22 ++++++++++++----------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
index f7d5d5f76d0c..9d33fa28a096 100644
--- a/drivers/pinctrl/Makefile
+++ b/drivers/pinctrl/Makefile
@@ -93,7 +93,7 @@ obj-y				+= starfive/
 obj-$(CONFIG_PINCTRL_STM32)	+= stm32/
 obj-y				+= sunplus/
 obj-$(CONFIG_PINCTRL_SUNXI)	+= sunxi/
-obj-$(CONFIG_ARCH_TEGRA)	+= tegra/
+obj-y				+= tegra/
 obj-y				+= ti/
 obj-$(CONFIG_PINCTRL_UNIPHIER)	+= uniphier/
 obj-$(CONFIG_PINCTRL_VISCONTI)	+= visconti/
diff --git a/drivers/pinctrl/tegra/Kconfig b/drivers/pinctrl/tegra/Kconfig
index 660d101ea367..3e8789871f0f 100644
--- a/drivers/pinctrl/tegra/Kconfig
+++ b/drivers/pinctrl/tegra/Kconfig
@@ -1,43 +1,45 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config PINCTRL_TEGRA
-	bool
+	bool "NVIDIA Tegra pin controllers common" if COMPILE_TEST && !ARCH_TEGRA
 	select PINMUX
 	select PINCONF
 
 config PINCTRL_TEGRA20
-	bool
+	bool "NVIDIA Tegra20 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
+	depends on COMMON_CLK
 
 config PINCTRL_TEGRA30
-	bool
+	bool "NVIDIA Tegra30 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
 
 config PINCTRL_TEGRA114
-	bool
+	bool "NVIDIA Tegra114 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
 
 config PINCTRL_TEGRA124
-	bool
+	bool "NVIDIA Tegra124 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
 
 config PINCTRL_TEGRA210
-	bool
+	bool "NVIDIA Tegra210 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
 
 config PINCTRL_TEGRA186
-	bool
+	bool "NVIDIA Tegra186 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
 
 config PINCTRL_TEGRA194
-	bool
+	bool "NVIDIA Tegra194 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
 
 config PINCTRL_TEGRA234
-	bool
+	bool "NVIDIA Tegra234 pin controller" if COMPILE_TEST && !ARCH_TEGRA
 	select PINCTRL_TEGRA
 
 config PINCTRL_TEGRA_XUSB
-	def_bool y if ARCH_TEGRA
+	bool "NVIDIA Tegra XUSB pin controller" if COMPILE_TEST && !ARCH_TEGRA
+	default y if ARCH_TEGRA
 	select GENERIC_PHY
 	select PINCONF
 	select PINMUX
-- 
2.51.0


^ permalink raw reply related

* Re: [PATCH 3/6] pinctrl: tegra: Add Tegra238 pinmux driver
From: Krzysztof Kozlowski @ 2026-04-10 10:05 UTC (permalink / raw)
  To: pshete, linux-gpio, devicetree, linux-tegra, linux-kernel, arnd,
	bjorn.andersson, conor+dt, dmitry.baryshkov, ebiggers, geert,
	jonathanh, krzk+dt, kuninori.morimoto.gx, linusw, luca.weiss,
	michal.simek, prabhakar.mahadev-lad.rj, robh, rosenp, sven,
	thierry.reding, webgeek1234
In-Reply-To: <20260409131340.168556-4-pshete@nvidia.com>

On 09/04/2026 15:13, pshete@nvidia.com wrote:
> From: Prathamesh Shete <pshete@nvidia.com>
> 
> This change adds support for the two pin controllers

Please do not use "This commit/patch/change", but imperative mood. See
longer explanation here:
https://elixir.bootlin.com/linux/v6.16/source/Documentation/process/submitting-patches.rst#L94

> (MAIN and AON) found on Tegra238.
> 
> Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
> ---
>  drivers/pinctrl/tegra/Kconfig            |    9 +
>  drivers/pinctrl/tegra/Makefile           |    1 +
>  drivers/pinctrl/tegra/pinctrl-tegra238.c | 2056 ++++++++++++++++++++++
>  3 files changed, 2066 insertions(+)
>  create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra238.c
> 
> diff --git a/drivers/pinctrl/tegra/Kconfig b/drivers/pinctrl/tegra/Kconfig
> index 660d101ea367..ccb8c337b4ee 100644
> --- a/drivers/pinctrl/tegra/Kconfig
> +++ b/drivers/pinctrl/tegra/Kconfig
> @@ -36,6 +36,15 @@ config PINCTRL_TEGRA234
>  	bool
>  	select PINCTRL_TEGRA
>  
> +config PINCTRL_TEGRA238
> +	tristate "NVIDIA Tegra238 pinctrl driver"
> +	select PINCTRL_TEGRA
> +	help
> +	  Say Y or M here to enable support for the pinctrl driver for
> +	  NVIDIA Tegra238 SoC. This driver controls the pin multiplexing
> +	  and configuration for the MAIN and AON pin controllers found
> +	  on Tegra238.

All other Tegra drivers are non-selectable, so you are introducing
completely different style. This needs explanation WHY in the commit msg.

Also, since you are changing things around, then I suggest to finally
enable proper COMPILE_TEST for all tegra pinctrl. Unless I mistaken,
it's impossible to compile test currently anything from Tegra pinctrl...
Actually let me take a look, maybe I will do it for several platforms.

...

> +static struct platform_driver tegra238_pinctrl_driver = {
> +	.driver = {
> +		.name = "tegra238-pinctrl",
> +		.of_match_table = tegra238_pinctrl_of_match,
> +	},
> +	.probe = tegra238_pinctrl_probe,
> +};
> +
> +static int __init tegra238_pinctrl_init(void)
> +{
> +	return platform_driver_register(&tegra238_pinctrl_driver);
> +}
> +module_init(tegra238_pinctrl_init);
> +
> +static void __exit tegra238_pinctrl_exit(void)
> +{
> +	platform_driver_unregister(&tegra238_pinctrl_driver);
> +}
> +module_exit(tegra238_pinctrl_exit);

Why this cannot be module_platform_driver()?


Best regards,
Krzysztof

^ permalink raw reply

* Re: [PATCH v2 1/2] mfd: nct6694: Switch to devm_mfd_add_devices() and drop IDA
From: Ming Yu @ 2026-04-10  9:59 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: tmyu0, linusw, linux, andi.shyti, lee, mkl, mailhol,
	alexandre.belloni, wim, linux-kernel, linux-gpio, linux-i2c,
	linux-can, netdev, linux-watchdog, linux-hwmon, linux-rtc,
	linux-usb
In-Reply-To: <CAMRc=MeJL_po8HuBa4btVowR-e0i2FyzbDgNVo2u54iPKyuvWw@mail.gmail.com>

Hi Bart, all,

Thanks for the review.

Bartosz Golaszewski <brgl@kernel.org> 於 2026年4月8日週三 下午3:25寫道:
>
> On Wed, Apr 8, 2026 at 7:31 AM <a0282524688@gmail.com> wrote:
> >
> > From: Ming Yu <a0282524688@gmail.com>
> >
> > Currently, the nct6694 core driver uses mfd_add_hotplug_devices()
> > and an IDA to manage subdevice IDs.
> >
> > Switch the core implementation to use the managed
> > devm_mfd_add_devices() API, which simplifies the error handling and
> > device lifecycle management. Concurrently, drop the custom IDA
> > implementation and transition to using pdev->id.
> >
> > Signed-off-by: Ming Yu <a0282524688@gmail.com>
> > ---
>
> This does result in a nice code shrink but I'd split this commit into
> two: one switching to using MFD_CELL_BASIC() with hard-coded devices
> IDs and one completing the transition to devres.
>


You are right that this change is trying to do too much at once, and
splitting it as you suggested would make the series much cleaner.

After looking more closely at the ID handling and hotplug
implications, I realized that switching to devm_mfd_add_devices() and
dropping the IDA is not a good fit for this driver. The current
mfd_add_hotplug_devices() path uses PLATFORM_DEVID_AUTO, which gives
globally unique device IDs and avoids sysfs name collisions. If we
switch to devm_mfd_add_devices() with fixed IDs, multiple identical
NCT6694 devices can end up registering subdevices with the same
platform device names, which would break hotplug support when more
than one device is present.

So I think it is better not to pursue this direction further.

For the next revision, I will drop this part of the change and keep
the existing MFD core logic, including the IDA usage. The series will
focus on adding the nct6694-hif MFD driver only, and I will add the
IDA initialization there as needed.

Thanks again for the suggestion and review.


Best regards,
Ming

^ permalink raw reply

* Re: [PATCH] pinctrl: mediatek: moore: implement gpio_chip::get_direction()
From: Bartosz Golaszewski @ 2026-04-10  9:54 UTC (permalink / raw)
  To: Frank Wunderlich
  Cc: bartosz.golaszewski, linux, sean.wang, linusw, matthias.bgg,
	angelogioacchino.delregno, linux-mediatek, linux-gpio,
	linux-kernel, linux-arm-kernel
In-Reply-To: <trinity-5e6f6a95-e576-4f97-9085-c6de21945eab-1775813076268@trinity-msg-rest-gmx-gmx-live-5cf7d7879b-qwfn5>

On Fri, Apr 10, 2026 at 11:24 AM Frank Wunderlich
<frank-w@public-files.de> wrote:
>
> > Gesendet: Freitag, 10. April 2026 um 09:09
> > Von: "Bartosz Golaszewski" <bartosz.golaszewski@oss.qualcomm.com>
> > An: "Frank Wunderlich" <linux@fw-web.de>, "Sean Wang" <sean.wang@kernel.org>, "Linus Walleij" <linusw@kernel.org>, "Matthias Brugger" <matthias.bgg@gmail.com>, "AngeloGioacchino Del Regno" <angelogioacchino.delregno@collabora.com>, "Bartosz Golaszewski" <brgl@kernel.org>
> > CC: linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Bartosz Golaszewski" <bartosz.golaszewski@oss.qualcomm.com>
> > Betreff: [PATCH] pinctrl: mediatek: moore: implement gpio_chip::get_direction()
> >
> > If the gpio_chip::get_direction() callback is not implemented by the GPIO
> > controller driver, GPIOLIB emits a warning.
> >
> > Implement get_direction() for the GPIO part of pinctrl-moore.
> >
> > Fixes: 471e998c0e31 ("gpiolib: remove redundant callback check")
> > Fixes: e623c4303ed1 ("gpiolib: sanitize the return value of gpio_chip::get_direction()")
> > Reported-by: Frank Wunderlich <linux@fw-web.de>
>
> please use the email i used for SoB in my linked patch (closes link below), the other email i use only for sending patches due to mail provider limitation.
>

Linus: Can you fix this when applying, please?

Frank: Can you also leave your Tested-by under the patch?

Thanks,
Bartosz

^ permalink raw reply

* RE: [PATCH v2 3/4] gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
From: Yu-Chun Lin [林祐君] @ 2026-04-10  9:39 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-realtek-soc@lists.infradead.org,
	CY_Huang[黃鉦晏],
	Stanley Chang[昌育德],
	James Tai [戴志峰], linusw@kernel.org,
	robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
	afaerber@suse.com, TY_Chang[張子逸]
In-Reply-To: <CAMRc=MfUh_OuxS4SC6QzSOg_PMNc9i9crGYgBASrbVUgHDHSCw@mail.gmail.com>

Hi Bart,

> On Wed, 8 Apr 2026 04:52:42 +0200, Yu-Chun Lin <eleanor.lin@realtek.com>
> said:
> > From: Tzuyi Chang <tychang@realtek.com>
> >
> > Add support for the GPIO controller found on Realtek DHC RTD1625 SoCs.
> >
> > Unlike the existing Realtek GPIO driver (drivers/gpio/gpio-rtd.c),
> > which manages pins via shared bank registers, the RTD1625 introduces a
> > per-pin register architecture. Each GPIO line now has its own
> > dedicated 32-bit control register to manage configuration
> > independently, including direction, output value, input value,
> > interrupt enable, and debounce. Therefore, this distinct hardware
> > design requires a separate driver.
> >
> > Reviewed-by: Linus Walleij <linusw@kernel.org>
> > Signed-off-by: Tzuyi Chang <tychang@realtek.com>
> > Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
> > ---
> > Changes in v2:
> > - Remove "default y".
> > - Add base_offset member to struct rtd1625_gpio_info to handle merged
> regions.
> > ---
> >  drivers/gpio/Kconfig        |  11 +
> >  drivers/gpio/Makefile       |   1 +
> >  drivers/gpio/gpio-rtd1625.c | 584
> > ++++++++++++++++++++++++++++++++++++
> >  3 files changed, 596 insertions(+)
> >  create mode 100644 drivers/gpio/gpio-rtd1625.c
> >
> > diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index
> > 5ee11a889867..281549ad72ac 100644
> > --- a/drivers/gpio/Kconfig
> > +++ b/drivers/gpio/Kconfig
> > @@ -638,6 +638,17 @@ config GPIO_RTD
> >         Say yes here to support GPIO functionality and GPIO interrupt on
> >         Realtek DHC SoCs.
> >
> > +config GPIO_RTD1625
> > +     tristate "Realtek DHC RTD1625 GPIO support"
> > +     depends on ARCH_REALTEK || COMPILE_TEST
> > +     select GPIOLIB_IRQCHIP
> > +     help
> > +       This option enables support for the GPIO controller on Realtek
> > +       DHC (Digital Home Center) RTD1625 SoC.
> > +
> > +       Say yes here to support both basic GPIO line functionality
> > +       and GPIO interrupt handling capabilities for this platform.
> > +
> >  config GPIO_SAMA5D2_PIOBU
> >       tristate "SAMA5D2 PIOBU GPIO support"
> >       depends on MFD_SYSCON
> > diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index
> > c05f7d795c43..c95ba218d53a 100644
> > --- a/drivers/gpio/Makefile
> > +++ b/drivers/gpio/Makefile
> > @@ -159,6 +159,7 @@ obj-$(CONFIG_GPIO_REALTEK_OTTO)
> += gpio-realtek-otto.o
> >  obj-$(CONFIG_GPIO_REG)                       += gpio-reg.o
> >  obj-$(CONFIG_GPIO_ROCKCHIP)  += gpio-rockchip.o
> >  obj-$(CONFIG_GPIO_RTD)                       += gpio-rtd.o
> > +obj-$(CONFIG_GPIO_RTD1625)           += gpio-rtd1625.o
> >  obj-$(CONFIG_ARCH_SA1100)            += gpio-sa1100.o
> >  obj-$(CONFIG_GPIO_SAMA5D2_PIOBU)     += gpio-sama5d2-piobu.o
> >  obj-$(CONFIG_GPIO_SCH311X)           += gpio-sch311x.o
> > diff --git a/drivers/gpio/gpio-rtd1625.c b/drivers/gpio/gpio-rtd1625.c
> > new file mode 100644 index 000000000000..bcc1bbb115fa
> > --- /dev/null
> > +++ b/drivers/gpio/gpio-rtd1625.c
> > @@ -0,0 +1,584 @@
> > +// SPDX-License-Identifier: GPL-2.0-or-later
> > +/*
> > + * Realtek DHC RTD1625 gpio driver
> > + *
> > + * Copyright (c) 2023 Realtek Semiconductor Corp.
> 
> No modifications since 2023?
> 

Will include 2026.

> > + */
> > +
> > +#include <linux/bitfield.h>
> > +#include <linux/bitops.h>
> > +#include <linux/gpio/driver.h>
> > +#include <linux/interrupt.h>
> > +#include <linux/irqchip.h>
> > +#include <linux/irqchip/chained_irq.h> #include <linux/irqdomain.h>
> > +#include <linux/module.h> #include <linux/platform_device.h> #include
> > +<linux/property.h> #include <linux/spinlock.h> #include
> > +<linux/types.h>
> > +
> > +#define RTD1625_GPIO_DIR BIT(0)
> > +#define RTD1625_GPIO_OUT BIT(2)
> > +#define RTD1625_GPIO_IN BIT(4)
> > +#define RTD1625_GPIO_EDGE_INT_DP BIT(6) #define
> > +RTD1625_GPIO_EDGE_INT_EN BIT(8) #define
> RTD1625_GPIO_LEVEL_INT_EN
> > +BIT(16) #define RTD1625_GPIO_LEVEL_INT_DP BIT(18) #define
> > +RTD1625_GPIO_DEBOUNCE GENMASK(30, 28) #define
> > +RTD1625_GPIO_DEBOUNCE_WREN BIT(31)
> > +
> > +#define RTD1625_GPIO_WREN(x) ((x) << 1)
> > +
> > +/* Write-enable masks for all GPIO configs and reserved hardware bits
> > +*/ #define RTD1625_ISO_GPIO_WREN_ALL 0x8000aa8a #define
> > +RTD1625_ISOM_GPIO_WREN_ALL 0x800aaa8a
> > +
> > +#define RTD1625_GPIO_DEBOUNCE_1US 0
> > +#define RTD1625_GPIO_DEBOUNCE_10US 1
> > +#define RTD1625_GPIO_DEBOUNCE_100US 2 #define
> > +RTD1625_GPIO_DEBOUNCE_1MS 3 #define
> RTD1625_GPIO_DEBOUNCE_10MS 4
> > +#define RTD1625_GPIO_DEBOUNCE_20MS 5 #define
> > +RTD1625_GPIO_DEBOUNCE_30MS 6 #define
> RTD1625_GPIO_DEBOUNCE_50MS 7
> > +
> > +#define GPIO_CONTROL(gpio) ((gpio) * 4)
> > +
> > +/**
> > + * struct rtd1625_gpio_info - Specific GPIO register information
> > + * @num_gpios: The number of GPIOs
> > + * @irq_type_support: Supported IRQ types
> > + * @gpa_offset: Offset for GPIO assert interrupt status registers
> > + * @gpda_offset: Offset for GPIO deassert interrupt status registers
> > + * @level_offset: Offset of level interrupt status register
> > + * @write_en_all: Write-enable mask for all configurable bits  */
> > +struct rtd1625_gpio_info {
> > +     unsigned int    num_gpios;
> > +     unsigned int    irq_type_support;
> > +     unsigned int    base_offset;
> > +     unsigned int    gpa_offset;
> > +     unsigned int    gpda_offset;
> > +     unsigned int    level_offset;
> > +     unsigned int    write_en_all;
> > +};
> 
> Please remove the tabs in the above struct.
> 

Ack.

> > +
> > +struct rtd1625_gpio {
> > +     struct gpio_chip                gpio_chip;
> > +     const struct rtd1625_gpio_info  *info;
> > +     void __iomem                    *base;
> > +     void __iomem                    *irq_base;
> > +     unsigned int                    irqs[3];
> > +     raw_spinlock_t                  lock;
> > +     unsigned int                    *save_regs;
> > +};
> 
> I'd also personally remove these tabs here but won't die on that hill.
> 

Ack.

> > +
> > +static unsigned int rtd1625_gpio_gpa_offset(struct rtd1625_gpio
> > +*data, unsigned int offset) {
> > +     return data->info->gpa_offset + ((offset / 32) * 4); }
> > +
> > +static unsigned int rtd1625_gpio_gpda_offset(struct rtd1625_gpio
> > +*data, unsigned int offset) {
> > +     return data->info->gpda_offset + ((offset / 32) * 4); }
> > +
> > +static unsigned int rtd1625_gpio_level_offset(struct rtd1625_gpio
> > +*data, unsigned int offset) {
> > +     return data->info->level_offset + ((offset / 32) * 4); }
> 
> Looking at these, I'm under the impression that this driver could quite easily be
> converted to using gpio-mmio or even gpio-regmap with an MMIO regmap,
> have you looked into it by any chance?
> 
> Bart


We did look into gpio-mmio and gpio-regmap, but they are not quite suitable for
our platform due to the specific hardware design:

1. Per-GPIO Dedicated Registers: Unlike typical GPIO controllers that pack 32 pins
into a single 32-bit register (1 bit per pin), our hardware uses a dedicated 32-bit
register for each individual GPIO. This single register controls the
input/output state, direction, and interrupt trigger type for that specific pin.

2. Write-Enable (WREN) Mask Mechanism: Our hardware requires a specific Write-Enable
mask to be written simultaneously when updating the register values.

3. Hardware Debounce: We also need to support hardware debounce settings per pin,
which requires custom configuration via set_config mapped to these specific per-pin
registers.

Because of these hardware constraints, manually implementing the gpio_chip callbacks
seems to be the most straightforward

Best Regards,
Yu-Chun

^ permalink raw reply

* Aw: [PATCH] pinctrl: mediatek: moore: implement gpio_chip::get_direction()
From: Frank Wunderlich @ 2026-04-10  9:24 UTC (permalink / raw)
  To: bartosz.golaszewski, linux, sean.wang, linusw, matthias.bgg,
	angelogioacchino.delregno, brgl
  Cc: linux-mediatek, linux-gpio, linux-kernel, linux-arm-kernel,
	bartosz.golaszewski
In-Reply-To: <20260410070935.9540-1-bartosz.golaszewski@oss.qualcomm.com>

> Gesendet: Freitag, 10. April 2026 um 09:09
> Von: "Bartosz Golaszewski" <bartosz.golaszewski@oss.qualcomm.com>
> An: "Frank Wunderlich" <linux@fw-web.de>, "Sean Wang" <sean.wang@kernel.org>, "Linus Walleij" <linusw@kernel.org>, "Matthias Brugger" <matthias.bgg@gmail.com>, "AngeloGioacchino Del Regno" <angelogioacchino.delregno@collabora.com>, "Bartosz Golaszewski" <brgl@kernel.org>
> CC: linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Bartosz Golaszewski" <bartosz.golaszewski@oss.qualcomm.com>
> Betreff: [PATCH] pinctrl: mediatek: moore: implement gpio_chip::get_direction()
>
> If the gpio_chip::get_direction() callback is not implemented by the GPIO
> controller driver, GPIOLIB emits a warning.
> 
> Implement get_direction() for the GPIO part of pinctrl-moore.
> 
> Fixes: 471e998c0e31 ("gpiolib: remove redundant callback check")
> Fixes: e623c4303ed1 ("gpiolib: sanitize the return value of gpio_chip::get_direction()")
> Reported-by: Frank Wunderlich <linux@fw-web.de>

please use the email i used for SoB in my linked patch (closes link below), the other email i use only for sending patches due to mail provider limitation.

regards Frank

> Closes: https://lore.kernel.org/all/20260409132724.126258-1-linux@fw-web.de/
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>

^ permalink raw reply

* [GIT PULL] gpio fixes for v7.0
From: Bartosz Golaszewski @ 2026-04-10  8:42 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Linus Walleij, linux-gpio, linux-kernel, brgl,
	Bartosz Golaszewski

Linus,

Please pull the following set of tiny GPIO driver fixes for v7.0. This is
the final GPIO PR for this release.

Thanks,
Bartosz

The following changes since commit 591cd656a1bf5ea94a222af5ef2ee76df029c1d2:

  Linux 7.0-rc7 (2026-04-05 15:26:23 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-fixes-for-v7.0

for you to fetch changes up to 57df6923ca53b524d06d2347b896d9de74b3bc86:

  gpio: tegra: return -ENOMEM on allocation failure in probe (2026-04-10 09:01:24 +0200)

----------------------------------------------------------------
gpio fixes for v7.0

- gracefully handle missing regmap in gpio-bd72720
- fix IRQ resource release in gpio-tegra
- return -ENOMEM on devm_kzalloc() failure instead of -ENODEV in
  gpio-tegra

----------------------------------------------------------------
Matti Vaittinen (1):
      gpio: bd72720: handle missing regmap

Samasth Norway Ananda (2):
      gpio: tegra: fix irq_release_resources calling enable instead of disable
      gpio: tegra: return -ENOMEM on allocation failure in probe

 drivers/gpio/gpio-bd72720.c | 2 ++
 drivers/gpio/gpio-tegra.c   | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

^ permalink raw reply

* [GIT PULL] gpio updates for v7.1-rc1
From: Bartosz Golaszewski @ 2026-04-10  8:39 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Linus Walleij, linux-gpio, linux-kernel, brgl,
	Bartosz Golaszewski

Linus,

I'll be OoO next week and disconnected so I'm sending an early PR for the
next cycle.

For this merge window we have two new drivers: support for GPIO-signalled
ACPI events on Intel platforms and a generic GPIO-over-pinctrl driver using
the ARM SCMI protocol for controlling pins.

Several things have been reworked in GPIO core: we unduplicated GPIO hog
handling, reduced the number of SRCU locks and dereferences, improved
support for software-node-based lookup and removed more legacy code after
converting remaining users to modern alternatives.

There's also a number of driver reworks and refactoring, documentation
updates, some bug-fixes and new tests.

The merges in this PR are as follows: immutable branch provided to the
net tree with driver changes prerequisite to legacy code removal, pinctrl
changes pulled ahead of adding the SCMI GPIO driver and an immutable branch
with a high-risk GPIO core fix that was then pulled into the for-current
branch and sent for v7.0 after spending some time in linux-next with no
regressions.

Details are in the signed tag. Please consider pulling for v7.1-rc1.

Thanks,
Bartosz

The following changes since commit 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f:

  Linux 7.0-rc1 (2026-02-22 13:18:59 -0800)

are available in the Git repository at:

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

for you to fetch changes up to ca13ab654064fee86d6e7c9e87d0af7789561509:

  gpio: swnode: defer probe on references to unregistered software nodes (2026-04-09 15:59:30 +0200)

----------------------------------------------------------------
gpio updates for v7.1-rc1

GPIO core:
- defer probe on software node lookups when the remote software node
  exists but has not been registered as a firmware node yet
- unify GPIO hog handling by moving code duplicated in OF and ACPI
  modules into GPIO core and allow setting up hogs with software nodes
- allow matching GPIO controllers by secondary firmware node if matching
  by primary does not succeed
- demote deferral warnings to debug level as they are quite normal when
  using software nodes which don't support fw_devlink yet
- disable the legacy GPIO character device uAPI v1 supprt in Kconfig by
  default
- rework several core functions in preparation for the upcoming Revocable
  helper library for protecting resources against sudden removal, this
  reduces the number of SRCU dereferences in GPIO core
- simplify file descriptor logic in GPIO character device code by using
  FD_PREPARE()
- introduce a header defining symbols used by both GPIO consumers and
  providers to avoid having to include provider-specific headers from
  drivers which only consume GPIOs
- replace snprintf() with strscpy() where formatting is not required

New drivers:
- add the gpio-by-pinctrl generic driver using the ARM SCMI protocol to
  control GPIOs (along with SCMI changes pulled from the pinctrl tree)
- add a driver providing support for handling of platform events via
  GPIO-signalled ACPI events (used on Intel Nova Lake and later platforms)

Driver changes:
- extend the gpio-kempld driver with support for more recent models,
  interrupts and setting/getting multiple values at once
- improve interrupt handling in gpio-brcmstb
- add support for multi-SoC systems in gpio-tegra186
- make sure we return correct values from the .get() callbacks in several
  GPIO drivers by normalizing any values other than 0, 1 or negative error
  numbers
- use flexible arrays in several drivers to reduce the number of required
  memory allocations
- simplify synchronous waiting for virtual drivers to probe and remove the
  dedicated, a bit overengineered helper library dev-sync-probe
- remove unneeded Kconfig dependencies on OF_GPIO in several drivers and
  subsystems
- convert the two remaining users of of_get_named_gpio() to using GPIO
  descriptors and remove the (no longer used) function along with the
  header that declares it
- add missing includes in gpio-mmio
- shrink and simplify code in gpio-max732x by using guard(mutex)
- remove duplicated code handling the 'ngpios' property from gpio-ts4800,
  it's already handled in GPIO core
- use correct variable type in gpio-aspeed
- add support for a new model in gpio-realtek-otto
- allow to specify the active-low setting of simulated hogs over the
  configfs interface (in addition to existing devicetree support) in
  gpio-sim

Bug fixes:
- clear the OF_POPULATED flag on hog nodes in GPIO chip remove path on
  OF systems
- fix resource leaks in error path in gpiochip_add_data_with_key()
- drop redundant device reference in gpio-mpsse

Tests:
- add selftests for use-after-free cases in GPIO character device code

DT bindings:
- add a DT binding document for SCMI based, gpio-over-pinctrl devices
- fix interrupt description in microchip,mpfs-gpio
- add new compatible for gpio-realtek-otto
- describe the resets of the mpfs-gpio controller
- fix maintainer's email in gpio-delay bindings
- remove the binding document for cavium,thunder-8890 as the corresponding
  device is bound over PCI and not firmware nodes

Documentation:
- update the recommended way of converting legacy boards to using software
  nodes for GPIO description
- describe GPIO line value semantics
- misc updates to kerneldocs

Misc:
- convert OMAP1 ams-delta board to using GPIO hogs described with software
  nodes

----------------------------------------------------------------
AKASHI Takahiro (3):
      pinctrl: introduce pinctrl_gpio_get_config()
      gpio: dt-bindings: Add GPIO on top of generic pin control
      gpio: gpio-by-pinctrl: add pinctrl based generic GPIO driver

Alan Borzeszkowski (1):
      gpio: Add Intel Nova Lake ACPI GPIO events driver

Alban Bedel (4):
      gpio: kempld: Simplify the bit level register accesses
      gpio: kempld: Add support for PLD version >= 2.8
      gpio: kempld: Add support for get/set multiple
      gpio: kempld: Implement the interrupt controller

Andy Shevchenko (2):
      gpio: ts4800: Remove duplicate code to handle 'ngpios' property
      gpio: generic: Don't use 'proxy' headers

Arnd Bergmann (1):
      gpio: fix up CONFIG_OF dependencies

Bartosz Golaszewski (22):
      gpio: introduce a header for symbols shared by suppliers and consumers
      gpiolib: match secondary fwnode too in gpio_device_find_by_fwnode()
      Merge branch 'gpio/dev-init-rework' into gpio/for-next
      Merge tag 'ib-gpio-remove-of-gpio-h-for-v7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git into gpio/for-next
      arc: axs10x: drop unneeded dependency on OF_GPIO
      powerpc: drop unneeded dependency on OF_GPIO
      regulator: drop unneeded dependencies on OF_GPIO
      gpio: of: clear OF_POPULATED on hog nodes in remove path
      gpio: move hogs into GPIO core
      gpio: sim: use fwnode-based GPIO hogs
      ARM: omap1: ams-delta: convert GPIO hogs to using firmware nodes
      gpio: remove machine hogs
      gpio: sim: allow to define the active-low setting of a simulated hog
      gpio: drop unneeded Kconfig dependencies on OF_GPIO
      Merge branch 'ib-scmi-pinctrl-gpio' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into gpio/for-next
      gpiolib: fix hogs with multiple lines
      gpio: sim: stop using dev-sync-probe
      gpio: aggregator: stop using dev-sync-probe
      gpio: virtuser: stop using dev-sync-probe
      gpio: remove dev-sync-probe
      Documentation: gpio: update the preferred method for using software node lookup
      gpio: swnode: defer probe on references to unregistered software nodes

Chen Jung Ku (1):
      gpio: aspeed: fix unsigned long int declaration

Conor Dooley (2):
      dt-bindings: gpio: mpfs-gpio: permit resets
      dt-bindings: gpio: fix microchip,mpfs-gpio interrupt documentation

Dan Carpenter (4):
      pinctrl: scmi: Add SCMI_PIN_INPUT_VALUE
      pinctrl: scmi: Delete PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS support
      pinctrl: scmi: ignore PIN_CONFIG_PERSIST_STATE
      firmware: arm_scmi: Allow PINCTRL_REQUEST to return EOPNOTSUPP

Dmitry Torokhov (7):
      gpio: bd9571mwv: normalize return value of gpio_get
      gpio: cgbc: normalize return value of gpio_get
      gpio: da9055: normalize return value of gpio_get
      gpio: lp873x: normalize return value of gpio_get
      gpio: stp-xway: normalize return value of gpio_get
      gpio: tps65086: normalize return value of gpio_get
      gpio: viperboard: normalize return value of gpio_get

Doug Berger (2):
      gpio: brcmstb: implement .irq_mask_ack()
      gpio: brcmstb: allow parent_irq to wake

Florian Fainelli (1):
      gpio: brcmstb: Utilize irqd_to_hwirq(d) instead of d->hwirq

Geert Uytterhoeven (1):
      gpio: gpio-by-pinctrl: s/used to do/is used to do/

Jialu Xu (3):
      nfc: s3fwrn5: convert to gpio descriptors
      nfc: nfcmrvl: convert to gpio descriptors
      gpio: remove of_get_named_gpio() and <linux/of_gpio.h>

Johan Hovold (1):
      gpio: mpsse: drop redundant device reference

Jon Hunter (1):
      gpiolib: Make deferral warnings debug messages

Kent Gibson (1):
      gpio: cdev: convert lineevent_create() and linereq_create() to FD_PREPARE()

Krzysztof Kozlowski (1):
      dt-bindings: gpio: gpio-delay: Use Alexander's email

Linus Walleij (3):
      gpio: Document line value semantics
      gpiolib: Update gpiochip_find_base_unlocked() kerneldoc
      Do not enable the v1 uAPI by default

Prathamesh Shete (2):
      gpio: tegra186: Simplify GPIO line name prefix handling
      gpio: tegra186: Support multi-socket devices

Richard Lyu (1):
      gpio: max732x: use guard(mutex) to simplify locking

Rosen Penev (5):
      gpio: bcm-kona: reduce the number of memory allocations
      gpio: htc-egpio: allocate irq with the main struct
      gpio: tegra186: allocate irqs with the main struct
      gpio: cs5535: use dynamically allocated priv struct
      gpio: dwapb: reduce allocation to single kzalloc

Rustam Adilov (2):
      dt-bindings: gpio: realtek-otto: add rtl9607 compatible
      gpio: realtek-otto: add rtl9607 support

Shawn Lin (1):
      gpio: rockchip: convert to dynamic GPIO base allocation

Shi Hao (1):
      dt-bindings: gpio: cavium,thunder-8890: Remove DT binding

Thorsten Blum (1):
      gpiolib: replace snprintf("%s") with strscpy

Tzung-Bi Shih (9):
      gpio: Fix resource leaks on errors in gpiochip_add_data_with_key()
      gpio: Access `gpio_bus_type` in gpiochip_setup_dev()
      gpio: Remove redundant check for struct gpio_chip
      gpio: sysfs: Remove redundant check for struct gpio_chip
      gpio: Ensure struct gpio_chip for gpiochip_setup_dev()
      gpio: cdev: Don't check struct gpio_chip in gpio_chrdev_open()
      selftests: gpio: Add gpio-cdev-uaf tests
      gpio: Fix lockdep warnings in gpiolib_{cdev,sysfs}_register()
      Revert "gpio: Access `gpio_bus_type` in gpiochip_setup_dev()"

 .../devicetree/bindings/gpio/gpio-delay.yaml       |   2 +-
 .../devicetree/bindings/gpio/gpio-thunderx.txt     |  27 --
 .../bindings/gpio/microchip,mpfs-gpio.yaml         |  27 +-
 .../devicetree/bindings/gpio/pin-control-gpio.yaml |  59 ++++
 .../bindings/gpio/realtek,otto-gpio.yaml           |   1 +
 Documentation/driver-api/gpio/board.rst            |  39 ++-
 Documentation/driver-api/gpio/driver.rst           |  27 ++
 Documentation/driver-api/gpio/legacy-boards.rst    |  36 ++-
 MAINTAINERS                                        |   8 +-
 arch/arc/plat-axs10x/Kconfig                       |   1 -
 arch/arm/mach-omap1/board-ams-delta.c              |  32 +-
 arch/powerpc/platforms/85xx/Kconfig                |   1 -
 drivers/firmware/arm_scmi/pinctrl.c                |   2 +
 drivers/gpio/Kconfig                               | 108 ++++---
 drivers/gpio/Makefile                              |   5 +-
 drivers/gpio/TODO                                  |  28 --
 drivers/gpio/dev-sync-probe.c                      |  97 -------
 drivers/gpio/dev-sync-probe.h                      |  25 --
 drivers/gpio/gpio-aggregator.c                     |  38 +--
 drivers/gpio/gpio-aspeed.c                         |   2 +-
 drivers/gpio/gpio-bcm-kona.c                       |  37 +--
 drivers/gpio/gpio-bd9571mwv.c                      |   2 +-
 drivers/gpio/gpio-brcmstb.c                        | 125 +++++---
 drivers/gpio/gpio-by-pinctrl.c                     | 101 +++++++
 drivers/gpio/gpio-cgbc.c                           |   4 +-
 drivers/gpio/gpio-cs5535.c                         |  48 ++-
 drivers/gpio/gpio-da9055.c                         |   2 +-
 drivers/gpio/gpio-dwapb.c                          |  19 +-
 drivers/gpio/gpio-htc-egpio.c                      |  13 +-
 drivers/gpio/gpio-kempld.c                         | 289 +++++++++++++++++-
 drivers/gpio/gpio-lp873x.c                         |   2 +-
 drivers/gpio/gpio-max732x.c                        |  24 +-
 drivers/gpio/gpio-mmio.c                           |   4 +-
 drivers/gpio/gpio-mpsse.c                          |  13 +-
 drivers/gpio/gpio-novalake-events.c                | 323 +++++++++++++++++++++
 drivers/gpio/gpio-realtek-otto.c                   |   4 +
 drivers/gpio/gpio-rockchip.c                       |   2 +-
 drivers/gpio/gpio-sim.c                            | 241 ++++++++-------
 drivers/gpio/gpio-stp-xway.c                       |   2 +-
 drivers/gpio/gpio-tegra186.c                       |  45 +--
 drivers/gpio/gpio-tps65086.c                       |   2 +-
 drivers/gpio/gpio-ts4800.c                         |  10 -
 drivers/gpio/gpio-viperboard.c                     |   2 +-
 drivers/gpio/gpio-virtuser.c                       |  30 +-
 drivers/gpio/gpiolib-acpi-core.c                   |  70 -----
 drivers/gpio/gpiolib-cdev.c                        | 159 +++-------
 drivers/gpio/gpiolib-cdev.h                        |   2 +-
 drivers/gpio/gpiolib-of.c                          | 183 ++----------
 drivers/gpio/gpiolib-of.h                          |  10 +
 drivers/gpio/gpiolib-swnode.c                      |   8 +
 drivers/gpio/gpiolib-sysfs.c                       |  30 +-
 drivers/gpio/gpiolib-sysfs.h                       |   8 +-
 drivers/gpio/gpiolib.c                             | 323 ++++++++++++---------
 drivers/gpio/gpiolib.h                             |   6 +-
 drivers/nfc/nfcmrvl/main.c                         |  47 +--
 drivers/nfc/nfcmrvl/nfcmrvl.h                      |   4 +-
 drivers/nfc/nfcmrvl/uart.c                         |  23 +-
 drivers/nfc/nfcmrvl/usb.c                          |   2 +-
 drivers/nfc/s3fwrn5/i2c.c                          |  54 +---
 drivers/nfc/s3fwrn5/phy_common.c                   |  11 +-
 drivers/nfc/s3fwrn5/phy_common.h                   |   5 +-
 drivers/nfc/s3fwrn5/uart.c                         |  43 +--
 drivers/pinctrl/core.c                             |  31 ++
 drivers/pinctrl/pinconf.h                          |   6 +
 drivers/pinctrl/pinctrl-scmi.c                     |  46 ++-
 drivers/regulator/Kconfig                          |   2 -
 include/linux/gpio/consumer.h                      |   2 +
 include/linux/gpio/defs.h                          |   9 +
 include/linux/gpio/driver.h                        |  15 +-
 include/linux/gpio/generic.h                       |   8 +-
 include/linux/gpio/machine.h                       |  33 ---
 include/linux/mfd/kempld.h                         |   1 +
 include/linux/of_gpio.h                            |  38 ---
 include/linux/pinctrl/consumer.h                   |   9 +
 tools/testing/selftests/gpio/Makefile              |   5 +-
 tools/testing/selftests/gpio/gpio-cdev-uaf.c       | 292 +++++++++++++++++++
 tools/testing/selftests/gpio/gpio-cdev-uaf.sh      |  63 ++++
 77 files changed, 2126 insertions(+), 1331 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-thunderx.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/pin-control-gpio.yaml
 delete mode 100644 drivers/gpio/dev-sync-probe.c
 delete mode 100644 drivers/gpio/dev-sync-probe.h
 create mode 100644 drivers/gpio/gpio-by-pinctrl.c
 create mode 100644 drivers/gpio/gpio-novalake-events.c
 create mode 100644 include/linux/gpio/defs.h
 delete mode 100644 include/linux/of_gpio.h
 create mode 100644 tools/testing/selftests/gpio/gpio-cdev-uaf.c
 create mode 100755 tools/testing/selftests/gpio/gpio-cdev-uaf.sh

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox