[U-Boot] [PATCH 9/9] board: samsung: add initial Espresso7420 board support

Simon Glass sjg at chromium.org
Wed Apr 20 16:41:22 CEST 2016


Hi Thomas,

On 13 April 2016 at 04:43, Thomas Abraham <ta.omasab at gmail.com> wrote:
> From: Thomas Abraham <thomas.ab at samsung.com>
>
> Espresso7420 is a development/evaluation board for Exynos7420 SoC. It
> includes multiple onboard compoments (EMMC/Codec) and various
> interconnects (USB/HDMI).
>
> Signed-off-by: Thomas Abraham <thomas.ab at samsung.com>
> ---
>  arch/arm/dts/Makefile                     |    1 +
>  arch/arm/dts/exynos7420-espresso7420.dts  |   24 ++++++++++++++++++++++++
>  board/samsung/common/board.c              |   18 ++++++++++++++++--
>  board/samsung/espresso7420/Kconfig        |   12 ++++++++++++
>  board/samsung/espresso7420/MAINTAINERS    |    5 +++++
>  board/samsung/espresso7420/Makefile       |   16 ++++++++++++++++
>  board/samsung/espresso7420/espresso7420.c |   16 ++++++++++++++++
>  configs/espresso7420_defconfig            |    8 ++++++++
>  8 files changed, 98 insertions(+), 2 deletions(-)
>  create mode 100644 arch/arm/dts/exynos7420-espresso7420.dts
>  create mode 100644 board/samsung/espresso7420/Kconfig
>  create mode 100644 board/samsung/espresso7420/MAINTAINERS
>  create mode 100644 board/samsung/espresso7420/Makefile
>  create mode 100644 board/samsung/espresso7420/espresso7420.c
>  create mode 100644 configs/espresso7420_defconfig
>

Reviewed-by: Simon Glass <sjg at chromium.org>

See below.

> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index ea635e4..a61bbff 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -19,6 +19,7 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
>         exynos5420-peach-pit.dtb \
>         exynos5800-peach-pi.dtb \
>         exynos5422-odroidxu3.dtb
> +dtb-$(CONFIG_EXYNOS7420) += exynos7420-espresso7420.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += \
>         rk3288-firefly.dtb \
>         rk3288-jerry.dtb \
> diff --git a/arch/arm/dts/exynos7420-espresso7420.dts b/arch/arm/dts/exynos7420-espresso7420.dts
> new file mode 100644
> index 0000000..f17a848
> --- /dev/null
> +++ b/arch/arm/dts/exynos7420-espresso7420.dts
> @@ -0,0 +1,24 @@
> +/*
> + * Samsung Espresso7420 board device tree source
> + *
> + * Copyright (c) 2016 Samsung Electronics Co., Ltd.
> + *             http://www.samsung.com
> + *
> + * SPDX-License-Identifier:    GPL-2.0+
> + */
> +
> +#include "exynos7420.dtsi"
> +/ {
> +       model = "Samsung Espresso7420 board based on Exynos7420";
> +       compatible = "samsung,espresso7420", "samsung,exynos7420";
> +
> +       aliases {
> +               serial2 = "/serial at 14C30000";
> +               console = "/serial at 14C30000";
> +               pinctrl0 = "/pinctrl at 13470000";
> +       };
> +};
> +
> +&fin_pll {
> +       clock-frequency = <24000000>;
> +};
> diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c
> index 1334c22..e4f189c 100644
> --- a/board/samsung/common/board.c
> +++ b/board/samsung/common/board.c
> @@ -27,6 +27,8 @@
>  #include <usb.h>
>  #include <dwc3-uboot.h>
>  #include <samsung/misc.h>
> +#include <dm/pinctrl.h>
> +#include <dm.h>
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> @@ -97,7 +99,7 @@ int board_init(void)
>  int dram_init(void)
>  {
>         unsigned int i;
> -       u32 addr;
> +       unsigned long addr;
>
>         for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
>                 addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE);
> @@ -109,7 +111,7 @@ int dram_init(void)
>  void dram_init_banksize(void)
>  {
>         unsigned int i;
> -       u32 addr, size;
> +       unsigned long addr, size;
>
>         for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
>                 addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE);
> @@ -122,6 +124,17 @@ void dram_init_banksize(void)
>
>  static int board_uart_init(void)
>  {
> +#if CONFIG_PINCTRL_EXYNOS
> +       struct udevice *pinctrl;
> +       int ret;
> +
> +       ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
> +       if (ret)
> +               return ret;
> +
> +       ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART2);

Does this not happen automatically when the UART is probed? It should
call  pinctrl_select_state(dev, "default");

> +       return ret;
> +#else
>         int err, uart_id, ret = 0;
>
>         for (uart_id = PERIPH_ID_UART0; uart_id <= PERIPH_ID_UART3; uart_id++) {
> @@ -133,6 +146,7 @@ static int board_uart_init(void)
>                 }
>         }
>         return ret;
> +#endif
>  }
>
>  #ifdef CONFIG_BOARD_EARLY_INIT_F
> diff --git a/board/samsung/espresso7420/Kconfig b/board/samsung/espresso7420/Kconfig
> new file mode 100644
> index 0000000..6cfead0
> --- /dev/null
> +++ b/board/samsung/espresso7420/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_ESPRESSO7420
> +
> +config SYS_BOARD
> +       default "espresso7420"

Please add a description of the board in help.

> +
> +config SYS_VENDOR
> +       default "samsung"
> +
> +config SYS_CONFIG_NAME
> +       default "espresso7420"
> +
> +endif
> diff --git a/board/samsung/espresso7420/MAINTAINERS b/board/samsung/espresso7420/MAINTAINERS
> new file mode 100644
> index 0000000..aaebc4c
> --- /dev/null
> +++ b/board/samsung/espresso7420/MAINTAINERS
> @@ -0,0 +1,5 @@
> +ESPRESSO7420 Board
> +M:     Thomas Abraham <thomas.ab at samsung.com>
> +S:     Maintained
> +F:     board/samsung/espresso7420/
> +F:     include/configs/espresso7420.h
> diff --git a/board/samsung/espresso7420/Makefile b/board/samsung/espresso7420/Makefile
> new file mode 100644
> index 0000000..53d90fd
> --- /dev/null
> +++ b/board/samsung/espresso7420/Makefile
> @@ -0,0 +1,16 @@
> +#
> +# Copyright (C) 2015 Samsung Electronics
> +#
> +# SPDX-License-Identifier:     GPL-2.0+
> +#
> +
> +#obj-y += espresso7420_spl.o
> +#obj-y += clk-boot_evt1.o
> +#obj-y += lpddr4_evt1.o
> +#obj-y += dmc_init_lpddr4.o
> +#obj-y += dmc.o
> +#obj-y += clock.o clock_init.o

Why the commented-out files?

> +
> +ifndef CONFIG_SPL_BUILD
> +obj-y  += espresso7420.o
> +endif
> diff --git a/board/samsung/espresso7420/espresso7420.c b/board/samsung/espresso7420/espresso7420.c
> new file mode 100644
> index 0000000..04a83bc
> --- /dev/null
> +++ b/board/samsung/espresso7420/espresso7420.c
> @@ -0,0 +1,16 @@
> +/*
> + * Espresso7420 board file
> + * Copyright (C) 2016 Samsung Electronics
> + * Thomas Abraham <thomas.ab at samsung.com>
> + *
> + * SPDX-License-Identifier:    GPL-2.0+
> + */
> +
> +#include <common.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +int exynos_init(void)
> +{
> +       return 0;
> +}
> diff --git a/configs/espresso7420_defconfig b/configs/espresso7420_defconfig
> new file mode 100644
> index 0000000..604921f
> --- /dev/null
> +++ b/configs/espresso7420_defconfig
> @@ -0,0 +1,8 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_EXYNOS=y
> +CONFIG_TARGET_ESPRESSO7420=y
> +CONFIG_DEFAULT_DEVICE_TREE="exynos7420-espresso7420"
> +CONFIG_SYS_MALLOC_F_LEN=0x2000
> +CONFIG_SYS_PROMPT="ESPRESSO7420 # "
> +# CONFIG_CMD_IMLS is not set
> +# CONFIG_CMD_SETEXPR is not set
> --
> 1.6.6.rc2
>

Regards,
Simon


More information about the U-Boot mailing list