From: Patrice Chotard <patrice.chot...@st.com>

Remove serial_stm32.c driver and uart init from board file,
use available DM serial_stm32x7.c driver compatible for
STM32F4/F7 and H7 SoCs.

The serial_stm32x7.c driver will be renamed later with a more
generic name as it's shared with all STM32 Socs.

Signed-off-by: Patrice Chotard <patrice.chot...@st.com>
---
 arch/arm/include/asm/arch-stm32f4/stm32.h          |   8 --
 board/st/stm32f429-discovery/stm32f429-discovery.c |  10 --
 configs/stm32f429-discovery_defconfig              |   1 +
 drivers/serial/serial_stm32.c                      | 117 ---------------------
 include/configs/stm32f429-discovery.h              |   1 -
 5 files changed, 1 insertion(+), 136 deletions(-)
 delete mode 100644 drivers/serial/serial_stm32.c

diff --git a/arch/arm/include/asm/arch-stm32f4/stm32.h 
b/arch/arm/include/asm/arch-stm32f4/stm32.h
index e9f3aab..bd5c2ec 100644
--- a/arch/arm/include/asm/arch-stm32f4/stm32.h
+++ b/arch/arm/include/asm/arch-stm32f4/stm32.h
@@ -59,14 +59,6 @@ struct stm32_pwr_regs {
 #define STM32_PWR_BASE         (STM32_APB1PERIPH_BASE + 0x7000)
 #define STM32_PWR              ((struct stm32_pwr_regs *)STM32_PWR_BASE)
 
-/*
- * Peripheral base addresses
- */
-#define STM32_USART1_BASE      (STM32_APB2PERIPH_BASE + 0x1000)
-#define STM32_USART2_BASE      (STM32_APB1PERIPH_BASE + 0x4400)
-#define STM32_USART3_BASE      (STM32_APB1PERIPH_BASE + 0x4800)
-#define STM32_USART6_BASE      (STM32_APB2PERIPH_BASE + 0x1400)
-
 #define FLASH_CNTL_BASE                (STM32_AHB1PERIPH_BASE + 0x3C00)
 
 static const u32 sect_sz_kb[CONFIG_SYS_MAX_FLASH_SECT] = {
diff --git a/board/st/stm32f429-discovery/stm32f429-discovery.c 
b/board/st/stm32f429-discovery/stm32f429-discovery.c
index 7e8df8e..7e62bd2 100644
--- a/board/st/stm32f429-discovery/stm32f429-discovery.c
+++ b/board/st/stm32f429-discovery/stm32f429-discovery.c
@@ -17,7 +17,6 @@
 #include <asm/io.h>
 #include <asm/arch/stm32.h>
 #include <asm/arch/gpio.h>
-#include <dm/platform_data/serial_stm32.h>
 #include <asm/arch/stm32_periph.h>
 #include <asm/arch/stm32_defs.h>
 
@@ -168,15 +167,6 @@ int dram_init_banksize(void)
        return 0;
 }
 
-static const struct stm32_serial_platdata serial_platdata = {
-       .base = (struct stm32_usart *)STM32_USART1_BASE,
-};
-
-U_BOOT_DEVICE(stm32_serials) = {
-       .name = "serial_stm32",
-       .platdata = &serial_platdata,
-};
-
 u32 get_board_rev(void)
 {
        return 0;
diff --git a/configs/stm32f429-discovery_defconfig 
b/configs/stm32f429-discovery_defconfig
index 15ff646..ae106ff 100644
--- a/configs/stm32f429-discovery_defconfig
+++ b/configs/stm32f429-discovery_defconfig
@@ -27,3 +27,4 @@ CONFIG_RAM=y
 CONFIG_STM32_SDRAM=y
 CONFIG_DM_RESET=y
 CONFIG_STM32_RESET=y
+CONFIG_STM32X7_SERIAL=y
diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c
deleted file mode 100644
index c793ba6..0000000
--- a/drivers/serial/serial_stm32.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * (C) Copyright 2015
- * Kamil Lulko, <kamil.lu...@gmail.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-#include <common.h>
-#include <dm.h>
-#include <asm/io.h>
-#include <serial.h>
-#include <asm/arch/stm32.h>
-#include <dm/platform_data/serial_stm32.h>
-
-struct stm32_usart {
-       u32 sr;
-       u32 dr;
-       u32 brr;
-       u32 cr1;
-       u32 cr2;
-       u32 cr3;
-       u32 gtpr;
-};
-
-#define USART_CR1_RE                   (1 << 2)
-#define USART_CR1_TE                   (1 << 3)
-#define USART_CR1_UE                   (1 << 13)
-
-#define USART_SR_FLAG_RXNE     (1 << 5)
-#define USART_SR_FLAG_TXE              (1 << 7)
-
-#define USART_BRR_F_MASK               0xF
-#define USART_BRR_M_SHIFT      4
-#define USART_BRR_M_MASK       0xFFF0
-
-DECLARE_GLOBAL_DATA_PTR;
-
-static int stm32_serial_setbrg(struct udevice *dev, int baudrate)
-{
-       struct stm32_serial_platdata *plat = dev->platdata;
-       struct stm32_usart *const usart = plat->base;
-       u32  clock, int_div, frac_div, tmp;
-
-       if (((u32)usart & STM32_BUS_MASK) == STM32_APB1PERIPH_BASE)
-               clock = clock_get(CLOCK_APB1);
-       else if (((u32)usart & STM32_BUS_MASK) == STM32_APB2PERIPH_BASE)
-               clock = clock_get(CLOCK_APB2);
-       else
-               return -EINVAL;
-
-       int_div = (25 * clock) / (4 * baudrate);
-       tmp = ((int_div / 100) << USART_BRR_M_SHIFT) & USART_BRR_M_MASK;
-       frac_div = int_div - (100 * (tmp >> USART_BRR_M_SHIFT));
-       tmp |= (((frac_div * 16) + 50) / 100) & USART_BRR_F_MASK;
-       writel(tmp, &usart->brr);
-
-       return 0;
-}
-
-static int stm32_serial_getc(struct udevice *dev)
-{
-       struct stm32_serial_platdata *plat = dev->platdata;
-       struct stm32_usart *const usart = plat->base;
-
-       if ((readl(&usart->sr) & USART_SR_FLAG_RXNE) == 0)
-               return -EAGAIN;
-
-       return readl(&usart->dr);
-}
-
-static int stm32_serial_putc(struct udevice *dev, const char c)
-{
-       struct stm32_serial_platdata *plat = dev->platdata;
-       struct stm32_usart *const usart = plat->base;
-
-       if ((readl(&usart->sr) & USART_SR_FLAG_TXE) == 0)
-               return -EAGAIN;
-
-       writel(c, &usart->dr);
-
-       return 0;
-}
-
-static int stm32_serial_pending(struct udevice *dev, bool input)
-{
-       struct stm32_serial_platdata *plat = dev->platdata;
-       struct stm32_usart *const usart = plat->base;
-
-       if (input)
-               return readl(&usart->sr) & USART_SR_FLAG_RXNE ? 1 : 0;
-       else
-               return readl(&usart->sr) & USART_SR_FLAG_TXE ? 0 : 1;
-}
-
-static int stm32_serial_probe(struct udevice *dev)
-{
-       struct stm32_serial_platdata *plat = dev->platdata;
-       struct stm32_usart *const usart = plat->base;
-       setbits_le32(&usart->cr1, USART_CR1_RE | USART_CR1_TE | USART_CR1_UE);
-
-       return 0;
-}
-
-static const struct dm_serial_ops stm32_serial_ops = {
-       .putc = stm32_serial_putc,
-       .pending = stm32_serial_pending,
-       .getc = stm32_serial_getc,
-       .setbrg = stm32_serial_setbrg,
-};
-
-U_BOOT_DRIVER(serial_stm32) = {
-       .name = "serial_stm32",
-       .id = UCLASS_SERIAL,
-       .ops = &stm32_serial_ops,
-       .probe = stm32_serial_probe,
-       .flags = DM_FLAG_PRE_RELOC,
-};
diff --git a/include/configs/stm32f429-discovery.h 
b/include/configs/stm32f429-discovery.h
index 317b934..934acbc 100644
--- a/include/configs/stm32f429-discovery.h
+++ b/include/configs/stm32f429-discovery.h
@@ -43,7 +43,6 @@
 
 #define CONFIG_STM32_GPIO
 #define CONFIG_STM32_FLASH
-#define CONFIG_STM32_SERIAL
 
 #define CONFIG_STM32_HSE_HZ            8000000
 
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to