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 Tue, May 19, 2026 at 05:46:50PM -0700, Dmitry Torokhov wrote: > 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? Hmm, I guess it is already there so I should simply switch. Sorry about the noise. Thanks. -- Dmitry