* [U-Boot] [PATCH 0/5] STM32: Clean unused and factorize .h files in arch-stm32
@ 2018-02-07 15:50 patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 1/5] arch-stm32f4: Remove fmc.h file patrice.chotard at st.com
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2018-02-07 15:50 UTC (permalink / raw)
To: u-boot
From: Patrice Chotard <patrice.chotard@st.com>
Removes unused .h files in arch/arm/include/asm/arch-stm32xx
Factorize and clean some .h files to avoid to duplicate defines in
separate .h files
Patrice Chotard (5):
arch-stm32f4: Remove fmc.h file
arch-stm32: Move gpio.h for STM32 SoCs in include/asm/
arch-stm32: Factorize stm32.h for STM32F4 and F7
arch-stm32: Remove stm32_periph.h
arch-stm32: Clean arch-stm32f7/syscfg.h
arch/arm/include/asm/arch-stm32f4/fmc.h | 75 ------------
arch/arm/include/asm/arch-stm32f4/gpio.h | 146 +----------------------
arch/arm/include/asm/arch-stm32f4/stm32.h | 14 +--
arch/arm/include/asm/arch-stm32f4/stm32_periph.h | 38 ------
arch/arm/include/asm/arch-stm32f7/gpio.h | 116 +-----------------
arch/arm/include/asm/arch-stm32f7/stm32.h | 45 +------
arch/arm/include/asm/arch-stm32f7/stm32_periph.h | 23 ----
arch/arm/include/asm/arch-stm32f7/syscfg.h | 9 --
arch/arm/include/asm/arch-stm32h7/gpio.h | 115 +-----------------
arch/arm/include/asm/stm32_gpio.h | 115 ++++++++++++++++++
arch/arm/include/asm/stm32f.h | 22 ++++
board/st/stm32f746-disco/stm32f746-disco.c | 1 -
drivers/mtd/stm32_flash.c | 2 +-
13 files changed, 144 insertions(+), 577 deletions(-)
delete mode 100644 arch/arm/include/asm/arch-stm32f4/fmc.h
delete mode 100644 arch/arm/include/asm/arch-stm32f4/stm32_periph.h
delete mode 100644 arch/arm/include/asm/arch-stm32f7/stm32_periph.h
create mode 100644 arch/arm/include/asm/stm32_gpio.h
create mode 100644 arch/arm/include/asm/stm32f.h
--
1.9.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 1/5] arch-stm32f4: Remove fmc.h file
2018-02-07 15:50 [U-Boot] [PATCH 0/5] STM32: Clean unused and factorize .h files in arch-stm32 patrice.chotard at st.com
@ 2018-02-07 15:50 ` patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/ patrice.chotard at st.com
` (3 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2018-02-07 15:50 UTC (permalink / raw)
To: u-boot
From: Patrice Chotard <patrice.chotard@st.com>
fmc.h file is no more used, remove it.
All FMC related defines are declared in drivers/ram/stm32_sdram.c
which is common to all STM32 SoCs.
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
arch/arm/include/asm/arch-stm32f4/fmc.h | 75 ---------------------------------
1 file changed, 75 deletions(-)
delete mode 100644 arch/arm/include/asm/arch-stm32f4/fmc.h
diff --git a/arch/arm/include/asm/arch-stm32f4/fmc.h b/arch/arm/include/asm/arch-stm32f4/fmc.h
deleted file mode 100644
index 7dd5077d0c34..000000000000
--- a/arch/arm/include/asm/arch-stm32f4/fmc.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * (C) Copyright 2013
- * Pavel Boldin, Emcraft Systems, paboldin at emcraft.com
- *
- * (C) Copyright 2015
- * Kamil Lulko, <kamil.lulko@gmail.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#ifndef _MACH_FMC_H_
-#define _MACH_FMC_H_
-
-struct stm32_fmc_regs {
- u32 sdcr1; /* Control register 1 */
- u32 sdcr2; /* Control register 2 */
- u32 sdtr1; /* Timing register 1 */
- u32 sdtr2; /* Timing register 2 */
- u32 sdcmr; /* Mode register */
- u32 sdrtr; /* Refresh timing register */
- u32 sdsr; /* Status register */
-};
-
-/*
- * FMC registers base
- */
-#define STM32_SDRAM_FMC_BASE 0xA0000140
-#define STM32_SDRAM_FMC ((struct stm32_fmc_regs *)STM32_SDRAM_FMC_BASE)
-
-/* Control register SDCR */
-#define FMC_SDCR_RPIPE_SHIFT 13 /* RPIPE bit shift */
-#define FMC_SDCR_RBURST_SHIFT 12 /* RBURST bit shift */
-#define FMC_SDCR_SDCLK_SHIFT 10 /* SDRAM clock divisor shift */
-#define FMC_SDCR_WP_SHIFT 9 /* Write protection shift */
-#define FMC_SDCR_CAS_SHIFT 7 /* CAS latency shift */
-#define FMC_SDCR_NB_SHIFT 6 /* Number of banks shift */
-#define FMC_SDCR_MWID_SHIFT 4 /* Memory width shift */
-#define FMC_SDCR_NR_SHIFT 2 /* Number of row address bits shift */
-#define FMC_SDCR_NC_SHIFT 0 /* Number of col address bits shift */
-
-/* Timings register SDTR */
-#define FMC_SDTR_TMRD_SHIFT 0 /* Load mode register to active */
-#define FMC_SDTR_TXSR_SHIFT 4 /* Exit self-refresh time */
-#define FMC_SDTR_TRAS_SHIFT 8 /* Self-refresh time */
-#define FMC_SDTR_TRC_SHIFT 12 /* Row cycle delay */
-#define FMC_SDTR_TWR_SHIFT 16 /* Recovery delay */
-#define FMC_SDTR_TRP_SHIFT 20 /* Row precharge delay */
-#define FMC_SDTR_TRCD_SHIFT 24 /* Row-to-column delay */
-
-
-#define FMC_SDCMR_NRFS_SHIFT 5
-
-#define FMC_SDCMR_MODE_NORMAL 0
-#define FMC_SDCMR_MODE_START_CLOCK 1
-#define FMC_SDCMR_MODE_PRECHARGE 2
-#define FMC_SDCMR_MODE_AUTOREFRESH 3
-#define FMC_SDCMR_MODE_WRITE_MODE 4
-#define FMC_SDCMR_MODE_SELFREFRESH 5
-#define FMC_SDCMR_MODE_POWERDOWN 6
-
-#define FMC_SDCMR_BANK_1 (1 << 4)
-#define FMC_SDCMR_BANK_2 (1 << 3)
-
-#define FMC_SDCMR_MODE_REGISTER_SHIFT 9
-
-#define FMC_SDSR_BUSY (1 << 5)
-
-#define FMC_BUSY_WAIT() do { \
- __asm__ __volatile__ ("dsb" : : : "memory"); \
- while (STM32_SDRAM_FMC->sdsr & FMC_SDSR_BUSY) \
- ; \
- } while (0)
-
-
-#endif /* _MACH_FMC_H_ */
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/
2018-02-07 15:50 [U-Boot] [PATCH 0/5] STM32: Clean unused and factorize .h files in arch-stm32 patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 1/5] arch-stm32f4: Remove fmc.h file patrice.chotard at st.com
@ 2018-02-07 15:50 ` patrice.chotard at st.com
2018-02-07 19:28 ` Vikas Manocha
2018-02-07 15:50 ` [U-Boot] [PATCH 3/5] arch-stm32: Factorize stm32.h for STM32F4 and F7 patrice.chotard at st.com
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: patrice.chotard at st.com @ 2018-02-07 15:50 UTC (permalink / raw)
To: u-boot
From: Patrice Chotard <patrice.chotard@st.com>
Instead to have 3 identical gpio.h for all STM32 SoCs,
migrate them in one file in include/asm.
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
arch/arm/include/asm/arch-stm32f4/gpio.h | 146 +------------------------------
arch/arm/include/asm/arch-stm32f7/gpio.h | 116 +-----------------------
arch/arm/include/asm/arch-stm32h7/gpio.h | 115 +-----------------------
arch/arm/include/asm/stm32_gpio.h | 115 ++++++++++++++++++++++++
4 files changed, 118 insertions(+), 374 deletions(-)
create mode 100644 arch/arm/include/asm/stm32_gpio.h
diff --git a/arch/arm/include/asm/arch-stm32f4/gpio.h b/arch/arm/include/asm/arch-stm32f4/gpio.h
index 6173fa130000..bb4427e6f4ac 100644
--- a/arch/arm/include/asm/arch-stm32f4/gpio.h
+++ b/arch/arm/include/asm/arch-stm32f4/gpio.h
@@ -11,150 +11,6 @@
#ifndef _STM32_GPIO_H_
#define _STM32_GPIO_H_
-#if (CONFIG_STM32_USART == 1)
-#define STM32_GPIO_PORT_X STM32_GPIO_PORT_A
-#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_9
-#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_10
-#define STM32_GPIO_USART STM32_GPIO_AF7
-
-#elif (CONFIG_STM32_USART == 2)
-#define STM32_GPIO_PORT_X STM32_GPIO_PORT_D
-#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_5
-#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_6
-#define STM32_GPIO_USART STM32_GPIO_AF7
-
-#elif (CONFIG_STM32_USART == 3)
-#define STM32_GPIO_PORT_X STM32_GPIO_PORT_C
-#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_10
-#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_11
-#define STM32_GPIO_USART STM32_GPIO_AF7
-
-#elif (CONFIG_STM32_USART == 6)
-#define STM32_GPIO_PORT_X STM32_GPIO_PORT_G
-#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_14
-#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_9
-#define STM32_GPIO_USART STM32_GPIO_AF8
-
-#else
-#define STM32_GPIO_PORT_X STM32_GPIO_PORT_A
-#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_9
-#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_10
-#define STM32_GPIO_USART STM32_GPIO_AF7
-
-#endif
-
-enum stm32_gpio_port {
- STM32_GPIO_PORT_A = 0,
- STM32_GPIO_PORT_B,
- STM32_GPIO_PORT_C,
- STM32_GPIO_PORT_D,
- STM32_GPIO_PORT_E,
- STM32_GPIO_PORT_F,
- STM32_GPIO_PORT_G,
- STM32_GPIO_PORT_H,
- STM32_GPIO_PORT_I
-};
-
-enum stm32_gpio_pin {
- STM32_GPIO_PIN_0 = 0,
- STM32_GPIO_PIN_1,
- STM32_GPIO_PIN_2,
- STM32_GPIO_PIN_3,
- STM32_GPIO_PIN_4,
- STM32_GPIO_PIN_5,
- STM32_GPIO_PIN_6,
- STM32_GPIO_PIN_7,
- STM32_GPIO_PIN_8,
- STM32_GPIO_PIN_9,
- STM32_GPIO_PIN_10,
- STM32_GPIO_PIN_11,
- STM32_GPIO_PIN_12,
- STM32_GPIO_PIN_13,
- STM32_GPIO_PIN_14,
- STM32_GPIO_PIN_15
-};
-
-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 {
- enum stm32_gpio_port port;
- enum stm32_gpio_pin 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;
-};
-
-static inline unsigned stm32_gpio_to_port(unsigned gpio)
-{
- return gpio / 16;
-}
-
-static inline unsigned stm32_gpio_to_pin(unsigned gpio)
-{
- return gpio % 16;
-}
+#include <asm/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
index 68ecdc89e6f3..c5de7981c0d0 100644
--- a/arch/arm/include/asm/arch-stm32f7/gpio.h
+++ b/arch/arm/include/asm/arch-stm32f7/gpio.h
@@ -7,120 +7,6 @@
#ifndef _STM32_GPIO_H_
#define _STM32_GPIO_H_
-#include <asm/gpio.h>
-
-enum stm32_gpio_port {
- STM32_GPIO_PORT_A = 0,
- STM32_GPIO_PORT_B,
- STM32_GPIO_PORT_C,
- STM32_GPIO_PORT_D,
- STM32_GPIO_PORT_E,
- STM32_GPIO_PORT_F,
- STM32_GPIO_PORT_G,
- STM32_GPIO_PORT_H,
- STM32_GPIO_PORT_I
-};
-
-enum stm32_gpio_pin {
- STM32_GPIO_PIN_0 = 0,
- STM32_GPIO_PIN_1,
- STM32_GPIO_PIN_2,
- STM32_GPIO_PIN_3,
- STM32_GPIO_PIN_4,
- STM32_GPIO_PIN_5,
- STM32_GPIO_PIN_6,
- STM32_GPIO_PIN_7,
- STM32_GPIO_PIN_8,
- STM32_GPIO_PIN_9,
- STM32_GPIO_PIN_10,
- STM32_GPIO_PIN_11,
- STM32_GPIO_PIN_12,
- STM32_GPIO_PIN_13,
- STM32_GPIO_PIN_14,
- STM32_GPIO_PIN_15
-};
-
-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 {
- enum stm32_gpio_port port;
- enum stm32_gpio_pin 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;
-};
-
-static inline unsigned stm32_gpio_to_port(unsigned gpio)
-{
- return gpio / 16;
-}
-
-static inline unsigned stm32_gpio_to_pin(unsigned gpio)
-{
- return gpio % 16;
-}
+#include <asm/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
index 092bf3aaaca4..7846ff444006 100644
--- a/arch/arm/include/asm/arch-stm32h7/gpio.h
+++ b/arch/arm/include/asm/arch-stm32h7/gpio.h
@@ -7,120 +7,7 @@
#ifndef _STM32_GPIO_H_
#define _STM32_GPIO_H_
-#include <asm/gpio.h>
-enum stm32_gpio_port {
- STM32_GPIO_PORT_A = 0,
- STM32_GPIO_PORT_B,
- STM32_GPIO_PORT_C,
- STM32_GPIO_PORT_D,
- STM32_GPIO_PORT_E,
- STM32_GPIO_PORT_F,
- STM32_GPIO_PORT_G,
- STM32_GPIO_PORT_H,
- STM32_GPIO_PORT_I
-};
-
-enum stm32_gpio_pin {
- STM32_GPIO_PIN_0 = 0,
- STM32_GPIO_PIN_1,
- STM32_GPIO_PIN_2,
- STM32_GPIO_PIN_3,
- STM32_GPIO_PIN_4,
- STM32_GPIO_PIN_5,
- STM32_GPIO_PIN_6,
- STM32_GPIO_PIN_7,
- STM32_GPIO_PIN_8,
- STM32_GPIO_PIN_9,
- STM32_GPIO_PIN_10,
- STM32_GPIO_PIN_11,
- STM32_GPIO_PIN_12,
- STM32_GPIO_PIN_13,
- STM32_GPIO_PIN_14,
- STM32_GPIO_PIN_15
-};
-
-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 {
- enum stm32_gpio_port port;
- enum stm32_gpio_pin 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;
-};
-
-static inline unsigned stm32_gpio_to_port(unsigned gpio)
-{
- return gpio / 16;
-}
-
-static inline unsigned stm32_gpio_to_pin(unsigned gpio)
-{
- return gpio % 16;
-}
+#include <asm/stm32_gpio.h>
#endif /* _STM32_GPIO_H_ */
diff --git a/arch/arm/include/asm/stm32_gpio.h b/arch/arm/include/asm/stm32_gpio.h
new file mode 100644
index 000000000000..d24e8096acfe
--- /dev/null
+++ b/arch/arm/include/asm/stm32_gpio.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2016, STMicroelectronics - All Rights Reserved
+ * Author(s): Vikas Manocha, <vikas.manocha@st.com> for STMicroelectronics.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef _GPIO_H_
+#define _GPIO_H_
+
+enum stm32_gpio_port {
+ STM32_GPIO_PORT_A = 0,
+ STM32_GPIO_PORT_B,
+ STM32_GPIO_PORT_C,
+ STM32_GPIO_PORT_D,
+ STM32_GPIO_PORT_E,
+ STM32_GPIO_PORT_F,
+ STM32_GPIO_PORT_G,
+ STM32_GPIO_PORT_H,
+ STM32_GPIO_PORT_I
+};
+
+enum stm32_gpio_pin {
+ STM32_GPIO_PIN_0 = 0,
+ STM32_GPIO_PIN_1,
+ STM32_GPIO_PIN_2,
+ STM32_GPIO_PIN_3,
+ STM32_GPIO_PIN_4,
+ STM32_GPIO_PIN_5,
+ STM32_GPIO_PIN_6,
+ STM32_GPIO_PIN_7,
+ STM32_GPIO_PIN_8,
+ STM32_GPIO_PIN_9,
+ STM32_GPIO_PIN_10,
+ STM32_GPIO_PIN_11,
+ STM32_GPIO_PIN_12,
+ STM32_GPIO_PIN_13,
+ STM32_GPIO_PIN_14,
+ STM32_GPIO_PIN_15
+};
+
+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 {
+ enum stm32_gpio_port port;
+ enum stm32_gpio_pin 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;
+};
+
+#endif /* _GPIO_H_ */
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/5] arch-stm32: Factorize stm32.h for STM32F4 and F7
2018-02-07 15:50 [U-Boot] [PATCH 0/5] STM32: Clean unused and factorize .h files in arch-stm32 patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 1/5] arch-stm32f4: Remove fmc.h file patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/ patrice.chotard at st.com
@ 2018-02-07 15:50 ` patrice.chotard at st.com
2018-02-07 19:32 ` Vikas Manocha
2018-02-07 15:50 ` [U-Boot] [PATCH 4/5] arch-stm32: Remove stm32_periph.h patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 5/5] arch-stm32: Clean arch-stm32f7/syscfg.h patrice.chotard at st.com
4 siblings, 1 reply; 11+ messages in thread
From: patrice.chotard at st.com @ 2018-02-07 15:50 UTC (permalink / raw)
To: u-boot
From: Patrice Chotard <patrice.chotard@st.com>
For STM32F4 and F7 SoCx family, a specific stm32.h file exists.
Some common defines are duplicated or even unused in each of
these stm32.h.
Factorize all common definition in arch/arm/include/asm/stm32f.h and keep
specific definitions in each arch/arm/include/asm/arch-stm32fx/stm32.h.
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
arch/arm/include/asm/arch-stm32f4/stm32.h | 14 ++--------
arch/arm/include/asm/arch-stm32f7/stm32.h | 45 +------------------------------
arch/arm/include/asm/stm32f.h | 22 +++++++++++++++
drivers/mtd/stm32_flash.c | 2 +-
4 files changed, 26 insertions(+), 57 deletions(-)
create mode 100644 arch/arm/include/asm/stm32f.h
diff --git a/arch/arm/include/asm/arch-stm32f4/stm32.h b/arch/arm/include/asm/arch-stm32f4/stm32.h
index 763b18cb5412..86cca059075d 100644
--- a/arch/arm/include/asm/arch-stm32f4/stm32.h
+++ b/arch/arm/include/asm/arch-stm32f4/stm32.h
@@ -11,17 +11,12 @@
#ifndef _MACH_STM32_H_
#define _MACH_STM32_H_
+#include <asm/stm32f.h>
+
/*
* Peripheral memory map
*/
#define STM32_SYSMEM_BASE 0x1FFF0000
-#define STM32_PERIPH_BASE 0x40000000
-#define STM32_APB1PERIPH_BASE (STM32_PERIPH_BASE + 0x00000000)
-#define STM32_APB2PERIPH_BASE (STM32_PERIPH_BASE + 0x00010000)
-#define STM32_AHB1PERIPH_BASE (STM32_PERIPH_BASE + 0x00020000)
-#define STM32_AHB2PERIPH_BASE (STM32_PERIPH_BASE + 0x10000000)
-
-#define STM32_BUS_MASK 0xFFFF0000
/*
* Register maps
@@ -37,15 +32,10 @@ struct stm32_u_id_regs {
*/
#define STM32_U_ID_BASE (STM32_SYSMEM_BASE + 0x7A10)
#define STM32_U_ID ((struct stm32_u_id_regs *)STM32_U_ID_BASE)
-
-#define FLASH_CNTL_BASE (STM32_AHB1PERIPH_BASE + 0x3C00)
-
static const u32 sect_sz_kb[CONFIG_SYS_MAX_FLASH_SECT] = {
[0 ... 3] = 16 * 1024,
[4] = 64 * 1024,
[5 ... 11] = 128 * 1024
};
-void stm32_flash_latency_cfg(int latency);
-
#endif /* _MACH_STM32_H_ */
diff --git a/arch/arm/include/asm/arch-stm32f7/stm32.h b/arch/arm/include/asm/arch-stm32f7/stm32.h
index 40df89142608..3f097548d374 100644
--- a/arch/arm/include/asm/arch-stm32f7/stm32.h
+++ b/arch/arm/include/asm/arch-stm32f7/stm32.h
@@ -8,46 +8,7 @@
#ifndef _ASM_ARCH_HARDWARE_H
#define _ASM_ARCH_HARDWARE_H
-/* STM32F746 */
-#define ITCM_FLASH_BASE 0x00200000UL
-#define AXIM_FLASH_BASE 0x08000000UL
-
-#define ITCM_SRAM_BASE 0x00000000UL
-#define DTCM_SRAM_BASE 0x20000000UL
-#define SRAM1_BASE 0x20010000UL
-#define SRAM2_BASE 0x2004C000UL
-
-#define PERIPH_BASE 0x40000000UL
-
-#define APB1_PERIPH_BASE (PERIPH_BASE + 0x00000000)
-#define APB2_PERIPH_BASE (PERIPH_BASE + 0x00010000)
-#define AHB1_PERIPH_BASE (PERIPH_BASE + 0x00020000)
-#define AHB2_PERIPH_BASE (PERIPH_BASE + 0x10000000)
-#define AHB3_PERIPH_BASE (PERIPH_BASE + 0x20000000)
-
-#define USART2_BASE (APB1_PERIPH_BASE + 0x4400)
-#define USART3_BASE (APB1_PERIPH_BASE + 0x4800)
-#define PWR_BASE (APB1_PERIPH_BASE + 0x7000)
-
-#define USART1_BASE (APB2_PERIPH_BASE + 0x1000)
-#define USART6_BASE (APB2_PERIPH_BASE + 0x1400)
-#define STM32_SYSCFG_BASE (APB2_PERIPH_BASE + 0x3800)
-
-#define STM32_GPIOA_BASE (AHB1_PERIPH_BASE + 0x0000)
-#define STM32_GPIOB_BASE (AHB1_PERIPH_BASE + 0x0400)
-#define STM32_GPIOC_BASE (AHB1_PERIPH_BASE + 0x0800)
-#define STM32_GPIOD_BASE (AHB1_PERIPH_BASE + 0x0C00)
-#define STM32_GPIOE_BASE (AHB1_PERIPH_BASE + 0x1000)
-#define STM32_GPIOF_BASE (AHB1_PERIPH_BASE + 0x1400)
-#define STM32_GPIOG_BASE (AHB1_PERIPH_BASE + 0x1800)
-#define STM32_GPIOH_BASE (AHB1_PERIPH_BASE + 0x1C00)
-#define STM32_GPIOI_BASE (AHB1_PERIPH_BASE + 0x2000)
-#define STM32_GPIOJ_BASE (AHB1_PERIPH_BASE + 0x2400)
-#define STM32_GPIOK_BASE (AHB1_PERIPH_BASE + 0x2800)
-#define FLASH_CNTL_BASE (AHB1_PERIPH_BASE + 0x3C00)
-
-
-#define SDRAM_FMC_BASE (AHB3_PERIPH_BASE + 0x40000140)
+#include <asm/stm32f.h>
static const u32 sect_sz_kb[CONFIG_SYS_MAX_FLASH_SECT] = {
[0 ... 3] = 32 * 1024,
@@ -55,8 +16,4 @@ static const u32 sect_sz_kb[CONFIG_SYS_MAX_FLASH_SECT] = {
[5 ... 7] = 256 * 1024
};
-#define STM32_BUS_MASK GENMASK(31, 16)
-
-void stm32_flash_latency_cfg(int latency);
-
#endif /* _ASM_ARCH_HARDWARE_H */
diff --git a/arch/arm/include/asm/stm32f.h b/arch/arm/include/asm/stm32f.h
new file mode 100644
index 000000000000..7bea20b4d06a
--- /dev/null
+++ b/arch/arm/include/asm/stm32f.h
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2018, STMicroelectronics - All Rights Reserved
+ * Author(s): Patrice Chotard, <patrice.chotard@st.com> for STMicroelectronics.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef _ASM_ARCH_STM32F_H
+#define _ASM_ARCH_STM32F_H
+
+#define STM32_PERIPH_BASE 0x40000000UL
+
+#define STM32_APB2_PERIPH_BASE (STM32_PERIPH_BASE + 0x00010000)
+#define STM32_AHB1_PERIPH_BASE (STM32_PERIPH_BASE + 0x00020000)
+
+#define STM32_SYSCFG_BASE (STM32_APB2_PERIPH_BASE + 0x3800)
+#define STM32_FLASH_CNTL_BASE (STM32_AHB1_PERIPH_BASE + 0x3C00)
+
+void stm32_flash_latency_cfg(int latency);
+
+#endif /* _ASM_ARCH_STM32F_H */
+
diff --git a/drivers/mtd/stm32_flash.c b/drivers/mtd/stm32_flash.c
index 472499d83c3b..a82814272e21 100644
--- a/drivers/mtd/stm32_flash.c
+++ b/drivers/mtd/stm32_flash.c
@@ -12,7 +12,7 @@
flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];
-#define STM32_FLASH ((struct stm32_flash_regs *)FLASH_CNTL_BASE)
+#define STM32_FLASH ((struct stm32_flash_regs *)STM32_FLASH_CNTL_BASE)
void stm32_flash_latency_cfg(int latency)
{
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 4/5] arch-stm32: Remove stm32_periph.h
2018-02-07 15:50 [U-Boot] [PATCH 0/5] STM32: Clean unused and factorize .h files in arch-stm32 patrice.chotard at st.com
` (2 preceding siblings ...)
2018-02-07 15:50 ` [U-Boot] [PATCH 3/5] arch-stm32: Factorize stm32.h for STM32F4 and F7 patrice.chotard at st.com
@ 2018-02-07 15:50 ` patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 5/5] arch-stm32: Clean arch-stm32f7/syscfg.h patrice.chotard at st.com
4 siblings, 0 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2018-02-07 15:50 UTC (permalink / raw)
To: u-boot
From: Patrice Chotard <patrice.chotard@st.com>
Remove arch/arm/include/asm/arch-stm32fx/stm32_periph.h
as all defines or enums are no more used.
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
arch/arm/include/asm/arch-stm32f4/stm32_periph.h | 38 ------------------------
arch/arm/include/asm/arch-stm32f7/stm32_periph.h | 23 --------------
board/st/stm32f746-disco/stm32f746-disco.c | 1 -
3 files changed, 62 deletions(-)
delete mode 100644 arch/arm/include/asm/arch-stm32f4/stm32_periph.h
delete mode 100644 arch/arm/include/asm/arch-stm32f7/stm32_periph.h
diff --git a/arch/arm/include/asm/arch-stm32f4/stm32_periph.h b/arch/arm/include/asm/arch-stm32f4/stm32_periph.h
deleted file mode 100644
index fa45a5c0f1cb..000000000000
--- a/arch/arm/include/asm/arch-stm32f4/stm32_periph.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2016, STMicroelectronics - All Rights Reserved
- * Author(s): Vikas Manocha, <vikas.manocha@st.com> for STMicroelectronics.
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#ifndef __ASM_ARM_ARCH_PERIPH_H
-#define __ASM_ARM_ARCH_PERIPH_H
-
-/*
- * Peripherals required for pinmux configuration. List will
- * grow with support for more devices getting added.
- * Numbering based on interrupt table.
- *
- */
-enum periph_id {
- UART1_GPIOA_9_10 = 0,
- UART2_GPIOD_5_6,
-};
-
-enum periph_clock {
- USART1_CLOCK_CFG = 0,
- USART2_CLOCK_CFG,
- GPIO_A_CLOCK_CFG,
- GPIO_B_CLOCK_CFG,
- GPIO_C_CLOCK_CFG,
- GPIO_D_CLOCK_CFG,
- GPIO_E_CLOCK_CFG,
- GPIO_F_CLOCK_CFG,
- GPIO_G_CLOCK_CFG,
- GPIO_H_CLOCK_CFG,
- GPIO_I_CLOCK_CFG,
- GPIO_J_CLOCK_CFG,
- GPIO_K_CLOCK_CFG,
-};
-
-#endif /* __ASM_ARM_ARCH_PERIPH_H */
diff --git a/arch/arm/include/asm/arch-stm32f7/stm32_periph.h b/arch/arm/include/asm/arch-stm32f7/stm32_periph.h
deleted file mode 100644
index 38d4ade13d2f..000000000000
--- a/arch/arm/include/asm/arch-stm32f7/stm32_periph.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2016, STMicroelectronics - All Rights Reserved
- * Author(s): Vikas Manocha, <vikas.manocha@st.com> for STMicroelectronics.
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#ifndef __ASM_ARM_ARCH_PERIPH_H
-#define __ASM_ARM_ARCH_PERIPH_H
-
-/*
- * Peripherals required for pinmux configuration. List will
- * grow with support for more devices getting added.
- * Numbering based on interrupt table.
- *
- */
-enum periph_id {
- PERIPH_ID_USART1 = 37,
-
- PERIPH_ID_QUADSPI = 92,
-};
-
-#endif /* __ASM_ARM_ARCH_PERIPH_H */
diff --git a/board/st/stm32f746-disco/stm32f746-disco.c b/board/st/stm32f746-disco/stm32f746-disco.c
index ec39468fb8a2..05b316fe90a4 100644
--- a/board/st/stm32f746-disco/stm32f746-disco.c
+++ b/board/st/stm32f746-disco/stm32f746-disco.c
@@ -13,7 +13,6 @@
#include <asm/armv7m.h>
#include <asm/arch/stm32.h>
#include <asm/arch/gpio.h>
-#include <asm/arch/stm32_periph.h>
#include <asm/arch/syscfg.h>
#include <asm/gpio.h>
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 5/5] arch-stm32: Clean arch-stm32f7/syscfg.h
2018-02-07 15:50 [U-Boot] [PATCH 0/5] STM32: Clean unused and factorize .h files in arch-stm32 patrice.chotard at st.com
` (3 preceding siblings ...)
2018-02-07 15:50 ` [U-Boot] [PATCH 4/5] arch-stm32: Remove stm32_periph.h patrice.chotard at st.com
@ 2018-02-07 15:50 ` patrice.chotard at st.com
4 siblings, 0 replies; 11+ messages in thread
From: patrice.chotard at st.com @ 2018-02-07 15:50 UTC (permalink / raw)
To: u-boot
From: Patrice Chotard <patrice.chotard@st.com>
Remove all unused defines
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
arch/arm/include/asm/arch-stm32f7/syscfg.h | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/arch/arm/include/asm/arch-stm32f7/syscfg.h b/arch/arm/include/asm/arch-stm32f7/syscfg.h
index 49e78f203dcd..310eec584f20 100644
--- a/arch/arm/include/asm/arch-stm32f7/syscfg.h
+++ b/arch/arm/include/asm/arch-stm32f7/syscfg.h
@@ -23,16 +23,7 @@ struct stm32_syscfg_regs {
*/
#define STM32_SYSCFG ((struct stm32_syscfg_regs *)STM32_SYSCFG_BASE)
-/* SYSCFG memory remap register */
-#define SYSCFG_MEMRMP_MEM_BOOT BIT(0)
-#define SYSCFG_MEMRMP_SWP_FMC BIT(10)
-
/* SYSCFG peripheral mode configuration register */
-#define SYSCFG_PMC_ADCXDC2 BIT(16)
#define SYSCFG_PMC_MII_RMII_SEL BIT(23)
-/* Compensation cell control register */
-#define SYSCFG_CMPCR_CMP_PD BIT(0)
-#define SYSCFG_CMPCR_READY BIT(8)
-
#endif
--
1.9.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/
2018-02-07 15:50 ` [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/ patrice.chotard at st.com
@ 2018-02-07 19:28 ` Vikas Manocha
2018-02-08 13:35 ` Patrice CHOTARD
0 siblings, 1 reply; 11+ messages in thread
From: Vikas Manocha @ 2018-02-07 19:28 UTC (permalink / raw)
To: u-boot
Hi Patrice,
On 02/07/2018 07:50 AM, patrice.chotard at st.com wrote:
> From: Patrice Chotard <patrice.chotard@st.com>
>
> Instead to have 3 identical gpio.h for all STM32 SoCs,
> migrate them in one file in include/asm.
good move to consolidate these headers.
One comment below.
>
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
> ---
> arch/arm/include/asm/arch-stm32f4/gpio.h | 146 +------------------------------
> arch/arm/include/asm/arch-stm32f7/gpio.h | 116 +-----------------------
> arch/arm/include/asm/arch-stm32h7/gpio.h | 115 +-----------------------
> arch/arm/include/asm/stm32_gpio.h | 115 ++++++++++++++++++++++++
> 4 files changed, 118 insertions(+), 374 deletions(-)
> create mode 100644 arch/arm/include/asm/stm32_gpio.h
>
> diff --git a/arch/arm/include/asm/arch-stm32f4/gpio.h b/arch/arm/include/asm/arch-stm32f4/gpio.h
> index 6173fa130000..bb4427e6f4ac 100644
> --- a/arch/arm/include/asm/arch-stm32f4/gpio.h
> +++ b/arch/arm/include/asm/arch-stm32f4/gpio.h
> @@ -11,150 +11,6 @@
> #ifndef _STM32_GPIO_H_
> #define _STM32_GPIO_H_
>
> -#if (CONFIG_STM32_USART == 1)
> -#define STM32_GPIO_PORT_X STM32_GPIO_PORT_A
> -#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_9
> -#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_10
> -#define STM32_GPIO_USART STM32_GPIO_AF7
> -
> -#elif (CONFIG_STM32_USART == 2)
> -#define STM32_GPIO_PORT_X STM32_GPIO_PORT_D
> -#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_5
> -#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_6
> -#define STM32_GPIO_USART STM32_GPIO_AF7
> -
> -#elif (CONFIG_STM32_USART == 3)
> -#define STM32_GPIO_PORT_X STM32_GPIO_PORT_C
> -#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_10
> -#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_11
> -#define STM32_GPIO_USART STM32_GPIO_AF7
> -
> -#elif (CONFIG_STM32_USART == 6)
> -#define STM32_GPIO_PORT_X STM32_GPIO_PORT_G
> -#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_14
> -#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_9
> -#define STM32_GPIO_USART STM32_GPIO_AF8
> -
> -#else
> -#define STM32_GPIO_PORT_X STM32_GPIO_PORT_A
> -#define STM32_GPIO_PIN_TX STM32_GPIO_PIN_9
> -#define STM32_GPIO_PIN_RX STM32_GPIO_PIN_10
> -#define STM32_GPIO_USART STM32_GPIO_AF7
> -
> -#endif
> -
> -enum stm32_gpio_port {
> - STM32_GPIO_PORT_A = 0,
> - STM32_GPIO_PORT_B,
> - STM32_GPIO_PORT_C,
> - STM32_GPIO_PORT_D,
> - STM32_GPIO_PORT_E,
> - STM32_GPIO_PORT_F,
> - STM32_GPIO_PORT_G,
> - STM32_GPIO_PORT_H,
> - STM32_GPIO_PORT_I
> -};
> -
> -enum stm32_gpio_pin {
> - STM32_GPIO_PIN_0 = 0,
> - STM32_GPIO_PIN_1,
> - STM32_GPIO_PIN_2,
> - STM32_GPIO_PIN_3,
> - STM32_GPIO_PIN_4,
> - STM32_GPIO_PIN_5,
> - STM32_GPIO_PIN_6,
> - STM32_GPIO_PIN_7,
> - STM32_GPIO_PIN_8,
> - STM32_GPIO_PIN_9,
> - STM32_GPIO_PIN_10,
> - STM32_GPIO_PIN_11,
> - STM32_GPIO_PIN_12,
> - STM32_GPIO_PIN_13,
> - STM32_GPIO_PIN_14,
> - STM32_GPIO_PIN_15
> -};
> -
> -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 {
> - enum stm32_gpio_port port;
> - enum stm32_gpio_pin 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;
> -};
> -
> -static inline unsigned stm32_gpio_to_port(unsigned gpio)
> -{
> - return gpio / 16;
> -}
> -
> -static inline unsigned stm32_gpio_to_pin(unsigned gpio)
> -{
> - return gpio % 16;
> -}
> +#include <asm/stm32_gpio.h>
Hmm.. this header seems like dummy header(in all architectures f4/f7/h7) only to include gpio header here.
Also arch/arm/include/asm/ does not seems like good place for soc specific header files.
how about creating one level like arch/arm/include/asm/arch-stm32/ to include common gpio.h here. It would fix both of above points.
The same location can be used to move other commonalities in future.
Cheers,
Vikas
[...]
>
> #endif /* _STM32_GPIO_H_ */
> diff --git a/arch/arm/include/asm/stm32_gpio.h b/arch/arm/include/asm/stm32_gpio.h
> new file mode 100644
> index 000000000000..d24e8096acfe
> --- /dev/null
> +++ b/arch/arm/include/asm/stm32_gpio.h
> @@ -0,0 +1,115 @@
> +/*
> + * Copyright (C) 2016, STMicroelectronics - All Rights Reserved
> + * Author(s): Vikas Manocha, <vikas.manocha@st.com> for STMicroelectronics.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#ifndef _GPIO_H_
> +#define _GPIO_H_
> +
> +enum stm32_gpio_port {
> + STM32_GPIO_PORT_A = 0,
> + STM32_GPIO_PORT_B,
> + STM32_GPIO_PORT_C,
> + STM32_GPIO_PORT_D,
> + STM32_GPIO_PORT_E,
> + STM32_GPIO_PORT_F,
> + STM32_GPIO_PORT_G,
> + STM32_GPIO_PORT_H,
> + STM32_GPIO_PORT_I
> +};
> +
> +enum stm32_gpio_pin {
> + STM32_GPIO_PIN_0 = 0,
> + STM32_GPIO_PIN_1,
> + STM32_GPIO_PIN_2,
> + STM32_GPIO_PIN_3,
> + STM32_GPIO_PIN_4,
> + STM32_GPIO_PIN_5,
> + STM32_GPIO_PIN_6,
> + STM32_GPIO_PIN_7,
> + STM32_GPIO_PIN_8,
> + STM32_GPIO_PIN_9,
> + STM32_GPIO_PIN_10,
> + STM32_GPIO_PIN_11,
> + STM32_GPIO_PIN_12,
> + STM32_GPIO_PIN_13,
> + STM32_GPIO_PIN_14,
> + STM32_GPIO_PIN_15
> +};
> +
> +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 {
> + enum stm32_gpio_port port;
> + enum stm32_gpio_pin 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;
> +};
> +
> +#endif /* _GPIO_H_ */
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 3/5] arch-stm32: Factorize stm32.h for STM32F4 and F7
2018-02-07 15:50 ` [U-Boot] [PATCH 3/5] arch-stm32: Factorize stm32.h for STM32F4 and F7 patrice.chotard at st.com
@ 2018-02-07 19:32 ` Vikas Manocha
0 siblings, 0 replies; 11+ messages in thread
From: Vikas Manocha @ 2018-02-07 19:32 UTC (permalink / raw)
To: u-boot
Hi,
On 02/07/2018 07:50 AM, patrice.chotard at st.com wrote:
> From: Patrice Chotard <patrice.chotard@st.com>
>
> For STM32F4 and F7 SoCx family, a specific stm32.h file exists.
> Some common defines are duplicated or even unused in each of
> these stm32.h.
>
> Factorize all common definition in arch/arm/include/asm/stm32f.h and keep
> specific definitions in each arch/arm/include/asm/arch-stm32fx/stm32.h.
>
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
> ---
> arch/arm/include/asm/arch-stm32f4/stm32.h | 14 ++--------
> arch/arm/include/asm/arch-stm32f7/stm32.h | 45 +------------------------------
> arch/arm/include/asm/stm32f.h | 22 +++++++++++++++
> drivers/mtd/stm32_flash.c | 2 +-
> 4 files changed, 26 insertions(+), 57 deletions(-)
> create mode 100644 arch/arm/include/asm/stm32f.h
>
> diff --git a/arch/arm/include/asm/arch-stm32f4/stm32.h b/arch/arm/include/asm/arch-stm32f4/stm32.h
> index 763b18cb5412..86cca059075d 100644
> --- a/arch/arm/include/asm/arch-stm32f4/stm32.h
> +++ b/arch/arm/include/asm/arch-stm32f4/stm32.h
> @@ -11,17 +11,12 @@
> #ifndef _MACH_STM32_H_
> #define _MACH_STM32_H_
>
> +#include <asm/stm32f.h>
> +
> /*
> * Peripheral memory map
> */
> #define STM32_SYSMEM_BASE 0x1FFF0000
> -#define STM32_PERIPH_BASE 0x40000000
> -#define STM32_APB1PERIPH_BASE (STM32_PERIPH_BASE + 0x00000000)
> -#define STM32_APB2PERIPH_BASE (STM32_PERIPH_BASE + 0x00010000)
> -#define STM32_AHB1PERIPH_BASE (STM32_PERIPH_BASE + 0x00020000)
> -#define STM32_AHB2PERIPH_BASE (STM32_PERIPH_BASE + 0x10000000)
> -
> -#define STM32_BUS_MASK 0xFFFF0000
>
> /*
> * Register maps
> @@ -37,15 +32,10 @@ struct stm32_u_id_regs {
> */
> #define STM32_U_ID_BASE (STM32_SYSMEM_BASE + 0x7A10)
> #define STM32_U_ID ((struct stm32_u_id_regs *)STM32_U_ID_BASE)
> -
> -#define FLASH_CNTL_BASE (STM32_AHB1PERIPH_BASE + 0x3C00)
> -
> static const u32 sect_sz_kb[CONFIG_SYS_MAX_FLASH_SECT] = {
> [0 ... 3] = 16 * 1024,
> [4] = 64 * 1024,
> [5 ... 11] = 128 * 1024
> };
>
> -void stm32_flash_latency_cfg(int latency);
> -
> #endif /* _MACH_STM32_H_ */
> diff --git a/arch/arm/include/asm/arch-stm32f7/stm32.h b/arch/arm/include/asm/arch-stm32f7/stm32.h
> index 40df89142608..3f097548d374 100644
> --- a/arch/arm/include/asm/arch-stm32f7/stm32.h
> +++ b/arch/arm/include/asm/arch-stm32f7/stm32.h
> @@ -8,46 +8,7 @@
> #ifndef _ASM_ARCH_HARDWARE_H
> #define _ASM_ARCH_HARDWARE_H
>
> -/* STM32F746 */
> -#define ITCM_FLASH_BASE 0x00200000UL
> -#define AXIM_FLASH_BASE 0x08000000UL
> -
> -#define ITCM_SRAM_BASE 0x00000000UL
> -#define DTCM_SRAM_BASE 0x20000000UL
> -#define SRAM1_BASE 0x20010000UL
> -#define SRAM2_BASE 0x2004C000UL
> -
> -#define PERIPH_BASE 0x40000000UL
> -
> -#define APB1_PERIPH_BASE (PERIPH_BASE + 0x00000000)
> -#define APB2_PERIPH_BASE (PERIPH_BASE + 0x00010000)
> -#define AHB1_PERIPH_BASE (PERIPH_BASE + 0x00020000)
> -#define AHB2_PERIPH_BASE (PERIPH_BASE + 0x10000000)
> -#define AHB3_PERIPH_BASE (PERIPH_BASE + 0x20000000)
> -
> -#define USART2_BASE (APB1_PERIPH_BASE + 0x4400)
> -#define USART3_BASE (APB1_PERIPH_BASE + 0x4800)
> -#define PWR_BASE (APB1_PERIPH_BASE + 0x7000)
> -
> -#define USART1_BASE (APB2_PERIPH_BASE + 0x1000)
> -#define USART6_BASE (APB2_PERIPH_BASE + 0x1400)
> -#define STM32_SYSCFG_BASE (APB2_PERIPH_BASE + 0x3800)
> -
> -#define STM32_GPIOA_BASE (AHB1_PERIPH_BASE + 0x0000)
> -#define STM32_GPIOB_BASE (AHB1_PERIPH_BASE + 0x0400)
> -#define STM32_GPIOC_BASE (AHB1_PERIPH_BASE + 0x0800)
> -#define STM32_GPIOD_BASE (AHB1_PERIPH_BASE + 0x0C00)
> -#define STM32_GPIOE_BASE (AHB1_PERIPH_BASE + 0x1000)
> -#define STM32_GPIOF_BASE (AHB1_PERIPH_BASE + 0x1400)
> -#define STM32_GPIOG_BASE (AHB1_PERIPH_BASE + 0x1800)
> -#define STM32_GPIOH_BASE (AHB1_PERIPH_BASE + 0x1C00)
> -#define STM32_GPIOI_BASE (AHB1_PERIPH_BASE + 0x2000)
> -#define STM32_GPIOJ_BASE (AHB1_PERIPH_BASE + 0x2400)
> -#define STM32_GPIOK_BASE (AHB1_PERIPH_BASE + 0x2800)
> -#define FLASH_CNTL_BASE (AHB1_PERIPH_BASE + 0x3C00)
> -
> -
> -#define SDRAM_FMC_BASE (AHB3_PERIPH_BASE + 0x40000140)
> +#include <asm/stm32f.h>
>
> static const u32 sect_sz_kb[CONFIG_SYS_MAX_FLASH_SECT] = {
> [0 ... 3] = 32 * 1024,
> @@ -55,8 +16,4 @@ static const u32 sect_sz_kb[CONFIG_SYS_MAX_FLASH_SECT] = {
> [5 ... 7] = 256 * 1024
> };
>
> -#define STM32_BUS_MASK GENMASK(31, 16)
> -
> -void stm32_flash_latency_cfg(int latency);
> -
> #endif /* _ASM_ARCH_HARDWARE_H */
> diff --git a/arch/arm/include/asm/stm32f.h b/arch/arm/include/asm/stm32f.h
same comment, location of this header should be ....arch-stm32/stm32f.h
Cheers,
Vikas
> new file mode 100644
> index 000000000000..7bea20b4d06a
> --- /dev/null
> +++ b/arch/arm/include/asm/stm32f.h
> @@ -0,0 +1,22 @@
> +/*
> + * Copyright (C) 2018, STMicroelectronics - All Rights Reserved
> + * Author(s): Patrice Chotard, <patrice.chotard@st.com> for STMicroelectronics.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#ifndef _ASM_ARCH_STM32F_H
> +#define _ASM_ARCH_STM32F_H
> +
> +#define STM32_PERIPH_BASE 0x40000000UL
> +
> +#define STM32_APB2_PERIPH_BASE (STM32_PERIPH_BASE + 0x00010000)
> +#define STM32_AHB1_PERIPH_BASE (STM32_PERIPH_BASE + 0x00020000)
> +
> +#define STM32_SYSCFG_BASE (STM32_APB2_PERIPH_BASE + 0x3800)
> +#define STM32_FLASH_CNTL_BASE (STM32_AHB1_PERIPH_BASE + 0x3C00)
> +
> +void stm32_flash_latency_cfg(int latency);
> +
> +#endif /* _ASM_ARCH_STM32F_H */
> +
> diff --git a/drivers/mtd/stm32_flash.c b/drivers/mtd/stm32_flash.c
> index 472499d83c3b..a82814272e21 100644
> --- a/drivers/mtd/stm32_flash.c
> +++ b/drivers/mtd/stm32_flash.c
> @@ -12,7 +12,7 @@
>
> flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];
>
> -#define STM32_FLASH ((struct stm32_flash_regs *)FLASH_CNTL_BASE)
> +#define STM32_FLASH ((struct stm32_flash_regs *)STM32_FLASH_CNTL_BASE)
>
> void stm32_flash_latency_cfg(int latency)
> {
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/
2018-02-07 19:28 ` Vikas Manocha
@ 2018-02-08 13:35 ` Patrice CHOTARD
2018-02-08 22:19 ` Vikas Manocha
0 siblings, 1 reply; 11+ messages in thread
From: Patrice CHOTARD @ 2018-02-08 13:35 UTC (permalink / raw)
To: u-boot
Hi Vikas
On 02/07/2018 08:28 PM, Vikas Manocha wrote:
> Hi Patrice,
>
> On 02/07/2018 07:50 AM, patrice.chotard at st.com wrote:
>> From: Patrice Chotard <patrice.chotard@st.com>
>>
>> Instead to have 3 identical gpio.h for all STM32 SoCs,
>> migrate them in one file in include/asm.
>
> good move to consolidate these headers.
> One comment below.
>
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
[...]
>> -static inline unsigned stm32_gpio_to_pin(unsigned gpio)
>> -{
>> - return gpio % 16;
>> -}
>> +#include <asm/stm32_gpio.h>
>
> Hmm.. this header seems like dummy header(in all architectures f4/f7/h7) only to include gpio header here.
> Also arch/arm/include/asm/ does not seems like good place for soc specific header files.
Agree, but omap have put several omap_xxxx.h files too.
>
> how about creating one level like arch/arm/include/asm/arch-stm32/ to include common gpio.h here. It would fix both of above points.
> The same location can be used to move other commonalities in future.
It's possible to create an additionnal level
arch/arm/include/asm/arch-stm32/ and put specificities to each SoCs into :
arch/arm/include/asm/arch-stm32/stm32f4
arch/arm/include/asm/arch-stm32/stm32f7
arch/arm/include/asm/arch-stm32/stm32h7
If we focus on stm32f7, this implies to modify the content of
CONFIG_SYS_SOC from "stm32f7" to "stm32/stm32f7" in
board/st/stm32f746-disco/Kconfig but:
1) In any case, we can't include directly files located in
arch/arm/include/asm/arch-stm32 because SYS_SOC is used to build include
path.
For example in drivers/gpio/gpio-uclass.c,
#include <asm/gpio.h> is in fact #include <asm/<SYS_SOC>/gpio.h
so equal to #include <asm/arch-stm32/stm32f7/gpio.h
2) Other effect, now in "soc" environment variable, we will obtain
"stm32/stm32f7" instead of "stm32f7". This is not a big deal, but we
must add some code to extract the soc name from "soc" environment variable.
Both solution are not perfect.
Thanks
Patrice
>
> Cheers,
> Vikas
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/
2018-02-08 13:35 ` Patrice CHOTARD
@ 2018-02-08 22:19 ` Vikas Manocha
2018-02-09 9:48 ` Patrice CHOTARD
0 siblings, 1 reply; 11+ messages in thread
From: Vikas Manocha @ 2018-02-08 22:19 UTC (permalink / raw)
To: u-boot
Hi Patrice,
On 02/08/2018 05:35 AM, Patrice CHOTARD wrote:
> Hi Vikas
>
> On 02/07/2018 08:28 PM, Vikas Manocha wrote:
>> Hi Patrice,
>>
>> On 02/07/2018 07:50 AM, patrice.chotard at st.com wrote:
>>> From: Patrice Chotard <patrice.chotard@st.com>
>>>
>>> Instead to have 3 identical gpio.h for all STM32 SoCs,
>>> migrate them in one file in include/asm.
>>
>> good move to consolidate these headers.
>> One comment below.
>>
>>>
>>> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
>
> [...]
>
>>> -static inline unsigned stm32_gpio_to_pin(unsigned gpio)
>>> -{
>>> - return gpio % 16;
>>> -}
>>> +#include <asm/stm32_gpio.h>
>>
>> Hmm.. this header seems like dummy header(in all architectures f4/f7/h7) only to include gpio header here.
>> Also arch/arm/include/asm/ does not seems like good place for soc specific header files.
>
> Agree, but omap have put several omap_xxxx.h files too.
I see omap files, they might be first ones to use this structure, i am not sure. But in any case, it does not look clean today.
How about creating asm/arch-stm32 to put common stuff like this gpio header.
-#include <asm/stm32_gpio.h>
+#include <asm/arch-stm32/stm32_gpio.h>
It can be done with no modification required in SYS_SOC, the point you mentioned below.
It does not remove the arch-stm32f7/f7/h7/ gpio headers but avoids include/asm cluttering with SOC files.
Cheers,
Vikas
>
>>
>> how about creating one level like arch/arm/include/asm/arch-stm32/ to include common gpio.h here. It would fix both of above points.
>> The same location can be used to move other commonalities in future.
>
> It's possible to create an additionnal level
> arch/arm/include/asm/arch-stm32/ and put specificities to each SoCs into :
>
> arch/arm/include/asm/arch-stm32/stm32f4
> arch/arm/include/asm/arch-stm32/stm32f7
> arch/arm/include/asm/arch-stm32/stm32h7
>
> If we focus on stm32f7, this implies to modify the content of
> CONFIG_SYS_SOC from "stm32f7" to "stm32/stm32f7" in
> board/st/stm32f746-disco/Kconfig but:
>
> 1) In any case, we can't include directly files located in
> arch/arm/include/asm/arch-stm32 because SYS_SOC is used to build include
> path.
>
> For example in drivers/gpio/gpio-uclass.c,
> #include <asm/gpio.h> is in fact #include <asm/<SYS_SOC>/gpio.h
>
> so equal to #include <asm/arch-stm32/stm32f7/gpio.h
>
> 2) Other effect, now in "soc" environment variable, we will obtain
> "stm32/stm32f7" instead of "stm32f7". This is not a big deal, but we
> must add some code to extract the soc name from "soc" environment variable.
>
> Both solution are not perfect.
>
> Thanks
>
> Patrice
>
>
>>
>> Cheers,
>> Vikas
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/
2018-02-08 22:19 ` Vikas Manocha
@ 2018-02-09 9:48 ` Patrice CHOTARD
0 siblings, 0 replies; 11+ messages in thread
From: Patrice CHOTARD @ 2018-02-09 9:48 UTC (permalink / raw)
To: u-boot
Hi Vikas
On 02/08/2018 11:19 PM, Vikas Manocha wrote:
> Hi Patrice,
>
> On 02/08/2018 05:35 AM, Patrice CHOTARD wrote:
>> Hi Vikas
>>
>> On 02/07/2018 08:28 PM, Vikas Manocha wrote:
>>> Hi Patrice,
>>>
>>> On 02/07/2018 07:50 AM, patrice.chotard at st.com wrote:
>>>> From: Patrice Chotard <patrice.chotard@st.com>
>>>>
>>>> Instead to have 3 identical gpio.h for all STM32 SoCs,
>>>> migrate them in one file in include/asm.
>>>
>>> good move to consolidate these headers.
>>> One comment below.
>>>
>>>>
>>>> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
>>
>> [...]
>>
>>>> -static inline unsigned stm32_gpio_to_pin(unsigned gpio)
>>>> -{
>>>> - return gpio % 16;
>>>> -}
>>>> +#include <asm/stm32_gpio.h>
>>>
>>> Hmm.. this header seems like dummy header(in all architectures f4/f7/h7) only to include gpio header here.
>>> Also arch/arm/include/asm/ does not seems like good place for soc specific header files.
>>
>> Agree, but omap have put several omap_xxxx.h files too.
>
> I see omap files, they might be first ones to use this structure, i am not sure. But in any case, it does not look clean today.
> How about creating asm/arch-stm32 to put common stuff like this gpio header.
>
> -#include <asm/stm32_gpio.h>
> +#include <asm/arch-stm32/stm32_gpio.h>
>
> It can be done with no modification required in SYS_SOC, the point you mentioned below.
> It does not remove the arch-stm32f7/f7/h7/ gpio headers but avoids include/asm cluttering with SOC files.
Yes agree, i will send a v2 with this update
Thanks Vikas ;-)
Patrice
>
> Cheers,
> Vikas
>
>>
>>>
>>> how about creating one level like arch/arm/include/asm/arch-stm32/ to include common gpio.h here. It would fix both of above points.
>>> The same location can be used to move other commonalities in future.
>>
>> It's possible to create an additionnal level
>> arch/arm/include/asm/arch-stm32/ and put specificities to each SoCs into :
>>
>> arch/arm/include/asm/arch-stm32/stm32f4
>> arch/arm/include/asm/arch-stm32/stm32f7
>> arch/arm/include/asm/arch-stm32/stm32h7
>>
>> If we focus on stm32f7, this implies to modify the content of
>> CONFIG_SYS_SOC from "stm32f7" to "stm32/stm32f7" in
>> board/st/stm32f746-disco/Kconfig but:
>>
>> 1) In any case, we can't include directly files located in
>> arch/arm/include/asm/arch-stm32 because SYS_SOC is used to build include
>> path.
>>
>> For example in drivers/gpio/gpio-uclass.c,
>> #include <asm/gpio.h> is in fact #include <asm/<SYS_SOC>/gpio.h
>>
>> so equal to #include <asm/arch-stm32/stm32f7/gpio.h
>>
>> 2) Other effect, now in "soc" environment variable, we will obtain
>> "stm32/stm32f7" instead of "stm32f7". This is not a big deal, but we
>> must add some code to extract the soc name from "soc" environment variable.
>>
>> Both solution are not perfect.
>>
>> Thanks
>>
>> Patrice
>>
>>
>>>
>>> Cheers,
>>> Vikas
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-02-09 9:48 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-07 15:50 [U-Boot] [PATCH 0/5] STM32: Clean unused and factorize .h files in arch-stm32 patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 1/5] arch-stm32f4: Remove fmc.h file patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 2/5] arch-stm32: Move gpio.h for STM32 SoCs in include/asm/ patrice.chotard at st.com
2018-02-07 19:28 ` Vikas Manocha
2018-02-08 13:35 ` Patrice CHOTARD
2018-02-08 22:19 ` Vikas Manocha
2018-02-09 9:48 ` Patrice CHOTARD
2018-02-07 15:50 ` [U-Boot] [PATCH 3/5] arch-stm32: Factorize stm32.h for STM32F4 and F7 patrice.chotard at st.com
2018-02-07 19:32 ` Vikas Manocha
2018-02-07 15:50 ` [U-Boot] [PATCH 4/5] arch-stm32: Remove stm32_periph.h patrice.chotard at st.com
2018-02-07 15:50 ` [U-Boot] [PATCH 5/5] arch-stm32: Clean arch-stm32f7/syscfg.h patrice.chotard at st.com
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.