gpio: stm32: create include file for driver private data
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Fri, 22 Oct 2021 18:12:34 +0000 (20:12 +0200)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Wed, 10 Nov 2021 16:03:36 +0000 (17:03 +0100)
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.delaunay@foss.st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
12 files changed:
arch/arm/Kconfig
arch/arm/include/asm/arch-stm32f4/gpio.h [deleted file]
arch/arm/include/asm/arch-stm32f7/gpio.h [deleted file]
arch/arm/include/asm/arch-stm32h7/gpio.h [deleted file]
arch/arm/mach-stm32mp/include/mach/gpio.h [deleted file]
board/st/stm32f746-disco/stm32f746-disco.c
drivers/gpio/stm32_gpio.c
drivers/gpio/stm32_gpio_priv.h [moved from arch/arm/include/asm/arch-stm32/gpio.h with 94% similarity]
drivers/pinctrl/pinctrl_stm32.c
drivers/video/dw_mipi_dsi.c
drivers/video/stm32/stm32_dsi.c
drivers/video/stm32/stm32_ltdc.c

index b4808d4..9f20f32 100644 (file)
@@ -1810,7 +1810,6 @@ config ARCH_STM32
        select CPU_V7M
        select DM
        select DM_SERIAL
-       select GPIO_EXTRA_HEADER
        imply CMD_DM
 
 config ARCH_STI
@@ -1836,7 +1835,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 (file)
index 490f686..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * (C) Copyright 2011
- * Yuri Tikhonov, Emcraft Systems, yur@emcraft.com
- *
- * (C) Copyright 2015
- * Kamil Lulko, <kamil.lulko@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 (file)
index 21f4e0f..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2016, STMicroelectronics - All Rights Reserved
- * Author(s): Vikas Manocha, <vikas.manocha@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 (file)
index 4f57f17..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2017, STMicroelectronics - All Rights Reserved
- * Author(s): Patrice Chotard, <patrice.chotard@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 (file)
index 7a0f293..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * (C) Copyright 2016
- * Vikas Manocha, <vikas.manocha@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_ */
index 08c2102..95d83e7 100644 (file)
@@ -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>
index 125c237..8667ed3 100644 (file)
@@ -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)
similarity index 94%
rename from arch/arm/include/asm/arch-stm32/gpio.h
rename to drivers/gpio/stm32_gpio_priv.h
index 233ce27..d3d8f2e 100644 (file)
@@ -4,8 +4,8 @@
  * Author(s): Vikas Manocha, <vikas.manocha@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_ */
index 6c98538..5729799 100644 (file)
@@ -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
index 9ae09ee..a5b38ac 100644 (file)
@@ -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>
index 4027e97..134abd9 100644 (file)
@@ -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>
index f55a394..65c882d 100644 (file)
@@ -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>