* [PATCH 0/3] sunxi: Cleanup to prepare for DM_GPIO/DM_PINCTRL @ 2021-09-11 21:50 Samuel Holland 2021-09-11 21:50 ` [PATCH 1/3] sunxi: Clean up inclusions of asm/arch/gpio.h Samuel Holland ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Samuel Holland @ 2021-09-11 21:50 UTC (permalink / raw) To: u-boot, Jagan Teki, Andre Przywara; +Cc: Samuel Holland I have a patch series in progresss to migrate sunxi to a DM_PINCTRL driver and convert the remaining legacy GPIO users (outside of SPL). This is one of several small independent sets of preparatory patches I will be sending in order to minimize the size of the main series (which has >100 patches at this point). Samuel Holland (3): sunxi: Clean up inclusions of asm/arch/gpio.h sunxi: gpio: Remove name_to_gpio macro sunxi: gpio: Remove bank-specific size macros arch/arm/include/asm/arch-sunxi/gpio.h | 15 ++------------- arch/arm/mach-sunxi/board.c | 1 - arch/arm/mach-sunxi/clock.c | 1 - arch/arm/mach-sunxi/clock_sun4i.c | 1 - board/sunxi/board.c | 1 - board/sunxi/gmac.c | 1 - drivers/gpio/axp_gpio.c | 1 - drivers/gpio/sunxi_gpio.c | 3 --- drivers/mmc/sunxi_mmc.c | 3 +-- drivers/net/sun8i_emac.c | 5 +---- drivers/power/axp809.c | 1 - drivers/power/axp818.c | 1 - drivers/spi/spi-sunxi.c | 2 +- drivers/usb/musb-new/sunxi.c | 2 -- drivers/video/Kconfig | 10 +++++----- drivers/video/hitachi_tx18d42vm_lcd.c | 6 +++--- drivers/video/sunxi/sunxi_display.c | 11 +++++------ drivers/video/sunxi/sunxi_lcd.c | 1 - 18 files changed, 18 insertions(+), 48 deletions(-) -- 2.31.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] sunxi: Clean up inclusions of asm/arch/gpio.h 2021-09-11 21:50 [PATCH 0/3] sunxi: Cleanup to prepare for DM_GPIO/DM_PINCTRL Samuel Holland @ 2021-09-11 21:50 ` Samuel Holland 2021-09-13 23:53 ` Andre Przywara 2021-09-11 21:50 ` [PATCH 2/3] sunxi: gpio: Remove name_to_gpio macro Samuel Holland 2021-09-11 21:50 ` [PATCH 3/3] sunxi: gpio: Remove bank-specific size macros Samuel Holland 2 siblings, 1 reply; 7+ messages in thread From: Samuel Holland @ 2021-09-11 21:50 UTC (permalink / raw) To: u-boot, Jagan Teki, Andre Przywara; +Cc: Samuel Holland As part of migrating to DM_GPIO and DM_PINCTRL, eventually we will remove the asm/arch/gpio.h header. In preparation, clean up the various files that include it. Some files did not contain any GPIO code at all, so this header was completely unused. A few files contained only legacy platform-specific GPIO code for setting up pin muxes. They were left unchanged, as that code will be completely removed by the DM_PINCTRL migration. The remaining files contain some combination of DM_GPIO and legacy GPIO code. For those, switch to including asm/gpio.h (if it wasn't included already). Right now, this header provides both sets of functions, because ARCH_SUNXI selects GPIO_EXTRA_HEADER. This will still be the right header to include once the DM_GPIO migration is complete and GPIO_EXTRA_HEADER is no longer needed. Signed-off-by: Samuel Holland <samuel@sholland.org> --- arch/arm/mach-sunxi/board.c | 1 - arch/arm/mach-sunxi/clock.c | 1 - arch/arm/mach-sunxi/clock_sun4i.c | 1 - board/sunxi/board.c | 1 - board/sunxi/gmac.c | 1 - drivers/gpio/axp_gpio.c | 1 - drivers/gpio/sunxi_gpio.c | 1 - drivers/mmc/sunxi_mmc.c | 3 +-- drivers/net/sun8i_emac.c | 5 +---- drivers/power/axp809.c | 1 - drivers/power/axp818.c | 1 - drivers/usb/musb-new/sunxi.c | 2 -- drivers/video/sunxi/sunxi_display.c | 1 - drivers/video/sunxi/sunxi_lcd.c | 1 - 14 files changed, 2 insertions(+), 19 deletions(-) diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c index d9b04f75fc4..373cb56db49 100644 --- a/arch/arm/mach-sunxi/board.c +++ b/arch/arm/mach-sunxi/board.c @@ -21,7 +21,6 @@ #include <asm/gpio.h> #include <asm/io.h> #include <asm/arch/clock.h> -#include <asm/arch/gpio.h> #include <asm/arch/spl.h> #include <asm/arch/sys_proto.h> #include <asm/arch/timer.h> diff --git a/arch/arm/mach-sunxi/clock.c b/arch/arm/mach-sunxi/clock.c index f591affebf7..de7e8752988 100644 --- a/arch/arm/mach-sunxi/clock.c +++ b/arch/arm/mach-sunxi/clock.c @@ -10,7 +10,6 @@ #include <common.h> #include <asm/io.h> #include <asm/arch/clock.h> -#include <asm/arch/gpio.h> #include <asm/arch/prcm.h> #include <asm/arch/gtbus.h> #include <asm/arch/sys_proto.h> diff --git a/arch/arm/mach-sunxi/clock_sun4i.c b/arch/arm/mach-sunxi/clock_sun4i.c index 57ee018eaa2..471609764d2 100644 --- a/arch/arm/mach-sunxi/clock_sun4i.c +++ b/arch/arm/mach-sunxi/clock_sun4i.c @@ -12,7 +12,6 @@ #include <common.h> #include <asm/io.h> #include <asm/arch/clock.h> -#include <asm/arch/gpio.h> #include <asm/arch/sys_proto.h> #ifdef CONFIG_SPL_BUILD diff --git a/board/sunxi/board.c b/board/sunxi/board.c index 2b7d655678d..dcd7f0b4375 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -25,7 +25,6 @@ #include <asm/arch/cpu.h> #include <asm/arch/display.h> #include <asm/arch/dram.h> -#include <asm/arch/gpio.h> #include <asm/arch/mmc.h> #include <asm/arch/prcm.h> #include <asm/arch/spl.h> diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c index d8fdf7728e0..1fa54ed72de 100644 --- a/board/sunxi/gmac.c +++ b/board/sunxi/gmac.c @@ -4,7 +4,6 @@ #include <asm/gpio.h> #include <asm/io.h> #include <asm/arch/clock.h> -#include <asm/arch/gpio.h> void eth_init_board(void) { diff --git a/drivers/gpio/axp_gpio.c b/drivers/gpio/axp_gpio.c index 73058cf40b4..35585dc8ac9 100644 --- a/drivers/gpio/axp_gpio.c +++ b/drivers/gpio/axp_gpio.c @@ -6,7 +6,6 @@ */ #include <common.h> -#include <asm/arch/gpio.h> #include <asm/arch/pmic_bus.h> #include <asm/gpio.h> #include <axp_pmic.h> diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c index 24cb604e3e3..7ce3ef73b46 100644 --- a/drivers/gpio/sunxi_gpio.c +++ b/drivers/gpio/sunxi_gpio.c @@ -14,7 +14,6 @@ #include <errno.h> #include <fdtdec.h> #include <malloc.h> -#include <asm/arch/gpio.h> #include <asm/io.h> #include <asm/gpio.h> #include <dm/device-internal.h> diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index 178b8cf106d..c62b5f5a6f9 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -15,12 +15,11 @@ #include <mmc.h> #include <clk.h> #include <reset.h> +#include <asm/gpio.h> #include <asm/io.h> #include <asm/arch/clock.h> #include <asm/arch/cpu.h> -#include <asm/arch/gpio.h> #include <asm/arch/mmc.h> -#include <asm-generic/gpio.h> #include <linux/delay.h> #ifndef CCM_MMC_CTRL_MODE_SEL_NEW diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index d7553fe1634..46786d9f764 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -14,9 +14,9 @@ #include <log.h> #include <asm/cache.h> #include <asm/global_data.h> +#include <asm/gpio.h> #include <asm/io.h> #include <asm/arch/clock.h> -#include <asm/arch/gpio.h> #include <common.h> #include <clk.h> #include <dm.h> @@ -31,9 +31,6 @@ #include <reset.h> #include <dt-bindings/pinctrl/sun4i-a10.h> #include <wait_bit.h> -#if CONFIG_IS_ENABLED(DM_GPIO) -#include <asm-generic/gpio.h> -#endif #define MDIO_CMD_MII_BUSY BIT(0) #define MDIO_CMD_MII_WRITE BIT(1) diff --git a/drivers/power/axp809.c b/drivers/power/axp809.c index 6323492b66d..0396502cdb5 100644 --- a/drivers/power/axp809.c +++ b/drivers/power/axp809.c @@ -13,7 +13,6 @@ #include <common.h> #include <command.h> #include <errno.h> -#include <asm/arch/gpio.h> #include <asm/arch/pmic_bus.h> #include <axp_pmic.h> diff --git a/drivers/power/axp818.c b/drivers/power/axp818.c index 0531707c8aa..2dc736467bb 100644 --- a/drivers/power/axp818.c +++ b/drivers/power/axp818.c @@ -13,7 +13,6 @@ #include <common.h> #include <command.h> #include <errno.h> -#include <asm/arch/gpio.h> #include <asm/arch/pmic_bus.h> #include <axp_pmic.h> diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index fea4105f3d1..7e62e3fe6ea 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -25,8 +25,6 @@ #include <reset.h> #include <asm/arch/cpu.h> #include <asm/arch/clock.h> -#include <asm/arch/gpio.h> -#include <asm-generic/gpio.h> #include <dm/device_compat.h> #include <dm/lists.h> #include <dm/root.h> diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c index 4361a58cd7e..128888f7af1 100644 --- a/drivers/video/sunxi/sunxi_display.c +++ b/drivers/video/sunxi/sunxi_display.c @@ -17,7 +17,6 @@ #include <asm/arch/clock.h> #include <asm/arch/display.h> -#include <asm/arch/gpio.h> #include <asm/arch/lcdc.h> #include <asm/arch/pwm.h> #include <asm/arch/tve.h> diff --git a/drivers/video/sunxi/sunxi_lcd.c b/drivers/video/sunxi/sunxi_lcd.c index 7a9eba1ed42..8b9c3b2bfa9 100644 --- a/drivers/video/sunxi/sunxi_lcd.c +++ b/drivers/video/sunxi/sunxi_lcd.c @@ -15,7 +15,6 @@ #include <asm/io.h> #include <asm/arch/clock.h> #include <asm/arch/lcdc.h> -#include <asm/arch/gpio.h> #include <asm/global_data.h> #include <asm/gpio.h> -- 2.31.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] sunxi: Clean up inclusions of asm/arch/gpio.h 2021-09-11 21:50 ` [PATCH 1/3] sunxi: Clean up inclusions of asm/arch/gpio.h Samuel Holland @ 2021-09-13 23:53 ` Andre Przywara 0 siblings, 0 replies; 7+ messages in thread From: Andre Przywara @ 2021-09-13 23:53 UTC (permalink / raw) To: Samuel Holland; +Cc: u-boot, Jagan Teki On Sat, 11 Sep 2021 16:50:47 -0500 Samuel Holland <samuel@sholland.org> wrote: > As part of migrating to DM_GPIO and DM_PINCTRL, eventually we will > remove the asm/arch/gpio.h header. In preparation, clean up the various > files that include it. > > Some files did not contain any GPIO code at all, so this header was > completely unused. > > A few files contained only legacy platform-specific GPIO code for > setting up pin muxes. They were left unchanged, as that code will be > completely removed by the DM_PINCTRL migration. > > The remaining files contain some combination of DM_GPIO and legacy GPIO > code. For those, switch to including asm/gpio.h (if it wasn't included > already). Right now, this header provides both sets of functions, > because ARCH_SUNXI selects GPIO_EXTRA_HEADER. This will still be the > right header to include once the DM_GPIO migration is complete and > GPIO_EXTRA_HEADER is no longer needed. Nice cleanup, and it survived a buildman sunxi (all 158 boards). > Signed-off-by: Samuel Holland <samuel@sholland.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > --- > > arch/arm/mach-sunxi/board.c | 1 - > arch/arm/mach-sunxi/clock.c | 1 - > arch/arm/mach-sunxi/clock_sun4i.c | 1 - > board/sunxi/board.c | 1 - > board/sunxi/gmac.c | 1 - > drivers/gpio/axp_gpio.c | 1 - > drivers/gpio/sunxi_gpio.c | 1 - > drivers/mmc/sunxi_mmc.c | 3 +-- > drivers/net/sun8i_emac.c | 5 +---- > drivers/power/axp809.c | 1 - > drivers/power/axp818.c | 1 - > drivers/usb/musb-new/sunxi.c | 2 -- > drivers/video/sunxi/sunxi_display.c | 1 - > drivers/video/sunxi/sunxi_lcd.c | 1 - > 14 files changed, 2 insertions(+), 19 deletions(-) > > diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c > index d9b04f75fc4..373cb56db49 100644 > --- a/arch/arm/mach-sunxi/board.c > +++ b/arch/arm/mach-sunxi/board.c > @@ -21,7 +21,6 @@ > #include <asm/gpio.h> > #include <asm/io.h> > #include <asm/arch/clock.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/spl.h> > #include <asm/arch/sys_proto.h> > #include <asm/arch/timer.h> > diff --git a/arch/arm/mach-sunxi/clock.c b/arch/arm/mach-sunxi/clock.c > index f591affebf7..de7e8752988 100644 > --- a/arch/arm/mach-sunxi/clock.c > +++ b/arch/arm/mach-sunxi/clock.c > @@ -10,7 +10,6 @@ > #include <common.h> > #include <asm/io.h> > #include <asm/arch/clock.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/prcm.h> > #include <asm/arch/gtbus.h> > #include <asm/arch/sys_proto.h> > diff --git a/arch/arm/mach-sunxi/clock_sun4i.c b/arch/arm/mach-sunxi/clock_sun4i.c > index 57ee018eaa2..471609764d2 100644 > --- a/arch/arm/mach-sunxi/clock_sun4i.c > +++ b/arch/arm/mach-sunxi/clock_sun4i.c > @@ -12,7 +12,6 @@ > #include <common.h> > #include <asm/io.h> > #include <asm/arch/clock.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/sys_proto.h> > > #ifdef CONFIG_SPL_BUILD > diff --git a/board/sunxi/board.c b/board/sunxi/board.c > index 2b7d655678d..dcd7f0b4375 100644 > --- a/board/sunxi/board.c > +++ b/board/sunxi/board.c > @@ -25,7 +25,6 @@ > #include <asm/arch/cpu.h> > #include <asm/arch/display.h> > #include <asm/arch/dram.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/mmc.h> > #include <asm/arch/prcm.h> > #include <asm/arch/spl.h> > diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c > index d8fdf7728e0..1fa54ed72de 100644 > --- a/board/sunxi/gmac.c > +++ b/board/sunxi/gmac.c > @@ -4,7 +4,6 @@ > #include <asm/gpio.h> > #include <asm/io.h> > #include <asm/arch/clock.h> > -#include <asm/arch/gpio.h> > > void eth_init_board(void) > { > diff --git a/drivers/gpio/axp_gpio.c b/drivers/gpio/axp_gpio.c > index 73058cf40b4..35585dc8ac9 100644 > --- a/drivers/gpio/axp_gpio.c > +++ b/drivers/gpio/axp_gpio.c > @@ -6,7 +6,6 @@ > */ > > #include <common.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/pmic_bus.h> > #include <asm/gpio.h> > #include <axp_pmic.h> > diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c > index 24cb604e3e3..7ce3ef73b46 100644 > --- a/drivers/gpio/sunxi_gpio.c > +++ b/drivers/gpio/sunxi_gpio.c > @@ -14,7 +14,6 @@ > #include <errno.h> > #include <fdtdec.h> > #include <malloc.h> > -#include <asm/arch/gpio.h> > #include <asm/io.h> > #include <asm/gpio.h> > #include <dm/device-internal.h> > diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c > index 178b8cf106d..c62b5f5a6f9 100644 > --- a/drivers/mmc/sunxi_mmc.c > +++ b/drivers/mmc/sunxi_mmc.c > @@ -15,12 +15,11 @@ > #include <mmc.h> > #include <clk.h> > #include <reset.h> > +#include <asm/gpio.h> > #include <asm/io.h> > #include <asm/arch/clock.h> > #include <asm/arch/cpu.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/mmc.h> > -#include <asm-generic/gpio.h> > #include <linux/delay.h> > > #ifndef CCM_MMC_CTRL_MODE_SEL_NEW > diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c > index d7553fe1634..46786d9f764 100644 > --- a/drivers/net/sun8i_emac.c > +++ b/drivers/net/sun8i_emac.c > @@ -14,9 +14,9 @@ > #include <log.h> > #include <asm/cache.h> > #include <asm/global_data.h> > +#include <asm/gpio.h> > #include <asm/io.h> > #include <asm/arch/clock.h> > -#include <asm/arch/gpio.h> > #include <common.h> > #include <clk.h> > #include <dm.h> > @@ -31,9 +31,6 @@ > #include <reset.h> > #include <dt-bindings/pinctrl/sun4i-a10.h> > #include <wait_bit.h> > -#if CONFIG_IS_ENABLED(DM_GPIO) > -#include <asm-generic/gpio.h> > -#endif > > #define MDIO_CMD_MII_BUSY BIT(0) > #define MDIO_CMD_MII_WRITE BIT(1) > diff --git a/drivers/power/axp809.c b/drivers/power/axp809.c > index 6323492b66d..0396502cdb5 100644 > --- a/drivers/power/axp809.c > +++ b/drivers/power/axp809.c > @@ -13,7 +13,6 @@ > #include <common.h> > #include <command.h> > #include <errno.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/pmic_bus.h> > #include <axp_pmic.h> > > diff --git a/drivers/power/axp818.c b/drivers/power/axp818.c > index 0531707c8aa..2dc736467bb 100644 > --- a/drivers/power/axp818.c > +++ b/drivers/power/axp818.c > @@ -13,7 +13,6 @@ > #include <common.h> > #include <command.h> > #include <errno.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/pmic_bus.h> > #include <axp_pmic.h> > > diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c > index fea4105f3d1..7e62e3fe6ea 100644 > --- a/drivers/usb/musb-new/sunxi.c > +++ b/drivers/usb/musb-new/sunxi.c > @@ -25,8 +25,6 @@ > #include <reset.h> > #include <asm/arch/cpu.h> > #include <asm/arch/clock.h> > -#include <asm/arch/gpio.h> > -#include <asm-generic/gpio.h> > #include <dm/device_compat.h> > #include <dm/lists.h> > #include <dm/root.h> > diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c > index 4361a58cd7e..128888f7af1 100644 > --- a/drivers/video/sunxi/sunxi_display.c > +++ b/drivers/video/sunxi/sunxi_display.c > @@ -17,7 +17,6 @@ > > #include <asm/arch/clock.h> > #include <asm/arch/display.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/lcdc.h> > #include <asm/arch/pwm.h> > #include <asm/arch/tve.h> > diff --git a/drivers/video/sunxi/sunxi_lcd.c b/drivers/video/sunxi/sunxi_lcd.c > index 7a9eba1ed42..8b9c3b2bfa9 100644 > --- a/drivers/video/sunxi/sunxi_lcd.c > +++ b/drivers/video/sunxi/sunxi_lcd.c > @@ -15,7 +15,6 @@ > #include <asm/io.h> > #include <asm/arch/clock.h> > #include <asm/arch/lcdc.h> > -#include <asm/arch/gpio.h> > #include <asm/global_data.h> > #include <asm/gpio.h> > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/3] sunxi: gpio: Remove name_to_gpio macro 2021-09-11 21:50 [PATCH 0/3] sunxi: Cleanup to prepare for DM_GPIO/DM_PINCTRL Samuel Holland 2021-09-11 21:50 ` [PATCH 1/3] sunxi: Clean up inclusions of asm/arch/gpio.h Samuel Holland @ 2021-09-11 21:50 ` Samuel Holland 2021-09-13 23:53 ` Andre Przywara 2021-09-11 21:50 ` [PATCH 3/3] sunxi: gpio: Remove bank-specific size macros Samuel Holland 2 siblings, 1 reply; 7+ messages in thread From: Samuel Holland @ 2021-09-11 21:50 UTC (permalink / raw) To: u-boot, Jagan Teki, Andre Przywara; +Cc: Samuel Holland This clarifies which callers must be updated to complete the DM_GPIO conversion. The only remaining caller of name_to_gpio in generic code is inside the !DM_GPIO block in cmd/gpio.c. DM_GPIO is always selected on sunxi, so that code cannot be reached. And after this commit, there are only two remaining implementations of name_to_gpio. Signed-off-by: Samuel Holland <samuel@sholland.org> --- arch/arm/include/asm/arch-sunxi/gpio.h | 1 - drivers/spi/spi-sunxi.c | 2 +- drivers/video/Kconfig | 10 +++++----- drivers/video/hitachi_tx18d42vm_lcd.c | 6 +++--- drivers/video/sunxi/sunxi_display.c | 10 +++++----- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h index 2969a530ae1..c93c051a19f 100644 --- a/arch/arm/include/asm/arch-sunxi/gpio.h +++ b/arch/arm/include/asm/arch-sunxi/gpio.h @@ -244,7 +244,6 @@ int sunxi_gpio_set_drv(u32 pin, u32 val); int sunxi_gpio_set_pull(u32 pin, u32 val); int sunxi_name_to_gpio_bank(const char *name); int sunxi_name_to_gpio(const char *name); -#define name_to_gpio(name) sunxi_name_to_gpio(name) #if !defined CONFIG_SPL_BUILD && defined CONFIG_AXP_GPIO int axp_gpio_init(void); diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c index 4ca5d3a93ac..bc2f544e863 100644 --- a/drivers/spi/spi-sunxi.c +++ b/drivers/spi/spi-sunxi.c @@ -245,7 +245,7 @@ static int sun4i_spi_parse_pins(struct udevice *dev) break; } - pin = name_to_gpio(pin_name); + pin = sunxi_name_to_gpio(pin_name); if (pin < 0) break; diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index b1f8a9c1e62..b0c52a500df 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -452,7 +452,7 @@ config VIDEO_LCD_SSD2828_RESET default "" ---help--- The reset pin of SSD2828 chip. This takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_TDO_TL070WSH30 bool "TDO TL070WSH30 DSI LCD panel support" @@ -477,7 +477,7 @@ config VIDEO_LCD_SPI_CS This is one of the SPI communication pins, involved in setting up a working LCD configuration. The exact role of SPI may differ for different hardware setups. The option takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_SPI_SCLK string "SPI SCLK pin for LCD related config job" @@ -487,7 +487,7 @@ config VIDEO_LCD_SPI_SCLK This is one of the SPI communication pins, involved in setting up a working LCD configuration. The exact role of SPI may differ for different hardware setups. The option takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_SPI_MOSI string "SPI MOSI pin for LCD related config job" @@ -497,7 +497,7 @@ config VIDEO_LCD_SPI_MOSI This is one of the SPI communication pins, involved in setting up a working LCD configuration. The exact role of SPI may differ for different hardware setups. The option takes a string in the format - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. config VIDEO_LCD_SPI_MISO string "SPI MISO pin for LCD related config job (optional)" @@ -509,7 +509,7 @@ config VIDEO_LCD_SPI_MISO different hardware setups. If wired up, this pin may provide additional useful functionality. Such as bi-directional communication with the hardware and LCD panel id retrieval (if the panel can report it). The - option takes a string in the format understood by 'name_to_gpio' + option takes a string in the format understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. source "drivers/video/meson/Kconfig" diff --git a/drivers/video/hitachi_tx18d42vm_lcd.c b/drivers/video/hitachi_tx18d42vm_lcd.c index c6c8df6a96e..87c4d27438a 100644 --- a/drivers/video/hitachi_tx18d42vm_lcd.c +++ b/drivers/video/hitachi_tx18d42vm_lcd.c @@ -49,9 +49,9 @@ int hitachi_tx18d42vm_init(void) }; int i, cs, clk, mosi, ret = 0; - cs = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); - clk = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); - mosi = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); + cs = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); + clk = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); + mosi = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); if (cs == -1 || clk == -1 || mosi == 1) { printf("Error tx18d42vm spi gpio config is invalid\n"); diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c index 128888f7af1..da3e8988296 100644 --- a/drivers/video/sunxi/sunxi_display.c +++ b/drivers/video/sunxi/sunxi_display.c @@ -871,11 +871,11 @@ static void sunxi_vga_external_dac_enable(void) static int sunxi_ssd2828_init(const struct ctfb_res_modes *mode) { struct ssd2828_config cfg = { - .csx_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), - .sck_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), - .sdi_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), - .sdo_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), - .reset_pin = name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), + .csx_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), + .sck_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), + .sdi_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), + .sdo_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), + .reset_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), .ssd2828_tx_clk_khz = CONFIG_VIDEO_LCD_SSD2828_TX_CLK * 1000, .ssd2828_color_depth = 24, #ifdef CONFIG_VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828 -- 2.31.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] sunxi: gpio: Remove name_to_gpio macro 2021-09-11 21:50 ` [PATCH 2/3] sunxi: gpio: Remove name_to_gpio macro Samuel Holland @ 2021-09-13 23:53 ` Andre Przywara 0 siblings, 0 replies; 7+ messages in thread From: Andre Przywara @ 2021-09-13 23:53 UTC (permalink / raw) To: Samuel Holland; +Cc: u-boot, Jagan Teki On Sat, 11 Sep 2021 16:50:48 -0500 Samuel Holland <samuel@sholland.org> wrote: > This clarifies which callers must be updated to complete the DM_GPIO > conversion. > > The only remaining caller of name_to_gpio in generic code is inside the > !DM_GPIO block in cmd/gpio.c. DM_GPIO is always selected on sunxi, so > that code cannot be reached. And after this commit, there are only two > remaining implementations of name_to_gpio. > > Signed-off-by: Samuel Holland <samuel@sholland.org> Compile tested on all sunxi boards. Acked-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > --- > > arch/arm/include/asm/arch-sunxi/gpio.h | 1 - > drivers/spi/spi-sunxi.c | 2 +- > drivers/video/Kconfig | 10 +++++----- > drivers/video/hitachi_tx18d42vm_lcd.c | 6 +++--- > drivers/video/sunxi/sunxi_display.c | 10 +++++----- > 5 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h > index 2969a530ae1..c93c051a19f 100644 > --- a/arch/arm/include/asm/arch-sunxi/gpio.h > +++ b/arch/arm/include/asm/arch-sunxi/gpio.h > @@ -244,7 +244,6 @@ int sunxi_gpio_set_drv(u32 pin, u32 val); > int sunxi_gpio_set_pull(u32 pin, u32 val); > int sunxi_name_to_gpio_bank(const char *name); > int sunxi_name_to_gpio(const char *name); > -#define name_to_gpio(name) sunxi_name_to_gpio(name) > > #if !defined CONFIG_SPL_BUILD && defined CONFIG_AXP_GPIO > int axp_gpio_init(void); > diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c > index 4ca5d3a93ac..bc2f544e863 100644 > --- a/drivers/spi/spi-sunxi.c > +++ b/drivers/spi/spi-sunxi.c > @@ -245,7 +245,7 @@ static int sun4i_spi_parse_pins(struct udevice *dev) > break; > } > > - pin = name_to_gpio(pin_name); > + pin = sunxi_name_to_gpio(pin_name); > if (pin < 0) > break; > > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig > index b1f8a9c1e62..b0c52a500df 100644 > --- a/drivers/video/Kconfig > +++ b/drivers/video/Kconfig > @@ -452,7 +452,7 @@ config VIDEO_LCD_SSD2828_RESET > default "" > ---help--- > The reset pin of SSD2828 chip. This takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_TDO_TL070WSH30 > bool "TDO TL070WSH30 DSI LCD panel support" > @@ -477,7 +477,7 @@ config VIDEO_LCD_SPI_CS > This is one of the SPI communication pins, involved in setting up a > working LCD configuration. The exact role of SPI may differ for > different hardware setups. The option takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_SPI_SCLK > string "SPI SCLK pin for LCD related config job" > @@ -487,7 +487,7 @@ config VIDEO_LCD_SPI_SCLK > This is one of the SPI communication pins, involved in setting up a > working LCD configuration. The exact role of SPI may differ for > different hardware setups. The option takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_SPI_MOSI > string "SPI MOSI pin for LCD related config job" > @@ -497,7 +497,7 @@ config VIDEO_LCD_SPI_MOSI > This is one of the SPI communication pins, involved in setting up a > working LCD configuration. The exact role of SPI may differ for > different hardware setups. The option takes a string in the format > - understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H. > + understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H. > > config VIDEO_LCD_SPI_MISO > string "SPI MISO pin for LCD related config job (optional)" > @@ -509,7 +509,7 @@ config VIDEO_LCD_SPI_MISO > different hardware setups. If wired up, this pin may provide additional > useful functionality. Such as bi-directional communication with the > hardware and LCD panel id retrieval (if the panel can report it). The > - option takes a string in the format understood by 'name_to_gpio' > + option takes a string in the format understood by 'sunxi_name_to_gpio' > function, e.g. PH1 for pin 1 of port H. > > source "drivers/video/meson/Kconfig" > diff --git a/drivers/video/hitachi_tx18d42vm_lcd.c b/drivers/video/hitachi_tx18d42vm_lcd.c > index c6c8df6a96e..87c4d27438a 100644 > --- a/drivers/video/hitachi_tx18d42vm_lcd.c > +++ b/drivers/video/hitachi_tx18d42vm_lcd.c > @@ -49,9 +49,9 @@ int hitachi_tx18d42vm_init(void) > }; > int i, cs, clk, mosi, ret = 0; > > - cs = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); > - clk = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); > - mosi = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); > + cs = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS); > + clk = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK); > + mosi = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI); > > if (cs == -1 || clk == -1 || mosi == 1) { > printf("Error tx18d42vm spi gpio config is invalid\n"); > diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c > index 128888f7af1..da3e8988296 100644 > --- a/drivers/video/sunxi/sunxi_display.c > +++ b/drivers/video/sunxi/sunxi_display.c > @@ -871,11 +871,11 @@ static void sunxi_vga_external_dac_enable(void) > static int sunxi_ssd2828_init(const struct ctfb_res_modes *mode) > { > struct ssd2828_config cfg = { > - .csx_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), > - .sck_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), > - .sdi_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), > - .sdo_pin = name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), > - .reset_pin = name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), > + .csx_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_CS), > + .sck_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_SCLK), > + .sdi_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MOSI), > + .sdo_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SPI_MISO), > + .reset_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_SSD2828_RESET), > .ssd2828_tx_clk_khz = CONFIG_VIDEO_LCD_SSD2828_TX_CLK * 1000, > .ssd2828_color_depth = 24, > #ifdef CONFIG_VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/3] sunxi: gpio: Remove bank-specific size macros 2021-09-11 21:50 [PATCH 0/3] sunxi: Cleanup to prepare for DM_GPIO/DM_PINCTRL Samuel Holland 2021-09-11 21:50 ` [PATCH 1/3] sunxi: Clean up inclusions of asm/arch/gpio.h Samuel Holland 2021-09-11 21:50 ` [PATCH 2/3] sunxi: gpio: Remove name_to_gpio macro Samuel Holland @ 2021-09-11 21:50 ` Samuel Holland 2021-09-13 23:53 ` Andre Przywara 2 siblings, 1 reply; 7+ messages in thread From: Samuel Holland @ 2021-09-11 21:50 UTC (permalink / raw) To: u-boot, Jagan Teki, Andre Przywara; +Cc: Samuel Holland Since the beginning, all banks have had space for 32 pins, even when not all pins were implemented. Let's use a single constant for the GPIO bank size here, like the GPIO driver is already doing. Signed-off-by: Samuel Holland <samuel@sholland.org> --- arch/arm/include/asm/arch-sunxi/gpio.h | 14 ++------------ drivers/gpio/sunxi_gpio.c | 2 -- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h index c93c051a19f..cd5e85988b1 100644 --- a/arch/arm/include/asm/arch-sunxi/gpio.h +++ b/arch/arm/include/asm/arch-sunxi/gpio.h @@ -93,20 +93,10 @@ struct sunxi_gpio_reg { #define GPIO_PULL_OFFSET(pin) ((((pin) & 0x1f) & 0xf) << 1) /* GPIO bank sizes */ -#define SUNXI_GPIO_A_NR 32 -#define SUNXI_GPIO_B_NR 32 -#define SUNXI_GPIO_C_NR 32 -#define SUNXI_GPIO_D_NR 32 -#define SUNXI_GPIO_E_NR 32 -#define SUNXI_GPIO_F_NR 32 -#define SUNXI_GPIO_G_NR 32 -#define SUNXI_GPIO_H_NR 32 -#define SUNXI_GPIO_I_NR 32 -#define SUNXI_GPIO_L_NR 32 -#define SUNXI_GPIO_M_NR 32 +#define SUNXI_GPIOS_PER_BANK 32 #define SUNXI_GPIO_NEXT(__gpio) \ - ((__gpio##_START) + (__gpio##_NR) + 0) + ((__gpio##_START) + SUNXI_GPIOS_PER_BANK) enum sunxi_gpio_number { SUNXI_GPIO_A_START = 0, diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c index 7ce3ef73b46..ed26eb011f4 100644 --- a/drivers/gpio/sunxi_gpio.c +++ b/drivers/gpio/sunxi_gpio.c @@ -19,8 +19,6 @@ #include <dm/device-internal.h> #include <dt-bindings/gpio/gpio.h> -#define SUNXI_GPIOS_PER_BANK SUNXI_GPIO_A_NR - struct sunxi_gpio_plat { struct sunxi_gpio *regs; const char *bank_name; /* Name of bank, e.g. "B" */ -- 2.31.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] sunxi: gpio: Remove bank-specific size macros 2021-09-11 21:50 ` [PATCH 3/3] sunxi: gpio: Remove bank-specific size macros Samuel Holland @ 2021-09-13 23:53 ` Andre Przywara 0 siblings, 0 replies; 7+ messages in thread From: Andre Przywara @ 2021-09-13 23:53 UTC (permalink / raw) To: Samuel Holland; +Cc: u-boot, Jagan Teki On Sat, 11 Sep 2021 16:50:49 -0500 Samuel Holland <samuel@sholland.org> wrote: > Since the beginning, all banks have had space for 32 pins, even when > not all pins were implemented. Let's use a single constant for the GPIO > bank size here, like the GPIO driver is already doing. Yeah, I always found some code in there a bit over the top, thanks for cleaning this up. > Signed-off-by: Samuel Holland <samuel@sholland.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > --- > > arch/arm/include/asm/arch-sunxi/gpio.h | 14 ++------------ > drivers/gpio/sunxi_gpio.c | 2 -- > 2 files changed, 2 insertions(+), 14 deletions(-) > > diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h > index c93c051a19f..cd5e85988b1 100644 > --- a/arch/arm/include/asm/arch-sunxi/gpio.h > +++ b/arch/arm/include/asm/arch-sunxi/gpio.h > @@ -93,20 +93,10 @@ struct sunxi_gpio_reg { > #define GPIO_PULL_OFFSET(pin) ((((pin) & 0x1f) & 0xf) << 1) > > /* GPIO bank sizes */ > -#define SUNXI_GPIO_A_NR 32 > -#define SUNXI_GPIO_B_NR 32 > -#define SUNXI_GPIO_C_NR 32 > -#define SUNXI_GPIO_D_NR 32 > -#define SUNXI_GPIO_E_NR 32 > -#define SUNXI_GPIO_F_NR 32 > -#define SUNXI_GPIO_G_NR 32 > -#define SUNXI_GPIO_H_NR 32 > -#define SUNXI_GPIO_I_NR 32 > -#define SUNXI_GPIO_L_NR 32 > -#define SUNXI_GPIO_M_NR 32 > +#define SUNXI_GPIOS_PER_BANK 32 > > #define SUNXI_GPIO_NEXT(__gpio) \ > - ((__gpio##_START) + (__gpio##_NR) + 0) > + ((__gpio##_START) + SUNXI_GPIOS_PER_BANK) > > enum sunxi_gpio_number { > SUNXI_GPIO_A_START = 0, > diff --git a/drivers/gpio/sunxi_gpio.c b/drivers/gpio/sunxi_gpio.c > index 7ce3ef73b46..ed26eb011f4 100644 > --- a/drivers/gpio/sunxi_gpio.c > +++ b/drivers/gpio/sunxi_gpio.c > @@ -19,8 +19,6 @@ > #include <dm/device-internal.h> > #include <dt-bindings/gpio/gpio.h> > > -#define SUNXI_GPIOS_PER_BANK SUNXI_GPIO_A_NR > - > struct sunxi_gpio_plat { > struct sunxi_gpio *regs; > const char *bank_name; /* Name of bank, e.g. "B" */ ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-09-13 23:53 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-11 21:50 [PATCH 0/3] sunxi: Cleanup to prepare for DM_GPIO/DM_PINCTRL Samuel Holland 2021-09-11 21:50 ` [PATCH 1/3] sunxi: Clean up inclusions of asm/arch/gpio.h Samuel Holland 2021-09-13 23:53 ` Andre Przywara 2021-09-11 21:50 ` [PATCH 2/3] sunxi: gpio: Remove name_to_gpio macro Samuel Holland 2021-09-13 23:53 ` Andre Przywara 2021-09-11 21:50 ` [PATCH 3/3] sunxi: gpio: Remove bank-specific size macros Samuel Holland 2021-09-13 23:53 ` Andre Przywara
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.