Message ID | 20171103083030.31723-1-m.szyprowski@samsung.com |
---|---|
State | Accepted |
Commit | 7090ead3f2a821c6f043ecbb5f7cecf6ffecdebb |
Headers | show |
Series | ARM: Samsung: Add Exynos5422-based Odroid HC1 support | expand |
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@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@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@denx.de
On Fri, Nov 03, 2017 at 09:30:30AM +0100, Marek Szyprowski wrote: > 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@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(-) > Tested on Odroid HC1 with tftpboot: Tested-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof
Hi, 2017. 11. 11. 05:19에 "Krzysztof Kozlowski" <krzk@kernel.org>님이 작성: On Fri, Nov 03, 2017 at 09:30:30AM +0100, Marek Szyprowski wrote: > 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@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(-) > Tested on Odroid HC1 with tftpboot: Tested-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof
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
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@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(-)