diff mbox series

OMAP/gpio: drop MPUIO static base

Message ID 20230912-omap-mpuio-base-v1-1-290d9bd24b23@linaro.org
State Accepted
Commit 968118fcf0546ef74cf306bf8f8c1e06efff10e3
Headers show
Series OMAP/gpio: drop MPUIO static base | expand

Commit Message

Linus Walleij Sept. 12, 2023, 8:44 a.m. UTC
The OMAP GPIO driver hardcodes the MPIO chip base, but there
is no point: we have already moved all consumers over to using
descriptor look-ups.

Drop the MPUIO GPIO base and use dynamic assignment.

Root out the unused instances of the OMAP_MPUIO() macro and
delete the unused OMAP_GPIO_IS_MPUIO() macro.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Maybe Bartosz can merge this into the GPIO tree with Tony's
et al blessing?
---
 arch/arm/mach-omap1/board-palmte.c      | 5 -----
 drivers/gpio/gpio-omap.c                | 3 +--
 include/linux/platform_data/gpio-omap.h | 3 ---
 3 files changed, 1 insertion(+), 10 deletions(-)


---
base-commit: 0bb80ecc33a8fb5a682236443c1e740d5c917d1d
change-id: 20230912-omap-mpuio-base-9adbacf742fb

Best regards,

Comments

Tony Lindgren Sept. 26, 2023, 7:09 a.m. UTC | #1
* Linus Walleij <linus.walleij@linaro.org> [230912 08:45]:
> The OMAP GPIO driver hardcodes the MPIO chip base, but there
> is no point: we have already moved all consumers over to using
> descriptor look-ups.
> 
> Drop the MPUIO GPIO base and use dynamic assignment.
> 
> Root out the unused instances of the OMAP_MPUIO() macro and
> delete the unused OMAP_GPIO_IS_MPUIO() macro.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Maybe Bartosz can merge this into the GPIO tree with Tony's
> et al blessing?

Best to wait for Tested-by from Aaro on this one.

As far as I'm concerned, good to see this:

Reviewed-by: Tony Lindgren <tony@atomide.com>
Janusz Krzysztofik Oct. 4, 2023, 12:36 a.m. UTC | #2
Hi Linus, Tony,

Dnia wtorek, 26 września 2023 09:09:53 CEST Tony Lindgren pisze:
> * Linus Walleij <linus.walleij@linaro.org> [230912 08:45]:
> > The OMAP GPIO driver hardcodes the MPIO chip base, but there
> > is no point: we have already moved all consumers over to using
> > descriptor look-ups.
> > 
> > Drop the MPUIO GPIO base and use dynamic assignment.

On my OMAP1510 based ams_delta with the patch applied on top of v6.6-rc4:

root@amsdelta:~# cat /sys/kernel/debug/gpio 
gpiochip0: GPIOs 512-527, parent: platform/omap_gpio.0, mpuio:
 gpio-512 (                    |data                ) in  lo 
 gpio-513 (                    |data                ) in  lo 
 gpio-514 (                    |data                ) in  lo 
 gpio-515 (                    |data                ) in  lo 
 gpio-516 (                    |data                ) in  lo 
 gpio-517 (                    |data                ) in  lo 
 gpio-518 (                    |data                ) in  lo 
 gpio-519 (                    |data                ) in  lo 

gpiochip1: GPIOs 528-543, parent: platform/omap_gpio.1, gpio-0-15:
 gpio-528 (                    |keybrd_data         ) in  lo 
 gpio-529 (                    |keybrd_clk          ) in  lo IRQ 
 gpio-530 (                    |modem_irq           ) in  lo 
 gpio-532 (                    |hook_switch         ) in  hi IRQ 
 gpio-540 (                    |rdy                 ) in  hi 

gpiochip2: GPIOs 544-551, parent: platform/basic-mmio-gpio.0, latch1:
 gpio-544 (                    |camera              ) out lo 
...

GPIO based hardware seems to be working correctly.  I'm only not sure if 
we should maybe change the name to something else than gpio-0-15 (mpuio 
looks OK).

> > 
> > Root out the unused instances of the OMAP_MPUIO() macro and
> > delete the unused OMAP_GPIO_IS_MPUIO() macro.
> > 
> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> > ---
> > Maybe Bartosz can merge this into the GPIO tree with Tony's
> > et al blessing?
> 
> Best to wait for Tested-by from Aaro on this one.
> 
> As far as I'm concerned, good to see this:
> 
> Reviewed-by: Tony Lindgren <tony@atomide.com>

Tested-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Bartosz Golaszewski Oct. 4, 2023, 9:37 a.m. UTC | #3
On Tue, Sep 26, 2023 at 9:09 AM Tony Lindgren <tony@atomide.com> wrote:
>
> * Linus Walleij <linus.walleij@linaro.org> [230912 08:45]:
> > The OMAP GPIO driver hardcodes the MPIO chip base, but there
> > is no point: we have already moved all consumers over to using
> > descriptor look-ups.
> >
> > Drop the MPUIO GPIO base and use dynamic assignment.
> >
> > Root out the unused instances of the OMAP_MPUIO() macro and
> > delete the unused OMAP_GPIO_IS_MPUIO() macro.
> >
> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> > ---
> > Maybe Bartosz can merge this into the GPIO tree with Tony's
> > et al blessing?
>
> Best to wait for Tested-by from Aaro on this one.
>
> As far as I'm concerned, good to see this:
>
> Reviewed-by: Tony Lindgren <tony@atomide.com>

Patch applied, thanks!

Bart
Linus Walleij Oct. 4, 2023, 10:23 a.m. UTC | #4
Ji Janusz,

On Wed, Oct 4, 2023 at 2:36 AM Janusz Krzysztofik <jmkrzyszt@gmail.com> wrote:

> Tested-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>

Wow thanks a lot Janusz, I was really scared that this patch would not work
but here we are!

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c
index 7e061d671fde..c917cb2c6e17 100644
--- a/arch/arm/mach-omap1/board-palmte.c
+++ b/arch/arm/mach-omap1/board-palmte.c
@@ -51,11 +51,6 @@ 
 #define PALMTE_HDQ_GPIO		11
 #define PALMTE_HEADPHONES_GPIO	14
 #define PALMTE_SPEAKER_GPIO	15
-#define PALMTE_DC_GPIO		OMAP_MPUIO(2)
-#define PALMTE_MMC_SWITCH_GPIO	OMAP_MPUIO(4)
-#define PALMTE_MMC1_GPIO	OMAP_MPUIO(6)
-#define PALMTE_MMC2_GPIO	OMAP_MPUIO(7)
-#define PALMTE_MMC3_GPIO	OMAP_MPUIO(11)
 
 static const unsigned int palmte_keymap[] = {
 	KEY(0, 0, KEY_F1),		/* Calendar */
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index a927680c66f8..262ec0c1c658 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -1048,15 +1048,14 @@  static int omap_gpio_chip_init(struct gpio_bank *bank, struct device *pm_dev)
 		bank->chip.label = "mpuio";
 		if (bank->regs->wkup_en)
 			bank->chip.parent = &omap_mpuio_device.dev;
-		bank->chip.base = OMAP_MPUIO(0);
 	} else {
 		label = devm_kasprintf(bank->chip.parent, GFP_KERNEL, "gpio-%d-%d",
 				       gpio, gpio + bank->width - 1);
 		if (!label)
 			return -ENOMEM;
 		bank->chip.label = label;
-		bank->chip.base = -1;
 	}
+	bank->chip.base = -1;
 	bank->chip.ngpio = bank->width;
 
 	irq = &bank->chip.irq;
diff --git a/include/linux/platform_data/gpio-omap.h b/include/linux/platform_data/gpio-omap.h
index f377817ce75c..cdd8cfb424f5 100644
--- a/include/linux/platform_data/gpio-omap.h
+++ b/include/linux/platform_data/gpio-omap.h
@@ -144,9 +144,6 @@ 
 
 #define OMAP_MAX_GPIO_LINES		192
 
-#define OMAP_MPUIO(nr)		(OMAP_MAX_GPIO_LINES + (nr))
-#define OMAP_GPIO_IS_MPUIO(nr)	((nr) >= OMAP_MAX_GPIO_LINES)
-
 #ifndef __ASSEMBLER__
 struct omap_gpio_reg_offs {
 	u16 revision;