Re: [PATCH v2 5/6] gpio: remove machine hogs
Dmitry Torokhov <[email protected]>
| Newsgroups | org.kernel.vger.linux-omap,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-acpi,org.kernel.vger.linux-doc,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Mar 09, 2026 at 01:42:41PM +0100, Bartosz Golaszewski wrote: > With no more users, remove legacy machine hog API from the kernel. > > Reviewed-by: Linus Walleij <[email protected]> > Reviewed-by: Andy Shevchenko <[email protected]> > Signed-off-by: Bartosz Golaszewski <[email protected]> Argh! What is the replacement for this? I have patches for rsk7203 to use them to get rid of legacy gpio use, like this: diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c index f8760a91e2f1..5bbd3b31cffb 100644 --- a/arch/sh/boards/mach-rsk/devices-rsk7203.c +++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c @@ -12,7 +12,7 @@ #include <linux/smsc911x.h> #include <linux/input.h> #include <linux/io.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/gpio/machine.h> #include <linux/gpio/property.h> #include <asm/machvec.h> @@ -165,6 +165,19 @@ static const struct platform_device_info rsk7203_devices[] __initconst = { }, }; +/* The base of the function GPIOs in the flat enum */ +#define SH7203_FN_BASE GPIO_FN_PINT7_PB + +static struct gpiod_hog rsk7203_gpio_hogs[] = { + GPIO_HOG("sh7203_pfc-fn", GPIO_FN_TXD0 - SH7203_FN_BASE, + "TXD0", GPIO_ACTIVE_HIGH, GPIOD_ASIS), + GPIO_HOG("sh7203_pfc-fn", GPIO_FN_RXD0 - SH7203_FN_BASE, + "RXD0", GPIO_ACTIVE_HIGH, GPIOD_ASIS), + GPIO_HOG("sh7203_pfc-fn", GPIO_FN_IRQ0_PB - SH7203_FN_BASE, + "IRQ0_PB", GPIO_ACTIVE_HIGH, GPIOD_ASIS), + { } +}; + static int __init rsk7203_devices_setup(void) { struct platform_device *pd; @@ -172,12 +185,10 @@ static int __init rsk7203_devices_setup(void) int i; /* Select pins for SCIF0 */ - gpio_request(GPIO_FN_TXD0, NULL); - gpio_request(GPIO_FN_RXD0, NULL); + gpiod_add_hogs(rsk7203_gpio_hogs); /* Setup LAN9118: CS1 in 16-bit Big Endian Mode, IRQ0 at Port B */ __raw_writel(0x36db0400, 0xfffc0008); /* CS1BCR */ - gpio_request(GPIO_FN_IRQ0_PB, NULL); error = software_node_register_node_group(rsk7203_swnodes); if (error) { If there is no replacement maybe we can resurrect this? Or shoudl we have add swnode support for hogs? Thanks. -- Dmitry