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

Thomas Abraham
2016-04-23T15:35:10Z

Hi Simon,

On Wed, Apr 20, 2016 at 8:11 PM, Simon Glass <sjg@chromium.org> wrote:
> 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");

Right, this was not required. With the "u-boot,dm-pre-reloc" property
added to the pin configuration node, this change is not required. This
change will be remove in the next version.

Thanks,
Thomas.

>
>> + 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