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

Simon Glass
2016-04-20T14:41:22Z

Hi Thomas,

On 13 April 2016 at 04:43, Thomas Abraham <ta.omasab@gmail.com> wrote:
> From: Thomas Abraham <thomas.ab@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@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@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@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@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