diff options
| -rw-r--r-- | board/samsung/common/board.c | 2 | ||||
| -rw-r--r-- | board/samsung/smdk5420/Makefile | 11 | ||||
| -rw-r--r-- | board/samsung/smdk5420/smdk5420.c | 159 | ||||
| -rw-r--r-- | board/samsung/smdk5420/smdk5420_spl.c | 52 | ||||
| -rw-r--r-- | boards.cfg | 1 | ||||
| -rw-r--r-- | include/configs/arndale.h | 1 | ||||
| -rw-r--r-- | include/configs/exynos5250-dt.h | 1 | ||||
| -rw-r--r-- | tools/Makefile | 3 | 
8 files changed, 229 insertions, 1 deletions
| diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index dc68e3a87..cd873bc56 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -149,6 +149,7 @@ struct cros_ec_dev *board_get_cros_ec_dev(void)  	return local.cros_ec_dev;  } +#ifdef CONFIG_CROS_EC  static int board_init_cros_ec_devices(const void *blob)  {  	local.cros_ec_err = cros_ec_init(blob, &local.cros_ec_dev); @@ -157,6 +158,7 @@ static int board_init_cros_ec_devices(const void *blob)  	return 0;  } +#endif  #if defined(CONFIG_POWER)  #ifdef CONFIG_POWER_MAX77686 diff --git a/board/samsung/smdk5420/Makefile b/board/samsung/smdk5420/Makefile new file mode 100644 index 000000000..c2f8886c9 --- /dev/null +++ b/board/samsung/smdk5420/Makefile @@ -0,0 +1,11 @@ +# +# Copyright (C) 2013 Samsung Electronics +# +# SPDX-License-Identifier:	GPL-2.0+ +# + +obj-y	+= smdk5420_spl.o + +ifndef CONFIG_SPL_BUILD +obj-y	+= smdk5420.o +endif diff --git a/board/samsung/smdk5420/smdk5420.c b/board/samsung/smdk5420/smdk5420.c new file mode 100644 index 000000000..3ad2ad0e5 --- /dev/null +++ b/board/samsung/smdk5420/smdk5420.c @@ -0,0 +1,159 @@ +/* + * Copyright (C) 2013 Samsung Electronics + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#include <common.h> +#include <fdtdec.h> +#include <asm/io.h> +#include <i2c.h> +#include <lcd.h> +#include <spi.h> +#include <asm/arch/board.h> +#include <asm/arch/cpu.h> +#include <asm/arch/gpio.h> +#include <asm/arch/pinmux.h> +#include <asm/arch/dp_info.h> + +DECLARE_GLOBAL_DATA_PTR; + +#ifdef CONFIG_USB_EHCI_EXYNOS +static int board_usb_vbus_init(void) +{ +	struct exynos5_gpio_part1 *gpio1 = (struct exynos5_gpio_part1 *) +						samsung_get_base_gpio_part1(); + +	/* Enable VBUS power switch */ +	s5p_gpio_direction_output(&gpio1->x2, 6, 1); + +	/* VBUS turn ON time */ +	mdelay(3); + +	return 0; +} +#endif + +int exynos_init(void) +{ +#ifdef CONFIG_USB_EHCI_EXYNOS +	board_usb_vbus_init(); +#endif +	return 0; +} + +#ifdef CONFIG_LCD +void cfg_lcd_gpio(void) +{ +	struct exynos5_gpio_part1 *gpio1 = +		(struct exynos5_gpio_part1 *)samsung_get_base_gpio_part1(); + +	/* For Backlight */ +	s5p_gpio_cfg_pin(&gpio1->b2, 0, GPIO_OUTPUT); +	s5p_gpio_set_value(&gpio1->b2, 0, 1); + +	/* LCD power on */ +	s5p_gpio_cfg_pin(&gpio1->x1, 5, GPIO_OUTPUT); +	s5p_gpio_set_value(&gpio1->x1, 5, 1); + +	/* Set Hotplug detect for DP */ +	s5p_gpio_cfg_pin(&gpio1->x0, 7, GPIO_FUNC(0x3)); +} + +vidinfo_t panel_info = { +	.vl_freq	= 60, +	.vl_col		= 2560, +	.vl_row		= 1600, +	.vl_width	= 2560, +	.vl_height	= 1600, +	.vl_clkp	= CONFIG_SYS_LOW, +	.vl_hsp		= CONFIG_SYS_LOW, +	.vl_vsp		= CONFIG_SYS_LOW, +	.vl_dp		= CONFIG_SYS_LOW, +	.vl_bpix	= 4,	/* LCD_BPP = 2^4, for output conosle on LCD */ + +	/* wDP panel timing infomation */ +	.vl_hspw	= 32, +	.vl_hbpd	= 80, +	.vl_hfpd	= 48, + +	.vl_vspw	= 6, +	.vl_vbpd	= 37, +	.vl_vfpd	= 3, +	.vl_cmd_allow_len = 0xf, + +	.win_id		= 3, +	.cfg_gpio	= cfg_lcd_gpio, +	.backlight_on	= NULL, +	.lcd_power_on	= NULL, +	.reset_lcd	= NULL, +	.dual_lcd_enabled = 0, + +	.init_delay	= 0, +	.power_on_delay = 0, +	.reset_delay	= 0, +	.interface_mode = FIMD_RGB_INTERFACE, +	.dp_enabled	= 1, +}; + +static struct edp_device_info edp_info = { +	.disp_info = { +		.h_res = 2560, +		.h_sync_width = 32, +		.h_back_porch = 80, +		.h_front_porch = 48, +		.v_res = 1600, +		.v_sync_width  = 6, +		.v_back_porch = 37, +		.v_front_porch = 3, +		.v_sync_rate = 60, +	}, +	.lt_info = { +		.lt_status = DP_LT_NONE, +	}, +	.video_info = { +		.master_mode = 0, +		.bist_mode = DP_DISABLE, +		.bist_pattern = NO_PATTERN, +		.h_sync_polarity = 0, +		.v_sync_polarity = 0, +		.interlaced = 0, +		.color_space = COLOR_RGB, +		.dynamic_range = VESA, +		.ycbcr_coeff = COLOR_YCBCR601, +		.color_depth = COLOR_8, +	}, +}; + +static struct exynos_dp_platform_data dp_platform_data = { +	.phy_enable	= set_dp_phy_ctrl, +	.edp_dev_info	= &edp_info, +}; + +void init_panel_info(vidinfo_t *vid) +{ +	vid->rgb_mode   = MODE_RGB_P; + +	exynos_set_dp_platform_data(&dp_platform_data); +} +#endif + +int board_get_revision(void) +{ +	return 0; +} + +#ifdef CONFIG_DISPLAY_BOARDINFO +int checkboard(void) +{ +	const char *board_name; + +	board_name = fdt_getprop(gd->fdt_blob, 0, "model", NULL); +	if (board_name == NULL) +		printf("\nUnknown Board\n"); +	else +		printf("\nBoard: %s\n", board_name); + +	return 0; +} +#endif diff --git a/board/samsung/smdk5420/smdk5420_spl.c b/board/samsung/smdk5420/smdk5420_spl.c new file mode 100644 index 000000000..73359f784 --- /dev/null +++ b/board/samsung/smdk5420/smdk5420_spl.c @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2013 The Chromium OS Authors. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#include <common.h> +#include <asm/arch/cpu.h> +#include <asm/arch/spl.h> +#include <asm/arch/clk.h> + +#define SIGNATURE	0xdeadbeef + +/* Parameters of early board initialization in SPL */ +static struct spl_machine_param machine_param +		__attribute__((section(".machine_param"))) = { +	.signature	= SIGNATURE, +	.version	= 1, +	.params		= "vmubfasirM", +	.size		= sizeof(machine_param), + +	.mem_iv_size	= 0x1f, +	.mem_type	= DDR_MODE_DDR3, + +	/* +	 * Set uboot_size to 0x100000 bytes. +	 * +	 * This is an overly conservative value chosen to accommodate all +	 * possible U-Boot image.  You are advised to set this value to a +	 * smaller realistic size via scripts that modifies the .machine_param +	 * section of output U-Boot image. +	 */ +	.uboot_size	= 0x100000, + +	.boot_source	= BOOT_MODE_OM, +	.frequency_mhz	= 800, +	.arm_freq_mhz	= 900, +	.serial_base	= 0x12c30000, +	.i2c_base	= 0x12c60000, +	.mem_manuf	= MEM_MANUF_SAMSUNG, +}; + +struct spl_machine_param *spl_get_machine_params(void) +{ +	if (machine_param.signature != SIGNATURE) { +		/* Will hang if SIGNATURE dont match */ +		while (1) +			; +	} + +	return &machine_param; +} diff --git a/boards.cfg b/boards.cfg index d85d4ddb9..bd018ffc9 100644 --- a/boards.cfg +++ b/boards.cfg @@ -276,6 +276,7 @@ Active  arm         armv7          exynos      samsung         arndale  Active  arm         armv7          exynos      samsung         origen              origen                               -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>  Active  arm         armv7          exynos      samsung         smdk5250            smdk5250                             -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>  Active  arm         armv7          exynos      samsung         smdk5250            snow                                 -                                                                                                                                 Rajeshwari Shinde <rajeshwari.s@samsung.com> +Active  arm         armv7          exynos      samsung         smdk5420            smdk5420                                 -                                                                                                                                 Rajeshwari Shinde <rajeshwari.s@samsung.com>  Active  arm         armv7          exynos      samsung         smdkv310            smdkv310                             -                                                                                                                                 Chander Kashyap <k.chander@samsung.com>  Active  arm         armv7          exynos      samsung         trats               trats                                -                                                                                                                                 Lukasz Majewski <l.majewski@samsung.com>  Active  arm         armv7          exynos      samsung         trats2              trats2                               -                                                                                                                                 Piotr Wilczek <p.wilczek@samsung.com> diff --git a/include/configs/arndale.h b/include/configs/arndale.h index a3cb56b8b..b7fb29ea7 100644 --- a/include/configs/arndale.h +++ b/include/configs/arndale.h @@ -117,6 +117,7 @@  #define CONFIG_USB_STORAGE  /* MMC SPL */ +#define CONFIG_EXYNOS_SPL  #define CONFIG_SPL  #define COPY_BL2_FNPTR_ADDR	0x02020030 diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index 79e85dbc2..3b989eb82 100644 --- a/include/configs/exynos5250-dt.h +++ b/include/configs/exynos5250-dt.h @@ -155,6 +155,7 @@  #define CONFIG_TPM_TIS_I2C_SLAVE_ADDR	0x20  /* MMC SPL */ +#define CONFIG_EXYNOS_SPL  #define CONFIG_SPL  #define COPY_BL2_FNPTR_ADDR	0x02020030 diff --git a/tools/Makefile b/tools/Makefile index 14d94e39a..d4bc84d27 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -53,6 +53,7 @@ BIN_FILES-$(CONFIG_XWAY_SWAP_BYTES) += xway-swap-bytes$(SFX)  BIN_FILES-y += mkenvimage$(SFX)  BIN_FILES-y += mkimage$(SFX)  BIN_FILES-$(CONFIG_EXYNOS5250) += mk$(BOARD)spl$(SFX) +BIN_FILES-$(CONFIG_EXYNOS5420) += mk$(BOARD)spl$(SFX)  BIN_FILES-$(CONFIG_MX23) += mxsboot$(SFX)  BIN_FILES-$(CONFIG_MX28) += mxsboot$(SFX)  BIN_FILES-$(CONFIG_NETCONSOLE) += ncb$(SFX) @@ -87,7 +88,7 @@ NOPED_OBJ_FILES-y += ublimage.o  OBJ_FILES-$(CONFIG_BUILD_ENVCRC) += envcrc.o  OBJ_FILES-$(CONFIG_CMD_LOADS) += img2srec.o  OBJ_FILES-$(CONFIG_CMD_NET) += gen_eth_addr.o -OBJ_FILES-$(CONFIG_EXYNOS5250) += mkexynosspl.o +OBJ_FILES-$(CONFIG_EXYNOS_SPL) += mkexynosspl.o  OBJ_FILES-$(CONFIG_KIRKWOOD) += kwboot.o  OBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o  OBJ_FILES-$(CONFIG_MX23) += mxsboot.o |