diff mbox

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

Message ID 1460544222-5342-10-git-send-email-ta.omasab@gmail.com
State Changes Requested
Delegated to: Minkyu Kang
Headers show

Commit Message

Thomas Abraham April 13, 2016, 10:43 a.m. UTC
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

Comments

Simon Glass April 20, 2016, 2:41 p.m. UTC | #1
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@14C30000";
> +               console = "/serial@14C30000";
> +               pinctrl0 = "/pinctrl@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
Thomas Abraham April 23, 2016, 3:35 p.m. UTC | #2
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@14C30000";
>> +               console = "/serial@14C30000";
>> +               pinctrl0 = "/pinctrl@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
diff mbox

Patch

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@14C30000";
+		console = "/serial@14C30000";
+		pinctrl0 = "/pinctrl@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);
+	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"
+
+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
+
+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