[U-Boot] [PATCH] ARM: Samsung: Add Exynos5422-based Odroid HC1 support

Lukasz Majewski lukma at denx.de
Sat Nov 4 21:27:59 UTC 2017


Hi Marek,

> Odroid HC1 board is based on Odroid XU4 board, but it has no HDMI,
> no eMMC, no build-in USB3.0 hub, no extension port pins, and no GPIO
> button. USB3.0 ports are used for build-in JMicron USB to SATA bridge
> and Gigabit R8152 ethernet chips. HC1 uses only passive cooling.
> 
> This patch also updates Odroid's ADCmax array and reduces ADC
> tolerance to 1% to ensure that XU4 and HC1 revisions are properly
> detected.
> 
> I've tested this with XU3, XU3-lite, XU4 and HC1 boards. In case of
> my test boards I got following values from ADC register: 372, 370,
> 1281 and 1313.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
> ---
>  board/samsung/common/exynos5-dt-types.c | 27
> ++++++++++++++++++++------- board/samsung/common/exynos5-dt.c
> |  4 ++-- configs/odroid-xu3_defconfig            |  2 +-
>  include/samsung/exynos5-dt-types.h      |  2 ++
>  4 files changed, 25 insertions(+), 10 deletions(-)
> 
> diff --git a/board/samsung/common/exynos5-dt-types.c
> b/board/samsung/common/exynos5-dt-types.c index
> 48fd1f7d966..03d3a3112a1 100644 ---
> a/board/samsung/common/exynos5-dt-types.c +++
> b/board/samsung/common/exynos5-dt-types.c @@ -25,17 +25,22 @@ static
> const struct udevice_id board_ids[] = { };
>  
>  /**
> - * Odroix XU3/4 board revisions:
> + * Odroix XU3/XU4/HC1 board revisions (from
> HC1_MAIN_REV0.1_20170630.pdf):
>   * Rev   ADCmax  Board
>   * 0.1     0     XU3 0.1
> - * 0.2   410     XU3 0.2 | XU3L - no DISPLAYPORT (probe I2C0:0x40 /
> INA231)
> - * 0.3  1408     XU4 0.1
> - * Use +10 % for ADC value tolerance.
> + * 0.2   372     XU3 0.2 | XU3L - no DISPLAYPORT (probe I2C0:0x40 /
> INA231)
> + * 0.3  1280     XU4 0.1
> + * 0.4   739     XU4 0.2
> + * 0.5  1016     XU4+Air0.1 (Passive cooling)
> + * 0.6  1308     XU4S 0.1 (HC1)
> + * Use +1% for ADC value tolerance in the array below, the code
> loops until
> + * the measured ADC value is lower than then ADCmax from the array.
>   */
>  struct odroid_rev_info odroid_info[] = {
>  	{ EXYNOS5_BOARD_ODROID_XU3_REV01, 1, 10, "xu3" },
> -	{ EXYNOS5_BOARD_ODROID_XU3_REV02, 2, 410, "xu3" },
> -	{ EXYNOS5_BOARD_ODROID_XU4_REV01, 1, 1408, "xu4" },
> +	{ EXYNOS5_BOARD_ODROID_XU3_REV02, 2, 375, "xu3" },
> +	{ EXYNOS5_BOARD_ODROID_XU4_REV01, 1, 1293, "xu4" },
> +	{ EXYNOS5_BOARD_ODROID_HC1_REV01, 1, 1321, "hc1" },
>  	{ EXYNOS5_BOARD_ODROID_UNKNOWN, 0, 4095, "unknown" },
>  };
>  
> @@ -61,7 +66,7 @@ static int odroid_get_board_type(void)
>  		goto rev_default;
>  
>  	for (i = 0; i < ARRAY_SIZE(odroid_info); i++) {
> -		/* ADC tolerance: +20 % */
> +		/* ADC tolerance: +1% */
>  		if (adcval < odroid_info[i].adc_val)
>  			return odroid_info[i].board_type;
>  	}
> @@ -132,6 +137,14 @@ bool board_is_odroidxu4(void)
>  	return false;
>  }
>  
> +bool board_is_odroidhc1(void)
> +{
> +	if (gd->board_type == EXYNOS5_BOARD_ODROID_HC1_REV01)
> +		return true;
> +
> +	return false;
> +}
> +
>  bool board_is_generic(void)
>  {
>  	if (gd->board_type == EXYNOS5_BOARD_GENERIC)
> diff --git a/board/samsung/common/exynos5-dt.c
> b/board/samsung/common/exynos5-dt.c index 0d17f30712c..a4eb3514051
> 100644 --- a/board/samsung/common/exynos5-dt.c
> +++ b/board/samsung/common/exynos5-dt.c
> @@ -176,7 +176,7 @@ char *get_dfu_alt_system(char *interface, char
> *devstr) {
>  	char *info = "Not supported!";
>  
> -	if (board_is_odroidxu4())
> +	if (board_is_odroidxu4() || board_is_odroidhc1())
>  		return info;
>  
>  	return env_get("dfu_alt_system");
> @@ -189,7 +189,7 @@ char *get_dfu_alt_boot(char *interface, char
> *devstr) char *alt_boot;
>  	int dev_num;
>  
> -	if (board_is_odroidxu4())
> +	if (board_is_odroidxu4() || board_is_odroidhc1())
>  		return info;
>  
>  	dev_num = simple_strtoul(devstr, NULL, 10);
> diff --git a/configs/odroid-xu3_defconfig
> b/configs/odroid-xu3_defconfig index 76b1d35b2aa..976c06a29d3 100644
> --- a/configs/odroid-xu3_defconfig
> +++ b/configs/odroid-xu3_defconfig
> @@ -1,7 +1,7 @@
>  CONFIG_ARM=y
>  CONFIG_ARCH_EXYNOS=y
>  CONFIG_ARCH_EXYNOS5=y
> -CONFIG_IDENT_STRING=" for ODROID-XU3"
> +CONFIG_IDENT_STRING=" for ODROID-XU3/XU4/HC1"
>  CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"
>  CONFIG_DISTRO_DEFAULTS=y
>  # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> diff --git a/include/samsung/exynos5-dt-types.h
> b/include/samsung/exynos5-dt-types.h index 479e2e793dc..8e11af30d18
> 100644 --- a/include/samsung/exynos5-dt-types.h
> +++ b/include/samsung/exynos5-dt-types.h
> @@ -8,6 +8,7 @@ enum {
>  	EXYNOS5_BOARD_ODROID_XU3_REV01,
>  	EXYNOS5_BOARD_ODROID_XU3_REV02,
>  	EXYNOS5_BOARD_ODROID_XU4_REV01,
> +	EXYNOS5_BOARD_ODROID_HC1_REV01,
>  	EXYNOS5_BOARD_ODROID_UNKNOWN,
>  
>  	EXYNOS5_BOARD_COUNT,
> @@ -23,5 +24,6 @@ struct odroid_rev_info {
>  bool board_is_generic(void);
>  bool board_is_odroidxu3(void);
>  bool board_is_odroidxu4(void);
> +bool board_is_odroidhc1(void);
>  
>  #endif

Reviwed-by: Lukasz Majewski <lukma at denx.de>

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171104/71aa0b54/attachment.sig>


More information about the U-Boot mailing list