Hi Patrick On 10/22/21 8:12 PM, Patrick Delaunay wrote: > The stm32 gpio driver private data are not needed in arch include files, > they are not used by code except for stm32 gpio and pincontrol drivers, > using the same IP; the defines for this IP is moved in a new file > "stm32_gpio_priv.h" in driver/gpio. > > This patch avoids to have duplicated file gpio.h for each SOC > in MPU directory mach-stm32mp and in each MCU directory arch-stm32* > and allows to remove CONFIG_GPIO_EXTRA_HEADER for all STM32. > > Signed-off-by: Patrick Delaunay <patrick.delau...@foss.st.com> > --- > > arch/arm/Kconfig | 2 - > arch/arm/include/asm/arch-stm32f4/gpio.h | 15 ---- > arch/arm/include/asm/arch-stm32f7/gpio.h | 12 --- > arch/arm/include/asm/arch-stm32h7/gpio.h | 12 --- > arch/arm/mach-stm32mp/include/mach/gpio.h | 87 ------------------- > board/st/stm32f746-disco/stm32f746-disco.c | 1 - > drivers/gpio/stm32_gpio.c | 3 +- > .../gpio.h => drivers/gpio/stm32_gpio_priv.h | 6 +- > drivers/pinctrl/pinctrl_stm32.c | 3 +- > drivers/video/dw_mipi_dsi.c | 1 - > drivers/video/stm32/stm32_dsi.c | 1 - > drivers/video/stm32/stm32_ltdc.c | 1 - > 12 files changed, 7 insertions(+), 137 deletions(-) > delete mode 100644 arch/arm/include/asm/arch-stm32f4/gpio.h > delete mode 100644 arch/arm/include/asm/arch-stm32f7/gpio.h > delete mode 100644 arch/arm/include/asm/arch-stm32h7/gpio.h > delete mode 100644 arch/arm/mach-stm32mp/include/mach/gpio.h > rename arch/arm/include/asm/arch-stm32/gpio.h => > drivers/gpio/stm32_gpio_priv.h (94%) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 504abca0b7..0f33f9aa9a 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -1789,7 +1789,6 @@ config ARCH_STM32 > select CPU_V7M > select DM > select DM_SERIAL > - select GPIO_EXTRA_HEADER > imply CMD_DM > > config ARCH_STI > @@ -1815,7 +1814,6 @@ config ARCH_STM32MP > select DM_GPIO > select DM_RESET > select DM_SERIAL > - select GPIO_EXTRA_HEADER > select MISC > select OF_CONTROL > select OF_LIBFDT > diff --git a/arch/arm/include/asm/arch-stm32f4/gpio.h > b/arch/arm/include/asm/arch-stm32f4/gpio.h > deleted file mode 100644 > index 490f686a85..0000000000 > --- a/arch/arm/include/asm/arch-stm32f4/gpio.h > +++ /dev/null > @@ -1,15 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0+ */ > -/* > - * (C) Copyright 2011 > - * Yuri Tikhonov, Emcraft Systems, y...@emcraft.com > - * > - * (C) Copyright 2015 > - * Kamil Lulko, <kamil.lu...@gmail.com> > - */ > - > -#ifndef _STM32_GPIO_H_ > -#define _STM32_GPIO_H_ > - > -#include <asm/arch-stm32/gpio.h> > - > -#endif /* _STM32_GPIO_H_ */ > diff --git a/arch/arm/include/asm/arch-stm32f7/gpio.h > b/arch/arm/include/asm/arch-stm32f7/gpio.h > deleted file mode 100644 > index 21f4e0fd27..0000000000 > --- a/arch/arm/include/asm/arch-stm32f7/gpio.h > +++ /dev/null > @@ -1,12 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0+ */ > -/* > - * Copyright (C) 2016, STMicroelectronics - All Rights Reserved > - * Author(s): Vikas Manocha, <vikas.mano...@st.com> for STMicroelectronics. > - */ > - > -#ifndef _STM32_GPIO_H_ > -#define _STM32_GPIO_H_ > - > -#include <asm/arch-stm32/gpio.h> > - > -#endif /* _STM32_GPIO_H_ */ > diff --git a/arch/arm/include/asm/arch-stm32h7/gpio.h > b/arch/arm/include/asm/arch-stm32h7/gpio.h > deleted file mode 100644 > index 4f57f175ff..0000000000 > --- a/arch/arm/include/asm/arch-stm32h7/gpio.h > +++ /dev/null > @@ -1,12 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0+ */ > -/* > - * Copyright (C) 2017, STMicroelectronics - All Rights Reserved > - * Author(s): Patrice Chotard, <patrice.chot...@foss.st.com> for > STMicroelectronics. > - */ > - > -#ifndef _STM32_GPIO_H_ > -#define _STM32_GPIO_H_ > - > -#include <asm/arch-stm32/gpio.h> > - > -#endif /* _STM32_GPIO_H_ */ > diff --git a/arch/arm/mach-stm32mp/include/mach/gpio.h > b/arch/arm/mach-stm32mp/include/mach/gpio.h > deleted file mode 100644 > index 7a0f293519..0000000000 > --- a/arch/arm/mach-stm32mp/include/mach/gpio.h > +++ /dev/null > @@ -1,87 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0+ */ > -/* > - * (C) Copyright 2016 > - * Vikas Manocha, <vikas.mano...@st.com> > - */ > - > -#ifndef _STM32_GPIO_H_ > -#define _STM32_GPIO_H_ > -#include <asm/gpio.h> > - > -enum stm32_gpio_mode { > - STM32_GPIO_MODE_IN = 0, > - STM32_GPIO_MODE_OUT, > - STM32_GPIO_MODE_AF, > - STM32_GPIO_MODE_AN > -}; > - > -enum stm32_gpio_otype { > - STM32_GPIO_OTYPE_PP = 0, > - STM32_GPIO_OTYPE_OD > -}; > - > -enum stm32_gpio_speed { > - STM32_GPIO_SPEED_2M = 0, > - STM32_GPIO_SPEED_25M, > - STM32_GPIO_SPEED_50M, > - STM32_GPIO_SPEED_100M > -}; > - > -enum stm32_gpio_pupd { > - STM32_GPIO_PUPD_NO = 0, > - STM32_GPIO_PUPD_UP, > - STM32_GPIO_PUPD_DOWN > -}; > - > -enum stm32_gpio_af { > - STM32_GPIO_AF0 = 0, > - STM32_GPIO_AF1, > - STM32_GPIO_AF2, > - STM32_GPIO_AF3, > - STM32_GPIO_AF4, > - STM32_GPIO_AF5, > - STM32_GPIO_AF6, > - STM32_GPIO_AF7, > - STM32_GPIO_AF8, > - STM32_GPIO_AF9, > - STM32_GPIO_AF10, > - STM32_GPIO_AF11, > - STM32_GPIO_AF12, > - STM32_GPIO_AF13, > - STM32_GPIO_AF14, > - STM32_GPIO_AF15 > -}; > - > -struct stm32_gpio_dsc { > - u8 port; > - u8 pin; > -}; > - > -struct stm32_gpio_ctl { > - enum stm32_gpio_mode mode; > - enum stm32_gpio_otype otype; > - enum stm32_gpio_speed speed; > - enum stm32_gpio_pupd pupd; > - enum stm32_gpio_af af; > -}; > - > -struct stm32_gpio_regs { > - u32 moder; /* GPIO port mode */ > - u32 otyper; /* GPIO port output type */ > - u32 ospeedr; /* GPIO port output speed */ > - u32 pupdr; /* GPIO port pull-up/pull-down */ > - u32 idr; /* GPIO port input data */ > - u32 odr; /* GPIO port output data */ > - u32 bsrr; /* GPIO port bit set/reset */ > - u32 lckr; /* GPIO port configuration lock */ > - u32 afr[2]; /* GPIO alternate function */ > -}; > - > -struct stm32_gpio_priv { > - struct stm32_gpio_regs *regs; > - unsigned int gpio_range; > -}; > - > -int stm32_offset_to_index(struct udevice *dev, unsigned int offset); > - > -#endif /* _STM32_GPIO_H_ */ > diff --git a/board/st/stm32f746-disco/stm32f746-disco.c > b/board/st/stm32f746-disco/stm32f746-disco.c > index 08c2102c4f..95d83e73ee 100644 > --- a/board/st/stm32f746-disco/stm32f746-disco.c > +++ b/board/st/stm32f746-disco/stm32f746-disco.c > @@ -21,7 +21,6 @@ > #include <asm/io.h> > #include <asm/armv7m.h> > #include <asm/arch/stm32.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/syscfg.h> > #include <asm/gpio.h> > #include <linux/delay.h> > diff --git a/drivers/gpio/stm32_gpio.c b/drivers/gpio/stm32_gpio.c > index 125c237551..8667ed3835 100644 > --- a/drivers/gpio/stm32_gpio.c > +++ b/drivers/gpio/stm32_gpio.c > @@ -11,7 +11,6 @@ > #include <dm.h> > #include <fdtdec.h> > #include <log.h> > -#include <asm/arch/gpio.h> > #include <asm/arch/stm32.h> > #include <asm/gpio.h> > #include <asm/io.h> > @@ -20,6 +19,8 @@ > #include <linux/errno.h> > #include <linux/io.h> > > +#include "stm32_gpio_priv.h" > + > #define STM32_GPIOS_PER_BANK 16 > > #define MODE_BITS(gpio_pin) ((gpio_pin) * 2) > diff --git a/arch/arm/include/asm/arch-stm32/gpio.h > b/drivers/gpio/stm32_gpio_priv.h > similarity index 94% > rename from arch/arm/include/asm/arch-stm32/gpio.h > rename to drivers/gpio/stm32_gpio_priv.h > index 233ce278a7..d3d8f2ed5d 100644 > --- a/arch/arm/include/asm/arch-stm32/gpio.h > +++ b/drivers/gpio/stm32_gpio_priv.h > @@ -4,8 +4,8 @@ > * Author(s): Vikas Manocha, <vikas.mano...@st.com> for STMicroelectronics. > */ > > -#ifndef _GPIO_H_ > -#define _GPIO_H_ > +#ifndef _STM32_GPIO_PRIV_H_ > +#define _STM32_GPIO_PRIV_H_ > > enum stm32_gpio_mode { > STM32_GPIO_MODE_IN = 0, > @@ -83,4 +83,4 @@ struct stm32_gpio_priv { > > int stm32_offset_to_index(struct udevice *dev, unsigned int offset); > > -#endif /* _GPIO_H_ */ > +#endif /* _STM32_GPIO_PRIV_H_ */ > diff --git a/drivers/pinctrl/pinctrl_stm32.c b/drivers/pinctrl/pinctrl_stm32.c > index 6c98538f56..5729799b12 100644 > --- a/drivers/pinctrl/pinctrl_stm32.c > +++ b/drivers/pinctrl/pinctrl_stm32.c > @@ -10,7 +10,6 @@ > #include <hwspinlock.h> > #include <log.h> > #include <malloc.h> > -#include <asm/arch/gpio.h> > #include <asm/gpio.h> > #include <asm/io.h> > #include <dm/device_compat.h> > @@ -20,6 +19,8 @@ > #include <linux/err.h> > #include <linux/libfdt.h> > > +#include "../gpio/stm32_gpio_priv.h" > + > #define MAX_PINS_ONE_IP 70 > #define MODE_BITS_MASK 3 > #define OSPEED_MASK 3 > diff --git a/drivers/video/dw_mipi_dsi.c b/drivers/video/dw_mipi_dsi.c > index 9ae09eec12..a5b38acabd 100644 > --- a/drivers/video/dw_mipi_dsi.c > +++ b/drivers/video/dw_mipi_dsi.c > @@ -17,7 +17,6 @@ > #include <panel.h> > #include <video.h> > #include <asm/io.h> > -#include <asm/arch/gpio.h> > #include <dm/device-internal.h> > #include <dm/device_compat.h> > #include <linux/bitops.h> > diff --git a/drivers/video/stm32/stm32_dsi.c b/drivers/video/stm32/stm32_dsi.c > index 4027e978c8..134abd93e1 100644 > --- a/drivers/video/stm32/stm32_dsi.c > +++ b/drivers/video/stm32/stm32_dsi.c > @@ -21,7 +21,6 @@ > #include <video.h> > #include <video_bridge.h> > #include <asm/io.h> > -#include <asm/arch/gpio.h> > #include <dm/device-internal.h> > #include <dm/device_compat.h> > #include <dm/lists.h> > diff --git a/drivers/video/stm32/stm32_ltdc.c > b/drivers/video/stm32/stm32_ltdc.c > index f55a39498e..65c882d9f1 100644 > --- a/drivers/video/stm32/stm32_ltdc.c > +++ b/drivers/video/stm32/stm32_ltdc.c > @@ -17,7 +17,6 @@ > #include <video.h> > #include <video_bridge.h> > #include <asm/io.h> > -#include <asm/arch/gpio.h> > #include <dm/device-internal.h> > #include <dm/device_compat.h> > #include <linux/bitops.h> > Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com>
Thanks Patrice