All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/3] exynos5: fix GPIO information of exynos5420
       [not found] <1414743971-29750-1-git-send-email-human.hwang@samsung.com>
@ 2014-10-31  8:44 ` Lukasz Majewski
       [not found] ` <1414743971-29750-2-git-send-email-human.hwang@samsung.com>
       [not found] ` <1414743971-29750-3-git-send-email-human.hwang@samsung.com>
  2 siblings, 0 replies; 5+ messages in thread
From: Lukasz Majewski @ 2014-10-31  8:44 UTC (permalink / raw)
  To: u-boot

Hi Hyungwon,

> This patch fixes wrong GPIO information such as GPIO bank,
> table which is used to convert GPIO name to index, bank base
> address, and etc.
> 
> Change-Id: Ideb0f1f10257c9c258f8bca68befc47aed3c43c7

Please remove Change-Id from commits.
(you can run your patch through ./scripts/checkpatch.pl)

Also it is a good practice to use buildman script.

> Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
> ---
>  arch/arm/include/asm/arch-exynos/cpu.h  |  11 +-
>  arch/arm/include/asm/arch-exynos/gpio.h | 232
> +++++++++++++++----------------- 2 files changed, 117 insertions(+),
> 126 deletions(-)
> 
> diff --git a/arch/arm/include/asm/arch-exynos/cpu.h
> b/arch/arm/include/asm/arch-exynos/cpu.h index 7c5c4ff..da4ac6b 100644
> --- a/arch/arm/include/asm/arch-exynos/cpu.h
> +++ b/arch/arm/include/asm/arch-exynos/cpu.h
> @@ -139,7 +139,7 @@
>  
>  /* EXYNOS5420 */
>  #define EXYNOS5420_AUDIOSS_BASE		0x03810000
> -#define EXYNOS5420_GPIO_PART6_BASE	0x03860000
> +#define EXYNOS5420_GPIO_PART5_BASE	0x03860000
>  #define EXYNOS5420_PRO_ID		0x10000000
>  #define EXYNOS5420_CLOCK_BASE		0x10010000
>  #define EXYNOS5420_POWER_BASE		0x10040000
> @@ -161,11 +161,10 @@
>  #define EXYNOS5420_I2S_BASE		0x12D60000
>  #define EXYNOS5420_PWMTIMER_BASE	0x12DD0000
>  #define EXYNOS5420_SPI_ISP_BASE		0x131A0000
> -#define EXYNOS5420_GPIO_PART2_BASE	0x13400000
> -#define EXYNOS5420_GPIO_PART3_BASE	0x13400C00
> -#define EXYNOS5420_GPIO_PART4_BASE	0x13410000
> -#define EXYNOS5420_GPIO_PART5_BASE	0x14000000
> -#define EXYNOS5420_GPIO_PART1_BASE	0x14010000
> +#define EXYNOS5420_GPIO_PART1_BASE	0x13400000
> +#define EXYNOS5420_GPIO_PART2_BASE	0x13410000
> +#define EXYNOS5420_GPIO_PART3_BASE	0x14000000
> +#define EXYNOS5420_GPIO_PART4_BASE	0x14010000
>  #define EXYNOS5420_MIPI_DSIM_BASE	0x14500000
>  #define EXYNOS5420_DP_BASE		0x145B0000
>  
> diff --git a/arch/arm/include/asm/arch-exynos/gpio.h
> b/arch/arm/include/asm/arch-exynos/gpio.h index 32e045a..431ae3a
> 100644 --- a/arch/arm/include/asm/arch-exynos/gpio.h
> +++ b/arch/arm/include/asm/arch-exynos/gpio.h
> @@ -1028,83 +1028,7 @@ enum exynos5_gpio_pin {
>  };
>  
>  enum exynos5420_gpio_pin {
> -	/* GPIO_PART1_STARTS */
> -	EXYNOS5420_GPIO_A00,		/* 0 */
> -	EXYNOS5420_GPIO_A01,
> -	EXYNOS5420_GPIO_A02,
> -	EXYNOS5420_GPIO_A03,
> -	EXYNOS5420_GPIO_A04,
> -	EXYNOS5420_GPIO_A05,
> -	EXYNOS5420_GPIO_A06,
> -	EXYNOS5420_GPIO_A07,
> -	EXYNOS5420_GPIO_A10,		/* 8 */
> -	EXYNOS5420_GPIO_A11,
> -	EXYNOS5420_GPIO_A12,
> -	EXYNOS5420_GPIO_A13,
> -	EXYNOS5420_GPIO_A14,
> -	EXYNOS5420_GPIO_A15,
> -	EXYNOS5420_GPIO_A16,
> -	EXYNOS5420_GPIO_A17,
> -	EXYNOS5420_GPIO_A20,		/* 16 0x10 */
> -	EXYNOS5420_GPIO_A21,
> -	EXYNOS5420_GPIO_A22,
> -	EXYNOS5420_GPIO_A23,
> -	EXYNOS5420_GPIO_A24,
> -	EXYNOS5420_GPIO_A25,
> -	EXYNOS5420_GPIO_A26,
> -	EXYNOS5420_GPIO_A27,
> -	EXYNOS5420_GPIO_B00,		/* 24 0x18 */
> -	EXYNOS5420_GPIO_B01,
> -	EXYNOS5420_GPIO_B02,
> -	EXYNOS5420_GPIO_B03,
> -	EXYNOS5420_GPIO_B04,
> -	EXYNOS5420_GPIO_B05,
> -	EXYNOS5420_GPIO_B06,
> -	EXYNOS5420_GPIO_B07,
> -	EXYNOS5420_GPIO_B10,		/* 32 0x20 */
> -	EXYNOS5420_GPIO_B11,
> -	EXYNOS5420_GPIO_B12,
> -	EXYNOS5420_GPIO_B13,
> -	EXYNOS5420_GPIO_B14,
> -	EXYNOS5420_GPIO_B15,
> -	EXYNOS5420_GPIO_B16,
> -	EXYNOS5420_GPIO_B17,
> -	EXYNOS5420_GPIO_B20,		/* 40 0x28 */
> -	EXYNOS5420_GPIO_B21,
> -	EXYNOS5420_GPIO_B22,
> -	EXYNOS5420_GPIO_B23,
> -	EXYNOS5420_GPIO_B24,
> -	EXYNOS5420_GPIO_B25,
> -	EXYNOS5420_GPIO_B26,
> -	EXYNOS5420_GPIO_B27,
> -	EXYNOS5420_GPIO_B30,		/* 48 0x30 */
> -	EXYNOS5420_GPIO_B31,
> -	EXYNOS5420_GPIO_B32,
> -	EXYNOS5420_GPIO_B33,
> -	EXYNOS5420_GPIO_B34,
> -	EXYNOS5420_GPIO_B35,
> -	EXYNOS5420_GPIO_B36,
> -	EXYNOS5420_GPIO_B37,
> -	EXYNOS5420_GPIO_B40,		/* 56 0x38 */
> -	EXYNOS5420_GPIO_B41,
> -	EXYNOS5420_GPIO_B42,
> -	EXYNOS5420_GPIO_B43,
> -	EXYNOS5420_GPIO_B44,
> -	EXYNOS5420_GPIO_B45,
> -	EXYNOS5420_GPIO_B46,
> -	EXYNOS5420_GPIO_B47,
> -	EXYNOS5420_GPIO_H00,		/* 64 0x40 */
> -	EXYNOS5420_GPIO_H01,
> -	EXYNOS5420_GPIO_H02,
> -	EXYNOS5420_GPIO_H03,
> -	EXYNOS5420_GPIO_H04,
> -	EXYNOS5420_GPIO_H05,
> -	EXYNOS5420_GPIO_H06,
> -	EXYNOS5420_GPIO_H07,
> -
> -	/* GPIO PART 2 STARTS*/
> -	EXYNOS5420_GPIO_MAX_PORT_PART_1,/* 72 0x48 */
> -	EXYNOS5420_GPIO_Y70 = EXYNOS5420_GPIO_MAX_PORT_PART_1,
> +	EXYNOS5420_GPIO_Y70,
>  	EXYNOS5420_GPIO_Y71,
>  	EXYNOS5420_GPIO_Y72,
>  	EXYNOS5420_GPIO_Y73,
> @@ -1112,10 +1036,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y75,
>  	EXYNOS5420_GPIO_Y76,
>  	EXYNOS5420_GPIO_Y77,
> -
> -	/* GPIO PART 3 STARTS*/
> -	EXYNOS5420_GPIO_MAX_PORT_PART_2,/* 80 0x50 */
> -	EXYNOS5420_GPIO_X00 = EXYNOS5420_GPIO_MAX_PORT_PART_2,
> +	EXYNOS5420_GPIO_X00,
>  	EXYNOS5420_GPIO_X01,
>  	EXYNOS5420_GPIO_X02,
>  	EXYNOS5420_GPIO_X03,
> @@ -1123,7 +1044,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_X05,
>  	EXYNOS5420_GPIO_X06,
>  	EXYNOS5420_GPIO_X07,
> -	EXYNOS5420_GPIO_X10,		/* 88 0x58 */
> +	EXYNOS5420_GPIO_X10,
>  	EXYNOS5420_GPIO_X11,
>  	EXYNOS5420_GPIO_X12,
>  	EXYNOS5420_GPIO_X13,
> @@ -1131,7 +1052,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_X15,
>  	EXYNOS5420_GPIO_X16,
>  	EXYNOS5420_GPIO_X17,
> -	EXYNOS5420_GPIO_X20,		/* 96 0x60 */
> +	EXYNOS5420_GPIO_X20,
>  	EXYNOS5420_GPIO_X21,
>  	EXYNOS5420_GPIO_X22,
>  	EXYNOS5420_GPIO_X23,
> @@ -1139,7 +1060,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_X25,
>  	EXYNOS5420_GPIO_X26,
>  	EXYNOS5420_GPIO_X27,
> -	EXYNOS5420_GPIO_X30,		/* 104 0x68 */
> +	EXYNOS5420_GPIO_X30,
>  	EXYNOS5420_GPIO_X31,
>  	EXYNOS5420_GPIO_X32,
>  	EXYNOS5420_GPIO_X33,
> @@ -1148,9 +1069,8 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_X36,
>  	EXYNOS5420_GPIO_X37,
>  
> -	/* GPIO PART 4 STARTS*/
> -	EXYNOS5420_GPIO_MAX_PORT_PART_3,/* 112 0x70 */
> -	EXYNOS5420_GPIO_C00 = EXYNOS5420_GPIO_MAX_PORT_PART_3,
> +	EXYNOS5420_GPIO_MAX_PORT_PART_1,
> +	EXYNOS5420_GPIO_C00 = EXYNOS5420_GPIO_MAX_PORT_PART_1,
>  	EXYNOS5420_GPIO_C01,
>  	EXYNOS5420_GPIO_C02,
>  	EXYNOS5420_GPIO_C03,
> @@ -1158,7 +1078,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_C05,
>  	EXYNOS5420_GPIO_C06,
>  	EXYNOS5420_GPIO_C07,
> -	EXYNOS5420_GPIO_C10,		/* 120 0x78 */
> +	EXYNOS5420_GPIO_C10,
>  	EXYNOS5420_GPIO_C11,
>  	EXYNOS5420_GPIO_C12,
>  	EXYNOS5420_GPIO_C13,
> @@ -1166,7 +1086,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_C15,
>  	EXYNOS5420_GPIO_C16,
>  	EXYNOS5420_GPIO_C17,
> -	EXYNOS5420_GPIO_C20,		/* 128 0x80 */
> +	EXYNOS5420_GPIO_C20,
>  	EXYNOS5420_GPIO_C21,
>  	EXYNOS5420_GPIO_C22,
>  	EXYNOS5420_GPIO_C23,
> @@ -1174,7 +1094,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_C25,
>  	EXYNOS5420_GPIO_C26,
>  	EXYNOS5420_GPIO_C27,
> -	EXYNOS5420_GPIO_C30,		/* 136 0x88 */
> +	EXYNOS5420_GPIO_C30,
>  	EXYNOS5420_GPIO_C31,
>  	EXYNOS5420_GPIO_C32,
>  	EXYNOS5420_GPIO_C33,
> @@ -1182,7 +1102,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_C35,
>  	EXYNOS5420_GPIO_C36,
>  	EXYNOS5420_GPIO_C37,
> -	EXYNOS5420_GPIO_C40,		/* 144 0x90 */
> +	EXYNOS5420_GPIO_C40,
>  	EXYNOS5420_GPIO_C41,
>  	EXYNOS5420_GPIO_C42,
>  	EXYNOS5420_GPIO_C43,
> @@ -1190,7 +1110,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_C45,
>  	EXYNOS5420_GPIO_C46,
>  	EXYNOS5420_GPIO_C47,
> -	EXYNOS5420_GPIO_D10,		/* 152 0x98 */
> +	EXYNOS5420_GPIO_D10,
>  	EXYNOS5420_GPIO_D11,
>  	EXYNOS5420_GPIO_D12,
>  	EXYNOS5420_GPIO_D13,
> @@ -1198,7 +1118,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_D15,
>  	EXYNOS5420_GPIO_D16,
>  	EXYNOS5420_GPIO_D17,
> -	EXYNOS5420_GPIO_Y00,		/* 160 0xa0 */
> +	EXYNOS5420_GPIO_Y00,
>  	EXYNOS5420_GPIO_Y01,
>  	EXYNOS5420_GPIO_Y02,
>  	EXYNOS5420_GPIO_Y03,
> @@ -1206,7 +1126,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y05,
>  	EXYNOS5420_GPIO_Y06,
>  	EXYNOS5420_GPIO_Y07,
> -	EXYNOS5420_GPIO_Y10,		/* 168 0xa8 */
> +	EXYNOS5420_GPIO_Y10,
>  	EXYNOS5420_GPIO_Y11,
>  	EXYNOS5420_GPIO_Y12,
>  	EXYNOS5420_GPIO_Y13,
> @@ -1214,7 +1134,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y15,
>  	EXYNOS5420_GPIO_Y16,
>  	EXYNOS5420_GPIO_Y17,
> -	EXYNOS5420_GPIO_Y20,		/* 176 0xb0 */
> +	EXYNOS5420_GPIO_Y20,
>  	EXYNOS5420_GPIO_Y21,
>  	EXYNOS5420_GPIO_Y22,
>  	EXYNOS5420_GPIO_Y23,
> @@ -1222,7 +1142,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y25,
>  	EXYNOS5420_GPIO_Y26,
>  	EXYNOS5420_GPIO_Y27,
> -	EXYNOS5420_GPIO_Y30,		/* 184 0xb8 */
> +	EXYNOS5420_GPIO_Y30,
>  	EXYNOS5420_GPIO_Y31,
>  	EXYNOS5420_GPIO_Y32,
>  	EXYNOS5420_GPIO_Y33,
> @@ -1230,7 +1150,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y35,
>  	EXYNOS5420_GPIO_Y36,
>  	EXYNOS5420_GPIO_Y37,
> -	EXYNOS5420_GPIO_Y40,		/* 192 0xc0 */
> +	EXYNOS5420_GPIO_Y40,
>  	EXYNOS5420_GPIO_Y41,
>  	EXYNOS5420_GPIO_Y42,
>  	EXYNOS5420_GPIO_Y43,
> @@ -1238,7 +1158,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y45,
>  	EXYNOS5420_GPIO_Y46,
>  	EXYNOS5420_GPIO_Y47,
> -	EXYNOS5420_GPIO_Y50,		/* 200 0xc8 */
> +	EXYNOS5420_GPIO_Y50,
>  	EXYNOS5420_GPIO_Y51,
>  	EXYNOS5420_GPIO_Y52,
>  	EXYNOS5420_GPIO_Y53,
> @@ -1246,7 +1166,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y55,
>  	EXYNOS5420_GPIO_Y56,
>  	EXYNOS5420_GPIO_Y57,
> -	EXYNOS5420_GPIO_Y60,		/* 208 0xd0 */
> +	EXYNOS5420_GPIO_Y60,
>  	EXYNOS5420_GPIO_Y61,
>  	EXYNOS5420_GPIO_Y62,
>  	EXYNOS5420_GPIO_Y63,
> @@ -1255,9 +1175,8 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_Y66,
>  	EXYNOS5420_GPIO_Y67,
>  
> -	/* GPIO_PART5_STARTS */
> -	EXYNOS5420_GPIO_MAX_PORT_PART_4,/* 216 0xd8 */
> -	EXYNOS5420_GPIO_E00 = EXYNOS5420_GPIO_MAX_PORT_PART_4,
> +	EXYNOS5420_GPIO_MAX_PORT_PART_2,
> +	EXYNOS5420_GPIO_E00 = EXYNOS5420_GPIO_MAX_PORT_PART_2,
>  	EXYNOS5420_GPIO_E01,
>  	EXYNOS5420_GPIO_E02,
>  	EXYNOS5420_GPIO_E03,
> @@ -1265,7 +1184,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_E05,
>  	EXYNOS5420_GPIO_E06,
>  	EXYNOS5420_GPIO_E07,
> -	EXYNOS5420_GPIO_E10,		/* 224 0xe0 */
> +	EXYNOS5420_GPIO_E10,
>  	EXYNOS5420_GPIO_E11,
>  	EXYNOS5420_GPIO_E12,
>  	EXYNOS5420_GPIO_E13,
> @@ -1273,7 +1192,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_E15,
>  	EXYNOS5420_GPIO_E16,
>  	EXYNOS5420_GPIO_E17,
> -	EXYNOS5420_GPIO_F00,		/* 232 0xe8 */
> +	EXYNOS5420_GPIO_F00,
>  	EXYNOS5420_GPIO_F01,
>  	EXYNOS5420_GPIO_F02,
>  	EXYNOS5420_GPIO_F03,
> @@ -1281,7 +1200,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_F05,
>  	EXYNOS5420_GPIO_F06,
>  	EXYNOS5420_GPIO_F07,
> -	EXYNOS5420_GPIO_F10,		/* 240 0xf0 */
> +	EXYNOS5420_GPIO_F10,
>  	EXYNOS5420_GPIO_F11,
>  	EXYNOS5420_GPIO_F12,
>  	EXYNOS5420_GPIO_F13,
> @@ -1289,7 +1208,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_F15,
>  	EXYNOS5420_GPIO_F16,
>  	EXYNOS5420_GPIO_F17,
> -	EXYNOS5420_GPIO_G00,		/* 248 0xf8 */
> +	EXYNOS5420_GPIO_G00,
>  	EXYNOS5420_GPIO_G01,
>  	EXYNOS5420_GPIO_G02,
>  	EXYNOS5420_GPIO_G03,
> @@ -1297,7 +1216,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_G05,
>  	EXYNOS5420_GPIO_G06,
>  	EXYNOS5420_GPIO_G07,
> -	EXYNOS5420_GPIO_G10,		/* 256 0x100 */
> +	EXYNOS5420_GPIO_G10,
>  	EXYNOS5420_GPIO_G11,
>  	EXYNOS5420_GPIO_G12,
>  	EXYNOS5420_GPIO_G13,
> @@ -1305,7 +1224,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_G15,
>  	EXYNOS5420_GPIO_G16,
>  	EXYNOS5420_GPIO_G17,
> -	EXYNOS5420_GPIO_G20,		/* 264 0x108 */
> +	EXYNOS5420_GPIO_G20,
>  	EXYNOS5420_GPIO_G21,
>  	EXYNOS5420_GPIO_G22,
>  	EXYNOS5420_GPIO_G23,
> @@ -1313,7 +1232,7 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_G25,
>  	EXYNOS5420_GPIO_G26,
>  	EXYNOS5420_GPIO_G27,
> -	EXYNOS5420_GPIO_J40,		/* 272 0x110 */
> +	EXYNOS5420_GPIO_J40,
>  	EXYNOS5420_GPIO_J41,
>  	EXYNOS5420_GPIO_J42,
>  	EXYNOS5420_GPIO_J43,
> @@ -1322,15 +1241,89 @@ enum exynos5420_gpio_pin {
>  	EXYNOS5420_GPIO_J46,
>  	EXYNOS5420_GPIO_J47,
>  
> -	/* GPIO_PART6_STARTS */
> -	EXYNOS5420_GPIO_MAX_PORT_PART_5,/* 280 0x118 */
> -	EXYNOS5420_GPIO_Z0 = EXYNOS5420_GPIO_MAX_PORT_PART_5,
> +	EXYNOS5420_GPIO_MAX_PORT_PART_3,
> +	EXYNOS5420_GPIO_A00 = EXYNOS5420_GPIO_MAX_PORT_PART_3,
> +	EXYNOS5420_GPIO_A01,
> +	EXYNOS5420_GPIO_A02,
> +	EXYNOS5420_GPIO_A03,
> +	EXYNOS5420_GPIO_A04,
> +	EXYNOS5420_GPIO_A05,
> +	EXYNOS5420_GPIO_A06,
> +	EXYNOS5420_GPIO_A07,
> +	EXYNOS5420_GPIO_A10,
> +	EXYNOS5420_GPIO_A11,
> +	EXYNOS5420_GPIO_A12,
> +	EXYNOS5420_GPIO_A13,
> +	EXYNOS5420_GPIO_A14,
> +	EXYNOS5420_GPIO_A15,
> +	EXYNOS5420_GPIO_A16,
> +	EXYNOS5420_GPIO_A17,
> +	EXYNOS5420_GPIO_A20,
> +	EXYNOS5420_GPIO_A21,
> +	EXYNOS5420_GPIO_A22,
> +	EXYNOS5420_GPIO_A23,
> +	EXYNOS5420_GPIO_A24,
> +	EXYNOS5420_GPIO_A25,
> +	EXYNOS5420_GPIO_A26,
> +	EXYNOS5420_GPIO_A27,
> +	EXYNOS5420_GPIO_B00,
> +	EXYNOS5420_GPIO_B01,
> +	EXYNOS5420_GPIO_B02,
> +	EXYNOS5420_GPIO_B03,
> +	EXYNOS5420_GPIO_B04,
> +	EXYNOS5420_GPIO_B05,
> +	EXYNOS5420_GPIO_B06,
> +	EXYNOS5420_GPIO_B07,
> +	EXYNOS5420_GPIO_B10,
> +	EXYNOS5420_GPIO_B11,
> +	EXYNOS5420_GPIO_B12,
> +	EXYNOS5420_GPIO_B13,
> +	EXYNOS5420_GPIO_B14,
> +	EXYNOS5420_GPIO_B15,
> +	EXYNOS5420_GPIO_B16,
> +	EXYNOS5420_GPIO_B17,
> +	EXYNOS5420_GPIO_B20,
> +	EXYNOS5420_GPIO_B21,
> +	EXYNOS5420_GPIO_B22,
> +	EXYNOS5420_GPIO_B23,
> +	EXYNOS5420_GPIO_B24,
> +	EXYNOS5420_GPIO_B25,
> +	EXYNOS5420_GPIO_B26,
> +	EXYNOS5420_GPIO_B27,
> +	EXYNOS5420_GPIO_B30,
> +	EXYNOS5420_GPIO_B31,
> +	EXYNOS5420_GPIO_B32,
> +	EXYNOS5420_GPIO_B33,
> +	EXYNOS5420_GPIO_B34,
> +	EXYNOS5420_GPIO_B35,
> +	EXYNOS5420_GPIO_B36,
> +	EXYNOS5420_GPIO_B37,
> +	EXYNOS5420_GPIO_B40,
> +	EXYNOS5420_GPIO_B41,
> +	EXYNOS5420_GPIO_B42,
> +	EXYNOS5420_GPIO_B43,
> +	EXYNOS5420_GPIO_B44,
> +	EXYNOS5420_GPIO_B45,
> +	EXYNOS5420_GPIO_B46,
> +	EXYNOS5420_GPIO_B47,
> +	EXYNOS5420_GPIO_H00,
> +	EXYNOS5420_GPIO_H01,
> +	EXYNOS5420_GPIO_H02,
> +	EXYNOS5420_GPIO_H03,
> +	EXYNOS5420_GPIO_H04,
> +	EXYNOS5420_GPIO_H05,
> +	EXYNOS5420_GPIO_H06,
> +	EXYNOS5420_GPIO_H07,
> +
> +	EXYNOS5420_GPIO_MAX_PORT_PART_4,
> +	EXYNOS5420_GPIO_Z0 = EXYNOS5420_GPIO_MAX_PORT_PART_4,
>  	EXYNOS5420_GPIO_Z1,
>  	EXYNOS5420_GPIO_Z2,
>  	EXYNOS5420_GPIO_Z3,
>  	EXYNOS5420_GPIO_Z4,
>  	EXYNOS5420_GPIO_Z5,
>  	EXYNOS5420_GPIO_Z6,
> +
>  	EXYNOS5420_GPIO_MAX_PORT
>  };
>  
> @@ -1366,14 +1359,13 @@ static struct gpio_info
> exynos5_gpio_data[EXYNOS5_GPIO_NUM_PARTS] =
> { { EXYNOS5_GPIO_PART8_BASE, EXYNOS5_GPIO_MAX_PORT }, };
>  
> -#define EXYNOS5420_GPIO_NUM_PARTS	6
> +#define EXYNOS5420_GPIO_NUM_PARTS	5
>  static struct gpio_info
> exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] =
> { { EXYNOS5420_GPIO_PART1_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_1 },
> { EXYNOS5420_GPIO_PART2_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_2 },
> { EXYNOS5420_GPIO_PART3_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_3 },
> { EXYNOS5420_GPIO_PART4_BASE, EXYNOS5420_GPIO_MAX_PORT_PART_4 },
> -	{ EXYNOS5420_GPIO_PART5_BASE,
> EXYNOS5420_GPIO_MAX_PORT_PART_5 },
> -	{ EXYNOS5420_GPIO_PART6_BASE, EXYNOS5420_GPIO_MAX_PORT },
> +	{ EXYNOS5420_GPIO_PART5_BASE, EXYNOS5420_GPIO_MAX_PORT },
>  };
>  
>  static inline struct gpio_info *get_gpio_data(void)
> @@ -1486,17 +1478,17 @@ static const struct gpio_name_num_table
> exynos5_gpio_table[] = { };
>  
>  static const struct gpio_name_num_table exynos5420_gpio_table[] = {
> -	GPIO_ENTRY('a', EXYNOS5420_GPIO_A00, EXYNOS5420_GPIO_B00, 0),
> -	GPIO_ENTRY('b', EXYNOS5420_GPIO_B00, EXYNOS5420_GPIO_H00, 0),
> -	GPIO_ENTRY('h', EXYNOS5420_GPIO_H00, EXYNOS5420_GPIO_Y70, 0),
>  	GPIO_ENTRY('x', EXYNOS5420_GPIO_X00, EXYNOS5420_GPIO_C00, 0),
>  	GPIO_ENTRY('c', EXYNOS5420_GPIO_C00, EXYNOS5420_GPIO_D10, 0),
> -	GPIO_ENTRY('d', EXYNOS5420_GPIO_D10, EXYNOS5420_GPIO_Y00,
> 010),
> +	GPIO_ENTRY('d', EXYNOS5420_GPIO_D10, EXYNOS5420_GPIO_Y00, 0),
>  	GPIO_ENTRY('y', EXYNOS5420_GPIO_Y00, EXYNOS5420_GPIO_E00, 0),
>  	GPIO_ENTRY('e', EXYNOS5420_GPIO_E00, EXYNOS5420_GPIO_F00, 0),
>  	GPIO_ENTRY('f', EXYNOS5420_GPIO_F00, EXYNOS5420_GPIO_G00, 0),
>  	GPIO_ENTRY('g', EXYNOS5420_GPIO_G00, EXYNOS5420_GPIO_J40, 0),
> -	GPIO_ENTRY('j', EXYNOS5420_GPIO_J40, EXYNOS5420_GPIO_Z0,
> 040),
> +	GPIO_ENTRY('j', EXYNOS5420_GPIO_J40, EXYNOS5420_GPIO_A00, 0),
> +	GPIO_ENTRY('a', EXYNOS5420_GPIO_A00, EXYNOS5420_GPIO_B00, 0),
> +	GPIO_ENTRY('b', EXYNOS5420_GPIO_B00, EXYNOS5420_GPIO_H00, 0),
> +	GPIO_ENTRY('h', EXYNOS5420_GPIO_H00, EXYNOS5420_GPIO_Z0, 0),
>  	GPIO_ENTRY('z', EXYNOS5420_GPIO_Z0,
> EXYNOS5420_GPIO_MAX_PORT, 0), { 0 }
>  };

It may be not relevant here, but please keep in mind that GPIO
subsystem is now under porting to device tree.
Please check if your patches are in sync with u-boot-dm (device model)
tree.

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 2/3] Exynos5422: Add support for Exynos5422
       [not found] ` <1414743971-29750-2-git-send-email-human.hwang@samsung.com>
@ 2014-10-31  9:08   ` Lukasz Majewski
  2014-10-31  9:25     ` Hyungwon Hwang
  0 siblings, 1 reply; 5+ messages in thread
From: Lukasz Majewski @ 2014-10-31  9:08 UTC (permalink / raw)
  To: u-boot

Hi Hyungwon,

> This patch adds support for Exynos5422 including GPIO, clock,
> pinmux, and cpu id.
> 
> Change-Id: Ic609973ab531e2b6ee9a68cfec0b6b9571f203a8
> Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
> ---
>  arch/arm/include/asm/arch-exynos/gpio.h | 31
> +++++++++++++++++++++++++++++--
> drivers/gpio/s5p_gpio.c                 |  4 +++- 2 files changed, 32
> insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/include/asm/arch-exynos/gpio.h
> b/arch/arm/include/asm/arch-exynos/gpio.h index 431ae3a..8f82ef0
> 100644 --- a/arch/arm/include/asm/arch-exynos/gpio.h
> +++ b/arch/arm/include/asm/arch-exynos/gpio.h
> @@ -1368,11 +1368,21 @@ static struct gpio_info
> exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] =
> { { EXYNOS5420_GPIO_PART5_BASE, EXYNOS5420_GPIO_MAX_PORT }, };
>  
> +#define EXYNOS5800_GPIO_NUM_PARTS	4
> +static struct gpio_info
> exynos5800_gpio_data[EXYNOS5800_GPIO_NUM_PARTS] = {
> +	{ EXYNOS5420_GPIO_PART1_BASE,
> EXYNOS5420_GPIO_MAX_PORT_PART_1 },
> +	{ EXYNOS5420_GPIO_PART2_BASE,
> EXYNOS5420_GPIO_MAX_PORT_PART_2 },
> +	{ EXYNOS5420_GPIO_PART3_BASE,
> EXYNOS5420_GPIO_MAX_PORT_PART_3 },
> +	{ EXYNOS5420_GPIO_PART4_BASE,
> EXYNOS5420_GPIO_MAX_PORT_PART_4 }, +};
> +
>  static inline struct gpio_info *get_gpio_data(void)
>  {
>  	if (cpu_is_exynos5()) {
> -		if (proid_is_exynos5420() || proid_is_exynos5800())
> +		if (proid_is_exynos5420())
>  			return exynos5420_gpio_data;
> +		else if (proid_is_exynos5800())
> +			return exynos5800_gpio_data;
>  		else
>  			return exynos5_gpio_data;
>  	} else if (cpu_is_exynos4()) {
> @@ -1388,8 +1398,10 @@ static inline struct gpio_info
> *get_gpio_data(void) static inline unsigned int get_bank_num(void)
>  {
>  	if (cpu_is_exynos5()) {
> -		if (proid_is_exynos5420() || proid_is_exynos5800())
> +		if (proid_is_exynos5420())
>  			return EXYNOS5420_GPIO_NUM_PARTS;
> +		if (proid_is_exynos5800())
> +			return EXYNOS5800_GPIO_NUM_PARTS;
>  		else
>  			return EXYNOS5_GPIO_NUM_PARTS;
>  	} else if (cpu_is_exynos4()) {
> @@ -1493,6 +1505,21 @@ static const struct gpio_name_num_table
> exynos5420_gpio_table[] = { { 0 }
>  };
>  
> +static const struct gpio_name_num_table exynos5800_gpio_table[] = {
> +	GPIO_ENTRY('x', EXYNOS5420_GPIO_X00, EXYNOS5420_GPIO_C00, 0),
> +	GPIO_ENTRY('c', EXYNOS5420_GPIO_C00, EXYNOS5420_GPIO_D10, 0),
> +	GPIO_ENTRY('d', EXYNOS5420_GPIO_D10, EXYNOS5420_GPIO_Y00, 0),
> +	GPIO_ENTRY('y', EXYNOS5420_GPIO_Y00, EXYNOS5420_GPIO_E00, 0),
> +	GPIO_ENTRY('e', EXYNOS5420_GPIO_E00, EXYNOS5420_GPIO_F00, 0),
> +	GPIO_ENTRY('f', EXYNOS5420_GPIO_F00, EXYNOS5420_GPIO_G00, 0),
> +	GPIO_ENTRY('g', EXYNOS5420_GPIO_G00, EXYNOS5420_GPIO_J40, 0),
> +	GPIO_ENTRY('j', EXYNOS5420_GPIO_J40, EXYNOS5420_GPIO_A00, 0),
> +	GPIO_ENTRY('a', EXYNOS5420_GPIO_A00, EXYNOS5420_GPIO_B00, 0),
> +	GPIO_ENTRY('b', EXYNOS5420_GPIO_B00, EXYNOS5420_GPIO_H00, 0),
> +	GPIO_ENTRY('h', EXYNOS5420_GPIO_H00, EXYNOS5420_GPIO_Z0, 0),
> +	{ 0 }
> +};
> +
>  void gpio_cfg_pin(int gpio, int cfg);
>  void gpio_set_pull(int gpio, int mode);
>  void gpio_set_drv(int gpio, int mode);
> diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c
> index bcf44eb..bed7cd7 100644
> --- a/drivers/gpio/s5p_gpio.c
> +++ b/drivers/gpio/s5p_gpio.c
> @@ -57,11 +57,13 @@ static inline int s5p_name_to_gpio(const char
> *name) */
>  #if defined(CONFIG_EXYNOS4) || defined(CONFIG_EXYNOS5)
>  	if (cpu_is_exynos5()) {
> -		if (proid_is_exynos5420() || proid_is_exynos5800()) {
> +		if (proid_is_exynos5420()) {
>  			tabp = exynos5420_gpio_table;
>  			irregular_bank_name = 'y';
>  			irregular_set_number = '7';
>  			irregular_bank_base = EXYNOS5420_GPIO_Y70;
> +		} else if (proid_is_exynos5800()) {
> +			tabp = exynos5800_gpio_table;
>  		} else {
>  			tabp = exynos5_gpio_table;
>  			irregular_bank_name = 'c';

I'm a bit confused here. 

We already support exynos5420 in the mainline. It only slightly
differs from Exynos5422. Additionally there is Exynos5800 which is a
different HW revision of Exynos5422. 

In the message topic you stated that you add support for Exynos5422.
Maybe we could use Exynos5800 name also for Exynos5422 (with a big,
fat note about those two chips compliance added to ./doc directory)?

@ Akshay, Minkyu:

What do you think about this idea?

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 2/3] Exynos5422: Add support for Exynos5422
  2014-10-31  9:08   ` [U-Boot] [PATCH 2/3] Exynos5422: Add support for Exynos5422 Lukasz Majewski
@ 2014-10-31  9:25     ` Hyungwon Hwang
  2014-10-31  9:56       ` Lukasz Majewski
  0 siblings, 1 reply; 5+ messages in thread
From: Hyungwon Hwang @ 2014-10-31  9:25 UTC (permalink / raw)
  To: u-boot

Hi,

On Fri, 31 Oct 2014 10:08:34 +0100
Lukasz Majewski <l.majewski@samsung.com> wrote:

> Hi Hyungwon,
> 
> > This patch adds support for Exynos5422 including GPIO, clock,
> > pinmux, and cpu id.
> > 
> > Change-Id: Ic609973ab531e2b6ee9a68cfec0b6b9571f203a8
> > Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
> > ---
> >  arch/arm/include/asm/arch-exynos/gpio.h | 31
> > +++++++++++++++++++++++++++++--
> > drivers/gpio/s5p_gpio.c                 |  4 +++- 2 files changed, 32
> > insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/arm/include/asm/arch-exynos/gpio.h
> > b/arch/arm/include/asm/arch-exynos/gpio.h index 431ae3a..8f82ef0
> > 100644 --- a/arch/arm/include/asm/arch-exynos/gpio.h
> > +++ b/arch/arm/include/asm/arch-exynos/gpio.h
> > @@ -1368,11 +1368,21 @@ static struct gpio_info
> > exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] =
> > { { EXYNOS5420_GPIO_PART5_BASE, EXYNOS5420_GPIO_MAX_PORT }, };
> >  
> > +#define EXYNOS5800_GPIO_NUM_PARTS	4
> > +static struct gpio_info
> > exynos5800_gpio_data[EXYNOS5800_GPIO_NUM_PARTS] = {
> > +	{ EXYNOS5420_GPIO_PART1_BASE,
> > EXYNOS5420_GPIO_MAX_PORT_PART_1 },
> > +	{ EXYNOS5420_GPIO_PART2_BASE,
> > EXYNOS5420_GPIO_MAX_PORT_PART_2 },
> > +	{ EXYNOS5420_GPIO_PART3_BASE,
> > EXYNOS5420_GPIO_MAX_PORT_PART_3 },
> > +	{ EXYNOS5420_GPIO_PART4_BASE,
> > EXYNOS5420_GPIO_MAX_PORT_PART_4 }, +};
> > +
> >  static inline struct gpio_info *get_gpio_data(void)
> >  {
> >  	if (cpu_is_exynos5()) {
> > -		if (proid_is_exynos5420() || proid_is_exynos5800())
> > +		if (proid_is_exynos5420())
> >  			return exynos5420_gpio_data;
> > +		else if (proid_is_exynos5800())
> > +			return exynos5800_gpio_data;
> >  		else
> >  			return exynos5_gpio_data;
> >  	} else if (cpu_is_exynos4()) {
> > @@ -1388,8 +1398,10 @@ static inline struct gpio_info
> > *get_gpio_data(void) static inline unsigned int get_bank_num(void)
> >  {
> >  	if (cpu_is_exynos5()) {
> > -		if (proid_is_exynos5420() || proid_is_exynos5800())
> > +		if (proid_is_exynos5420())
> >  			return EXYNOS5420_GPIO_NUM_PARTS;
> > +		if (proid_is_exynos5800())
> > +			return EXYNOS5800_GPIO_NUM_PARTS;
> >  		else
> >  			return EXYNOS5_GPIO_NUM_PARTS;
> >  	} else if (cpu_is_exynos4()) {
> > @@ -1493,6 +1505,21 @@ static const struct gpio_name_num_table
> > exynos5420_gpio_table[] = { { 0 }
> >  };
> >  
> > +static const struct gpio_name_num_table exynos5800_gpio_table[] = {
> > +	GPIO_ENTRY('x', EXYNOS5420_GPIO_X00, EXYNOS5420_GPIO_C00, 0),
> > +	GPIO_ENTRY('c', EXYNOS5420_GPIO_C00, EXYNOS5420_GPIO_D10, 0),
> > +	GPIO_ENTRY('d', EXYNOS5420_GPIO_D10, EXYNOS5420_GPIO_Y00, 0),
> > +	GPIO_ENTRY('y', EXYNOS5420_GPIO_Y00, EXYNOS5420_GPIO_E00, 0),
> > +	GPIO_ENTRY('e', EXYNOS5420_GPIO_E00, EXYNOS5420_GPIO_F00, 0),
> > +	GPIO_ENTRY('f', EXYNOS5420_GPIO_F00, EXYNOS5420_GPIO_G00, 0),
> > +	GPIO_ENTRY('g', EXYNOS5420_GPIO_G00, EXYNOS5420_GPIO_J40, 0),
> > +	GPIO_ENTRY('j', EXYNOS5420_GPIO_J40, EXYNOS5420_GPIO_A00, 0),
> > +	GPIO_ENTRY('a', EXYNOS5420_GPIO_A00, EXYNOS5420_GPIO_B00, 0),
> > +	GPIO_ENTRY('b', EXYNOS5420_GPIO_B00, EXYNOS5420_GPIO_H00, 0),
> > +	GPIO_ENTRY('h', EXYNOS5420_GPIO_H00, EXYNOS5420_GPIO_Z0, 0),
> > +	{ 0 }
> > +};
> > +
> >  void gpio_cfg_pin(int gpio, int cfg);
> >  void gpio_set_pull(int gpio, int mode);
> >  void gpio_set_drv(int gpio, int mode);
> > diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c
> > index bcf44eb..bed7cd7 100644
> > --- a/drivers/gpio/s5p_gpio.c
> > +++ b/drivers/gpio/s5p_gpio.c
> > @@ -57,11 +57,13 @@ static inline int s5p_name_to_gpio(const char
> > *name) */
> >  #if defined(CONFIG_EXYNOS4) || defined(CONFIG_EXYNOS5)
> >  	if (cpu_is_exynos5()) {
> > -		if (proid_is_exynos5420() || proid_is_exynos5800()) {
> > +		if (proid_is_exynos5420()) {
> >  			tabp = exynos5420_gpio_table;
> >  			irregular_bank_name = 'y';
> >  			irregular_set_number = '7';
> >  			irregular_bank_base = EXYNOS5420_GPIO_Y70;
> > +		} else if (proid_is_exynos5800()) {
> > +			tabp = exynos5800_gpio_table;
> >  		} else {
> >  			tabp = exynos5_gpio_table;
> >  			irregular_bank_name = 'c';
> 
> I'm a bit confused here. 
> 
> We already support exynos5420 in the mainline. It only slightly
> differs from Exynos5422. Additionally there is Exynos5800 which is a
> different HW revision of Exynos5422. 

Yes. You're right. I was not in the subscriber list when I send this mail. So
when I sent this mail, I received an auto-replied mail which I can cancel this
email. I canceled this mail. But the mail sent to your and Minkyu Kang was not.
Sorry for the confusion. Please refer the latest mail.

> 
> In the message topic you stated that you add support for Exynos5422.
> Maybe we could use Exynos5800 name also for Exynos5422 (with a big,
> fat note about those two chips compliance added to ./doc directory)?
> 
> @ Akshay, Minkyu:
> 
> What do you think about this idea?
> 

Best regards,
Hyungwon Hwang


-- 
Hyungwon Hwang
S/W Platform Team, Software Center
Samsung Electronics
human.hwang at samsung.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 3/3] Odroid-XU3: Add support for Odroid-XU3
       [not found] ` <1414743971-29750-3-git-send-email-human.hwang@samsung.com>
@ 2014-10-31  9:45   ` Lukasz Majewski
  0 siblings, 0 replies; 5+ messages in thread
From: Lukasz Majewski @ 2014-10-31  9:45 UTC (permalink / raw)
  To: u-boot

Hi Hyungwon,

> This patch adds support for Odroid-XU3.
> 
> Change-Id: Ia45d119a62b126f2328684485b8c372ba6acbe00

As stated previously - please run checkpatch.pl on a patch before
submitting.

> Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
> ---
>  arch/arm/cpu/armv7/exynos/Kconfig     |   4 +
>  arch/arm/dts/Makefile                 |   3 +-
>  arch/arm/dts/exynos5422-odroidxu3.dts |  72 ++++++++++
>  board/samsung/odroid-xu3/Kconfig      |  12 ++
>  board/samsung/odroid-xu3/MAINTAINERS  |   6 +
>  board/samsung/odroid-xu3/Makefile     |   7 +
>  board/samsung/odroid-xu3/odroid-xu3.c | 132 ++++++++++++++++++
>  board/samsung/odroid-xu3/setup.h      | 123 +++++++++++++++++
>  configs/odroid-xu3_defconfig          |   4 +
>  include/configs/odroid_xu3.h          | 243
> ++++++++++++++++++++++++++++++++++ 10 files changed, 605
> insertions(+), 1 deletion(-) create mode 100644
> arch/arm/dts/exynos5422-odroidxu3.dts create mode 100644
> board/samsung/odroid-xu3/Kconfig create mode 100644
> board/samsung/odroid-xu3/MAINTAINERS create mode 100644
> board/samsung/odroid-xu3/Makefile create mode 100644
> board/samsung/odroid-xu3/odroid-xu3.c create mode 100644
> board/samsung/odroid-xu3/setup.h create mode 100644
> configs/odroid-xu3_defconfig create mode 100644
> include/configs/odroid_xu3.h
> 
> diff --git a/arch/arm/cpu/armv7/exynos/Kconfig
> b/arch/arm/cpu/armv7/exynos/Kconfig index 3a25fee..a47cb34 100644
> --- a/arch/arm/cpu/armv7/exynos/Kconfig
> +++ b/arch/arm/cpu/armv7/exynos/Kconfig
> @@ -22,6 +22,9 @@ config TARGET_TRATS2
>  config TARGET_ODROID
>  	bool "Exynos4412 Odroid board"
>  
> +config TARGET_ODROID_XU3
> +	bool "Exynos5422 Odroid board"
> +
>  config TARGET_ARNDALE
>  	bool "Exynos5250 Arndale board"
>  	select OF_CONTROL if !SPL_BUILD
> @@ -60,6 +63,7 @@ source "board/samsung/universal_c210/Kconfig"
>  source "board/samsung/origen/Kconfig"
>  source "board/samsung/trats2/Kconfig"
>  source "board/samsung/odroid/Kconfig"
> +source "board/samsung/odroid-xu3/Kconfig"
>  source "board/samsung/arndale/Kconfig"
>  source "board/samsung/smdk5250/Kconfig"
>  source "board/samsung/smdk5420/Kconfig"
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 2dcfcc0..66191f9 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -12,7 +12,8 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
>  	exynos5250-smdk5250.dtb \
>  	exynos5420-smdk5420.dtb \
>  	exynos5420-peach-pit.dtb \
> -	exynos5800-peach-pi.dtb
> +	exynos5800-peach-pi.dtb \
> +	exynos5422-odroidxu3.dtb
>  dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \
>  	tegra20-medcom-wide.dtb \
>  	tegra20-paz00.dtb \
> diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts
> b/arch/arm/dts/exynos5422-odroidxu3.dts new file mode 100644
> index 0000000..34f52c6
> --- /dev/null
> +++ b/arch/arm/dts/exynos5422-odroidxu3.dts
> @@ -0,0 +1,72 @@
> +/*
> + * Odroid XU3 device tree source
> + *
> + * Copyright (c) 2014 Samsung Electronics Co., Ltd.
> + *		http://www.samsung.com
> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +/dts-v1/;
> +/include/ "exynos54xx.dtsi"
> +
> +/ {
> +	model = "Odroid XU3 based on EXYNOS5422";
> +	compatible = "samsung,odroidxu3", "samsung,exynos5";
> +
> +	config {
> +		hwid = "smdk5420 TEST A-A 9382";
> +	};
> +
> +	aliases {
> +		serial0 = "/serial at 12C00000";
> +		console = "/serial at 12C20000";
> +	};
> +
> +	memory {
> +		device_type = "memory";
> +		reg =  <0x40000000 0x10000000
> +			0x50000000 0x10000000
> +			0x60000000 0x10000000
> +			0x70000000 0x10000000
> +			0x80000000 0x10000000
> +			0x90000000 0x10000000
> +			0xa0000000 0x10000000
> +			0xb0000000 0xea00000>;
> +	};
> +
> +	serial at 12C20000 {
> +		status="okay";
> +	};
> +
> +	/* s2mps11 is on i2c bus 4 */
> +	i2c at 12ca0000 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		pmic at 66 {
> +			reg = <0x66>;
> +			compatible = "samsung,s2mps11-pmic";
> +		};
> +	};
> +
> +	mmc at 12200000 {
> +		samsung,bus-width = <8>;
> +		samsung,timing = <1 3 3>;
> +		samsung,removable = <0>;
> +		samsung,pre-init;
> +	};
> +
> +	mmc at 12210000 {
> +		status = "disabled";
> +	};
> +
> +	mmc at 12220000 {
> +		samsung,bus-width = <4>;
> +		samsung,timing = <1 2 3>;
> +		samsung,removable = <1>;
> +	};
> +
> +	mmc at 12230000 {
> +		status = "disabled";
> +	};
> +};
> diff --git a/board/samsung/odroid-xu3/Kconfig
> b/board/samsung/odroid-xu3/Kconfig new file mode 100644
> index 0000000..6159692
> --- /dev/null
> +++ b/board/samsung/odroid-xu3/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_ODROID_XU3
> +
> +config SYS_BOARD
> +	default "odroid-xu3"
> +
> +config SYS_VENDOR
> +	default "samsung"
> +
> +config SYS_CONFIG_NAME
> +	default "odroid_xu3"
> +
> +endif
> diff --git a/board/samsung/odroid-xu3/MAINTAINERS
> b/board/samsung/odroid-xu3/MAINTAINERS new file mode 100644
> index 0000000..50cf928
> --- /dev/null
> +++ b/board/samsung/odroid-xu3/MAINTAINERS
> @@ -0,0 +1,6 @@
> +ODROID-XU3 BOARD
> +M:	Hyungwon Hwang <human.hwang@samsung.com>
> +S:	Maintained
> +F:	board/samsung/odroid-xu3/
> +F:	include/configs/odroid_xu3.h
> +F:	configs/odroid-xu3_defconfig
> diff --git a/board/samsung/odroid-xu3/Makefile
> b/board/samsung/odroid-xu3/Makefile new file mode 100644
> index 0000000..85ae5c5
> --- /dev/null
> +++ b/board/samsung/odroid-xu3/Makefile
> @@ -0,0 +1,7 @@
> +#
> +# Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights
> reserved. +#
> +# SPDX-License-Identifier:	GPL-2.0+
> +#
> +
> +obj-y	:= odroid-xu3.o
> diff --git a/board/samsung/odroid-xu3/odroid-xu3.c
> b/board/samsung/odroid-xu3/odroid-xu3.c new file mode 100644
> index 0000000..f054e4e
> --- /dev/null
> +++ b/board/samsung/odroid-xu3/odroid-xu3.c
> @@ -0,0 +1,132 @@
> +/*
> + * Copyright (C) 2014 Samsung Electronics
> + * Hyungwon Hwang <human.hwang@samsung.com>
> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <netdev.h>
> +#include <asm/arch/cpu.h>
> +#include <asm/arch/clock.h>
> +#include <asm/arch/power.h>
> +#include <asm/arch/gpio.h>
> +#include <asm/arch/mmc.h>
> +#include <asm/arch/pinmux.h>
> +#include <asm/arch/sromc.h>
> +
> +#include "setup.h"
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +unsigned int get_board_rev(void)
> +{
> +	unsigned int rev = 0;
> +	return rev;
> +}
> +
> +int exynos_init(void)
> +{
> +	return 0;
> +}
> +
> +static int board_clock_init(void)
> +{
> +	unsigned int set, clr, clr_src_cpu, clr_pll_con0;
> +	struct exynos5420_clock *clk = (struct exynos5420_clock *)
> +
> samsung_get_base_clock();
> +	/*
> +	 * CMU_CPU clocks src to MPLL
> +	 * Bit values:                 0  ; 1
> +	 * MUX_APLL_SEL:        FIN_PLL   ; FOUT_APLL
> +	 * MUX_CORE_SEL:        MOUT_APLL ; SCLK_MPLL
> +	 * MUX_HPM_SEL:         MOUT_APLL ; SCLK_MPLL_USER_C
> +	 * MUX_MPLL_USER_SEL_C: FIN_PLL   ; SCLK_MPLL
> +	*/
> +
> +	/* Set CMU_CPU clocks src to OSCCLK */
> +	clr_src_cpu = MUX_APLL_SEL(1) | MUX_CORE_SEL(1);
> +	set = MUX_APLL_SEL(0) | MUX_CORE_SEL(1);
> +
> +	clrsetbits_le32(&clk->src_cpu, clr_src_cpu, set);
> +
> +	while (MUX_STAT_CPU_CHANGING(readl(&clk->mux_stat_cpu)))
> +		continue;
> +
> +	/* Set APLL to 1200MHz */
> +	clr_pll_con0 = SDIV(7) | PDIV(63) | MDIV(1023) | FSEL(1) |
> +			PLL_ENABLE(1);
> +	set = SDIV(0) | PDIV(2) | MDIV(100) | PLL_ENABLE(1);
> +
> +	clrsetbits_le32(&clk->apll_con0, clr_pll_con0, set);
> +
> +	while (!(readl(&clk->apll_con0) & PLL_LOCKED_BIT))
> +		continue;
> +
> +	/* Set CMU_CPU clocks src to APLL */
> +	set = MUX_APLL_SEL(1) | MUX_CORE_SEL(0);
> +	clrsetbits_le32(&clk->src_cpu, clr_src_cpu, set);
> +
> +	while (MUX_STAT_CPU_CHANGING(readl(&clk->mux_stat_cpu)))
> +		continue;
> +
> +	clr = ARM_RATIO(7) | CPUD_RATIO(7) | ATB_RATIO(7) |
> +	      PCLK_DBG_RATIO(7) | APLL_RATIO(7) | ARM2_RATIO(7);
> +	set = ARM_RATIO(0) | CPUD_RATIO(2) | ATB_RATIO(5) |
> +	      PCLK_DBG_RATIO(5) | APLL_RATIO(0) | ARM2_RATIO(0);
> +
> +	clrsetbits_le32(&clk->div_cpu0, clr, set);
> +
> +	while (readl(&clk->div_stat_cpu0) & DIV_STAT_CPU0_CHANGING)
> +		continue;
> +
> +	/* Set MPLL to 800MHz */
> +	set = SDIV(1) | PDIV(3) | MDIV(200) | PLL_ENABLE(1);
> +
> +	clrsetbits_le32(&clk->mpll_con0, clr_pll_con0, set);
> +
> +	while (!(readl(&clk->mpll_con0) & PLL_LOCKED_BIT))
> +		continue;
> +
> +	/* Set CLKMUX_UART src to MPLL */
> +	clr = UART0_SEL(7) | UART1_SEL(7) | UART2_SEL(7) |
> UART3_SEL(7);
> +	set = UART0_SEL(3) | UART1_SEL(3) | UART2_SEL(3) |
> UART3_SEL(3); +
> +	clrsetbits_le32(&clk->src_peric0, clr, set);
> +
> +	/* Set SCLK_UART to 400 MHz (MPLL / 2) */
> +	clr = UART0_RATIO(15) | UART1_RATIO(15) | UART2_RATIO(15) |
> +	      UART3_RATIO(15);
> +	set = UART0_RATIO(1) | UART1_RATIO(1) | UART2_RATIO(1) |
> +	      UART3_RATIO(1);
> +
> +	clrsetbits_le32(&clk->div_peric0, clr, set);
> +
> +	while (readl(&clk->div_stat_peric0) &
> DIV_STAT_PERIC0_CHANGING)
> +		continue;
> +
> +	/* Set CLKMUX_MMC src to MPLL */
> +	clr = MUX_MMC0_SEL(7) | MUX_MMC1_SEL(7) | MUX_MMC2_SEL(7);
> +	set = MUX_MMC0_SEL(3) | MUX_MMC1_SEL(3) | MUX_MMC2_SEL(3);
> +
> +	clrsetbits_le32(&clk->src_fsys, clr, set);
> +
> +	clr = MMC0_RATIO(0x3ff) | MMC1_RATIO(0x3ff) |
> MMC2_RATIO(0x3ff);
> +	set = MMC0_RATIO(0) | MMC1_RATIO(0) | MMC2_RATIO(0);
> +
> +	clrsetbits_le32(&clk->div_fsys1, clr, set);
> +
> +	/* Wait for divider ready status */
> +	while (readl(&clk->div_stat_fsys1) & DIV_STAT_FSYS1_CHANGING)
> +		continue;
> +
> +	return 0;
> +}
> +
> +#ifdef CONFIG_BOARD_EARLY_INIT_F
> +int exynos_early_init_f(void)
> +{
> +	return board_clock_init();
> +}
> +#endif
> diff --git a/board/samsung/odroid-xu3/setup.h
> b/board/samsung/odroid-xu3/setup.h new file mode 100644
> index 0000000..481adb9
> --- /dev/null
> +++ b/board/samsung/odroid-xu3/setup.h
> @@ -0,0 +1,123 @@
> +/*
> + * (C) Copyright 2010 Samsung Electronics
> + * Minkyu Kang <mk7.kang@samsung.com>

Are those credentials correct?

> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +#ifndef __ODROID_XU3_SETUP__
> +#define __ODROID_XU3_SETUP__
> +
> +#define SDIV(x)			((x) & 0x7)
> +#define PDIV(x)			((x & 0x3f) << 8)
> +#define MDIV(x)			((x & 0x3ff) << 16)
> +#define FSEL(x)			((x & 0x1) << 27)
> +#define PLL_LOCKED_BIT		(0x1 << 29)
> +#define PLL_ENABLE(x)		((x & 0x1) << 31)

Above definitions are already defined in
the ./board/samsung/odroid/setup.h

It would be a very good idea to extract common setup code and put it in
a separate file. Maybe in ./samsung/common directory?

> +
> +#define DIV_STAT_CHANGING	0x1
> +
> +/* CLK_SRC_CPU */
> +#define MUX_APLL_SEL(x)         ((x) & 0x1)
> +#define MUX_CORE_SEL(x)         (((x) & 0x1) << 16)
> +
> +/* CLK_MUX_STAT_CPU */
> +#define APLL_SEL(x)             ((x) & 0x7)
> +#define CORE_SEL(x)             (((x) & 0x7) << 16)
> +#define MUX_STAT_CPU_CHANGING(x)	!(((x) & APLL_SEL(0))
> ||	\
> +					   (x) & APLL_SEL(1)
> ||		\
> +					   (x) & CORE_SEL(0)
> ||		\
> +					   (x) & CORE_SEL(1))
> +
> +/* CLK_DIV_CPU0 */
> +#define ARM_RATIO(x)           ((x) & 0x7)
> +#define CPUD_RATIO(x)         (((x) & 0x7) << 4)
> +#define ATB_RATIO(x)         (((x) & 0x7) << 16)
> +#define PCLK_DBG_RATIO(x)       (((x) & 0x7) << 20)
> +#define APLL_RATIO(x)           (((x) & 0x7) << 24)
> +#define ARM2_RATIO(x)         (((x) & 0x7) << 28)
> +
> +/* CLK_DIV_STAT_CPU0 */
> +#define DIV_CPUD(x)           (((x) & 0x1) << 4)
> +#define DIV_ATB(x)              (((x) & 0x1) << 16)
> +#define DIV_PCLK_DBG(x)         (((x) & 0x1) << 20)
> +#define DIV_APLL(x)             (((x) & 0x1) << 24)
> +#define DIV_ARM2(x)            (((x) & 0x1) << 28)
> +
> +#define DIV_STAT_CPU0_CHANGING  (DIV_CPUD(DIV_STAT_CHANGING) | \
> +				 DIV_ATB(DIV_STAT_CHANGING) | \
> +				 DIV_PCLK_DBG(DIV_STAT_CHANGING) | \
> +				 DIV_APLL(DIV_STAT_CHANGING) | \
> +				 DIV_ARM2(DIV_STAT_CHANGING))
> +
> +/* Set CLK_SRC_PERIC0 */
> +#define UART0_SEL(x)		(((x) & 0xf) << 4)
> +#define UART1_SEL(x)		(((x) & 0xf) << 8)
> +#define UART2_SEL(x)		(((x) & 0xf) << 12)
> +#define UART3_SEL(x)		(((x) & 0xf) << 16)
> +
> +/* Set CLK_DIV_PERIL0 */
> +#define UART0_RATIO(x)		(((x) & 0xf) << 8)
> +#define UART1_RATIO(x)		(((x) & 0xf) << 12)
> +#define UART2_RATIO(x)		(((x) & 0xf) << 16)
> +#define UART3_RATIO(x)		(((x) & 0xf) << 20)
> +
> +/* Set CLK_DIV_STAT_PERIL0 */
> +#define DIV_UART0(x)		((x) & 0x1)
> +#define DIV_UART1(x)		(((x) & 0x1) << 4)
> +#define DIV_UART2(x)		(((x) & 0x1) << 8)
> +#define DIV_UART3(x)		(((x) & 0x1) << 12)
> +#define DIV_UART4(x)		(((x) & 0x1) << 16)
> +
> +#define DIV_STAT_PERIC0_CHANGING (DIV_UART4(DIV_STAT_CHANGING) | \
> +				  DIV_UART3(DIV_STAT_CHANGING) | \
> +				  DIV_UART2(DIV_STAT_CHANGING) | \
> +				  DIV_UART1(DIV_STAT_CHANGING) | \
> +				  DIV_UART0(DIV_STAT_CHANGING))
> +
> +/* CLK_SRC_FSYS */
> +#define MUX_MMC0_SEL(x)		(((x) & 0x7) << 8)
> +#define MUX_MMC1_SEL(x)		(((x) & 0x7) << 12)
> +#define MUX_MMC2_SEL(x)		(((x) & 0x7) << 16)
> +
> +/* CLK_DIV_FSYS1 */
> +#define MMC0_RATIO(x)		((x) & 0x3ff)
> +#define MMC1_RATIO(x)		(((x) & 0x3ff) << 10)
> +#define MMC2_RATIO(x)		(((x) & 0x3ff) << 20)
> +
> +#define DIV_MMC0(x)		(((x) & 1) << 20)
> +#define DIV_MMC1(x)		(((x) & 1) << 24)
> +#define DIV_MMC2(x)		(((x) & 1) << 28)
> +
> +#define DIV_STAT_FSYS1_CHANGING	(DIV_MMC0(DIV_STAT_CHANGING)
> | \
> +				 DIV_MMC1(DIV_STAT_CHANGING) | \
> +				 DIV_MMC2(DIV_STAT_CHANGING))
> +
> +#define MPLL_FOUT_SEL_SHIFT	4
> +#define EXYNOS5_EPLLCON0_LOCKED_SHIFT	29  /* EPLL Locked bit
> position*/ +#define TIMEOUT_EPLL_LOCK		1000
> +
> +#define AUDIO_0_RATIO_MASK		0x0f
> +#define AUDIO_1_RATIO_MASK		0x0f
> +
> +#define AUDIO0_SEL_MASK			0xf
> +#define AUDIO1_SEL_MASK			0xf
> +
> +#define CLK_SRC_SCLK_EPLL		0x7
> +#define CLK_SRC_MOUT_EPLL		(1<<12)
> +#define AUDIO_CLKMUX_ASS		(1<<0)
> +
> +/* CON0 bit-fields */
> +#define EPLL_CON0_MDIV_MASK		0x1ff
> +#define EPLL_CON0_PDIV_MASK		0x3f
> +#define EPLL_CON0_SDIV_MASK		0x7
> +#define EPLL_CON0_MDIV_SHIFT		16
> +#define EPLL_CON0_PDIV_SHIFT		8
> +#define EPLL_CON0_SDIV_SHIFT		0
> +#define EPLL_CON0_LOCK_DET_EN_SHIFT	28
> +#define EPLL_CON0_LOCK_DET_EN_MASK	1
> +
> +#define MPLL_FOUT_SEL_MASK	0x1
> +#define BPLL_FOUT_SEL_SHIFT	0
> +#define BPLL_FOUT_SEL_MASK	0x1
> +#endif
> diff --git a/configs/odroid-xu3_defconfig
> b/configs/odroid-xu3_defconfig new file mode 100644
> index 0000000..74aa0cf
> --- /dev/null
> +++ b/configs/odroid-xu3_defconfig
> @@ -0,0 +1,4 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_EXYNOS=y
> +CONFIG_TARGET_ODROID_XU3=y
> +CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"
> diff --git a/include/configs/odroid_xu3.h
> b/include/configs/odroid_xu3.h new file mode 100644
> index 0000000..f0d5646
> --- /dev/null
> +++ b/include/configs/odroid_xu3.h
> @@ -0,0 +1,243 @@
> +/*
> + * Copyright (C) 2013 Samsung Electronics
> + * Hyungwon Hwang <human.hwang@samsung.com>
> + *
> + * SPDX-License-Identifier:     GPL-2.0+
> + */
> +
> +#ifndef __CONFIG_ODROID_XU3_H
> +#define __CONFIG_ODROID_XU3_H
> +
> +#include "exynos5-common.h"
> +
> +#define CONFIG_SYS_PROMPT		"ODROID-XU3 # "
> +
> +/* High Level Configuration Options */
> +#include <asm/arch/cpu.h>		/* get chip and board defs
> */ +
> +#define CONFIG_OF_CONTROL
> +#define CONFIG_OF_SEPARATE

In the newest u-boot CONFIG_OF_{CONTROL|SEPARATE} are already defined
in the _defconfig and hence not needed here.

> +#define CONFIG_BOARD_COMMON
> +
> +#define CONFIG_ARCH_CPU_INIT
> +#define CONFIG_DISPLAY_CPUINFO
> +#define CONFIG_DISPLAY_BOARDINFO
> +
> +/* Power Management is enabled */
> +#define CONFIG_PM
> +#define CONFIG_PM_VDD_ARM	1.00
> +#define CONFIG_PM_VDD_KFC	1.0250
> +#define CONFIG_PM_VDD_INT	1.00
> +#define CONFIG_PM_VDD_G3D	1.00
> +#define CONFIG_PM_VDD_MIF	1.10
> +
> +/* Keep L2 Cache Disabled */
> +#define CONFIG_SYS_DCACHE_OFF
> +
> +#define CONFIG_SYS_SDRAM_BASE		0x40000000
> +#define CONFIG_SYS_TEXT_BASE		0x43E00000
> +#define CONFIG_SPL_TEXT_BASE		0x02027000
> +
> +/* input clock of PLL: SMDK5422 has 24MHz input clock */
> +#define CONFIG_SYS_CLK_FREQ		24000000
> +
> +#define CONFIG_SETUP_MEMORY_TAGS
> +#define CONFIG_CMDLINE_TAG
> +#define CONFIG_INITRD_TAG
> +#define CONFIG_REVISION_TAG
> +#define CONFIG_CMDLINE_EDITING
> +
> +/* iRAM information */
> +#define CONFIG_PHY_IRAM_BASE            (0x02020000)
> +#define CONFIG_PHY_IRAM_NS_BASE         (CONFIG_PHY_IRAM_BASE +
> 0x53000) +
> +/* Power Down Modes */
> +#define S5P_CHECK_SLEEP			0x00000BAD
> +#define S5P_CHECK_DIDLE			0xBAD00000
> +#define S5P_CHECK_LPA			0xABAD0000
> +
> +/* Offset for OM status registers */
> +#define OM_STATUS_OFFSET                0x0
> +
> +/* select serial console configuration */
> +#define CONFIG_SERIAL_MULTI
> +#define CONFIG_SERIAL2			/* use SERIAL 2 */
> +#define CONFIG_BAUDRATE			115200
> +#define EXYNOS5_DEFAULT_UART_OFFSET	0x010000
> +
> +#define TZPC_BASE_OFFSET		0x10000
> +
> +/* SD/MMC configuration */
> +#define CONFIG_GENERIC_MMC
> +#define CONFIG_MMC
> +#define CONFIG_SDHCI
> +#define CONFIG_S5P_MSHC
> +#define CONFIG_S5P_SDHCI
> +#define CONFIG_MMC_64BIT_BUS
> +
> +#if defined(CONFIG_S5P_MSHC)
> +#define CONFIG_MMC_EARLY_INIT
> +#define MMC_MAX_CHANNEL		4
> +#define USE_MMC0
> +#define USE_MMC2
> +
> +#define PHASE_DEVIDER		4
> +
> +#define SDR_CH0			0x03030002
> +#define DDR_CH0			0x03020001
> +
> +#define SDR_CH2			0x03020001
> +#define DDR_CH2			0x03030002
> +
> +#define SDR_CH4			0x0
> +#define DDR_CH4			0x0
> +#endif
> +
> +/*
> + * Boot configuration
> + */
> +#define BOOT_MMCSD		0x3
> +#define BOOT_EMMC		0x6
> +#define BOOT_EMMC_4_4		0x7
> +
> +/*
> + *  Boot device
> + */
> +#define SDMMC_CH2		0x0
> +#define SDMMC_CH0		0x4
> +#define EMMC			0x14
> +
> +#define CONFIG_BOARD_EARLY_INIT_F
> +
> +/* PWM */
> +#define CONFIG_PWM
> +
> +/* allow to overwrite serial and ethaddr */
> +#define CONFIG_ENV_OVERWRITE
> +
> +/* Command definition*/
> +#include <config_cmd_default.h>
> +
> +#define CONFIG_CMD_PING
> +#define CONFIG_CMD_ELF
> +#define CONFIG_CMD_MMC
> +#define CONFIG_CMD_EXT2
> +#define CONFIG_CMD_FAT
> +#define CONFIG_CMD_BOOTZ
> +
> +#define CONFIG_BOOTDELAY		3
> +#define CONFIG_ZERO_BOOTDELAY_CHECK
> +
> +/* USB */
> +#define CONFIG_CMD_USB
> +#define CONFIG_USB_EHCI
> +#define CONFIG_USB_EHCI_EXYNOS
> +#define CONFIG_USB_STORAGE
> +
> +/* OHCI : Host 1.0 */
> +#define CONFIG_USB_OHCI
> +
> +/* Miscellaneous configurable options */
> +#define CONFIG_SYS_LONGHELP		/* undef to save memory */
> +#define CONFIG_SYS_HUSH_PARSER		/* use "hush" command
> parser */ +
> +#define CONFIG_SYS_CBSIZE		256	/* Console I/O
> Buffer Size */ +#define CONFIG_SYS_PBSIZE
> 384	/* Print Buffer Size */ +#define
> CONFIG_SYS_MAXARGS		16	/* max number of command
> args */ +/* Boot Argument Buffer Size */ +#define
> CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE +/* memtest
> works on */ +#define CONFIG_SYS_MEMTEST_START
> CONFIG_SYS_SDRAM_BASE +#define CONFIG_SYS_MEMTEST_END
> (CONFIG_SYS_SDRAM_BASE + 0x5E00000) +#define
> CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE +
> 0x3E00000) + +#define CONFIG_SYS_HZ			1000
> +
> +#define CONFIG_RD_LVL
> +
> +/* Stack sizes */
> +#define CONFIG_STACKSIZE		(256 << 10)	/* 256KB
> */ +
> +/*
> + * FIXME: The number of bank is actually 8. But there is no way to
> reserver the
> + * last 16 Mib in the last bank now. So I just excluded the last bank
> + * temporally.
> + */
> +#define CONFIG_NR_DRAM_BANKS	7
> +
> +#define SDRAM_BANK_SIZE		(256UL << 20UL)	/* 256
> MB */ +
> +#define CONFIG_SYS_MONITOR_BASE	0x00000000
> +
> +/* FLASH and environment organization */
> +#define CONFIG_SYS_NO_FLASH
> +#undef CONFIG_CMD_IMLS
> +#define CONFIG_IDENT_STRING		" for ODROID-XU3"
> +
> +#define CONFIG_ENV_IS_IN_MMC
> +#define CONFIG_SYS_MMC_ENV_DEV		0
> +
> +/* Configuration of ENV size on mmc */
> +#define CONFIG_ENV_SIZE		(16 << 10)	/* 16 KB */
> +
> +/* Configuration of ROOTFS_ATAGS */
> +#define CONFIG_ROOTFS_ATAGS
> +#ifdef CONFIG_ROOTFS_ATAGS
> +#ifdef CONFIG_EXTRA_ENV_SETTINGS
> +#undef CONFIG_EXTRA_ENV_SETTINGS
> +#endif
> +#define CONFIG_EXTRA_ENV_SETTINGS       "rootfslen= 100000"
> +#endif
> +
> +/* U-boot copy size from boot Media to DRAM.*/
> +#define CONFIG_DOS_PARTITION
> +#define CFG_PARTITION_START	0x4000000
> +#define CONFIG_IRAM_STACK	0x02074000
> +
> +#define CONFIG_SYS_INIT_SP_ADDR	(CONFIG_SYS_LOAD_ADDR -
> 0x1000000) +
> +/* Base address for secondary boot information */
> +#define CONFIG_SECONDARY_BOOT_INFORM_BASE
> (CONFIG_SYS_TEXT_BASE - 0x8) +
> +/* Offset for pmu reset status */
> +#define RST_STAT_OFFSET			0x404
> +
> +/* RST_STAT */
> +#define WRESET			(1 << 10)
> +#define SYS_WDTRESET		(1 << 9)
> +#define CONFIG_SKIP_LOWLEVEL_INIT
> +
> +/* FIXME: MUST BE REMOVED AFTER TMU IS TURNED ON */
> +#undef CONFIG_EXYNOS_TMU
> +#undef CONFIG_TMU_CMD_DTT
> +
> +#define CONFIG_FDTDEC_MEMORY
> +
> +#undef CONFIG_ARCH_EARLY_INIT_R
> +#undef CONFIG_EXYNOS_SPL
> +#undef CONFIG_SILENT_CONSOLE
> +#undef CONFIG_CROS_EC
> +#undef CONFIG_CROS_EC_SPI
> +#undef CONFIG_CROS_EC_I2C
> +#undef CONFIG_CROS_EC_KEYB
> +#undef CONFIG_CMD_CROS_EC
> +#undef CONFIG_KEYBOARD
> +#undef CONFIG_SPI_BOOTING
> +#undef CONFIG_ENV_IS_IN_SPI_FLASH
> +#undef CONFIG_SPI_FLASH
> +#undef CONFIG_EXYNOS_SPI
> +#undef CONFIG_CMD_SF
> +#undef CONFIG_CMD_SPI
> +#undef CONFIG_SPI_FLASH_WINBOND
> +#undef CONFIG_SPI_FLASH_GIGADEVICE
> +#undef CONFIG_OF_SPI
> +#undef CONFIG_FIT_BEST_MATCH
> +#undef CONFIG_USB_BOOTING
> +#undef CONFIG_CMD_NET
> +#undef CONFIG_SMC911X
> +#undef CONFIG_CMD_PXE
> +#undef CONFIG_MENU
> +#undef CONFIG_ENV_IS_IN_SPI_FLASH
> +
> +
> +#endif	/* __CONFIG_H */

In the config file you have enabled many features. Do we need them all
for basic use case?

I assume that after build u-boot-mmc.bin size is less than 328 KiB and
it will be possible to fit it into HardKernel's SD card layout.

Please consult the following link for reference:
http://odroid.com/dokuwiki/doku.php?id=en:odroid-xu3

Speaking about the SD card layout. I think that it would be welcome to
see ./doc entry for XU3 similar to ./doc/README.odroid


-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 2/3] Exynos5422: Add support for Exynos5422
  2014-10-31  9:25     ` Hyungwon Hwang
@ 2014-10-31  9:56       ` Lukasz Majewski
  0 siblings, 0 replies; 5+ messages in thread
From: Lukasz Majewski @ 2014-10-31  9:56 UTC (permalink / raw)
  To: u-boot

Hi Hyungwon,

> Hi,
> 
> On Fri, 31 Oct 2014 10:08:34 +0100
> Lukasz Majewski <l.majewski@samsung.com> wrote:
> 
> > Hi Hyungwon,
> > 
> > > This patch adds support for Exynos5422 including GPIO, clock,
> > > pinmux, and cpu id.
> > > 
> > > Change-Id: Ic609973ab531e2b6ee9a68cfec0b6b9571f203a8
> > > Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
> > > ---
> > >  arch/arm/include/asm/arch-exynos/gpio.h | 31
> > > +++++++++++++++++++++++++++++--
> > > drivers/gpio/s5p_gpio.c                 |  4 +++- 2 files
> > > changed, 32 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/arch/arm/include/asm/arch-exynos/gpio.h
> > > b/arch/arm/include/asm/arch-exynos/gpio.h index 431ae3a..8f82ef0
> > > 100644 --- a/arch/arm/include/asm/arch-exynos/gpio.h
> > > +++ b/arch/arm/include/asm/arch-exynos/gpio.h
> > > @@ -1368,11 +1368,21 @@ static struct gpio_info
> > > exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] =
> > > { { EXYNOS5420_GPIO_PART5_BASE, EXYNOS5420_GPIO_MAX_PORT }, };
> > >  
> > > +#define EXYNOS5800_GPIO_NUM_PARTS	4
> > > +static struct gpio_info
> > > exynos5800_gpio_data[EXYNOS5800_GPIO_NUM_PARTS] = {
> > > +	{ EXYNOS5420_GPIO_PART1_BASE,
> > > EXYNOS5420_GPIO_MAX_PORT_PART_1 },
> > > +	{ EXYNOS5420_GPIO_PART2_BASE,
> > > EXYNOS5420_GPIO_MAX_PORT_PART_2 },
> > > +	{ EXYNOS5420_GPIO_PART3_BASE,
> > > EXYNOS5420_GPIO_MAX_PORT_PART_3 },
> > > +	{ EXYNOS5420_GPIO_PART4_BASE,
> > > EXYNOS5420_GPIO_MAX_PORT_PART_4 }, +};
> > > +
> > >  static inline struct gpio_info *get_gpio_data(void)
> > >  {
> > >  	if (cpu_is_exynos5()) {
> > > -		if (proid_is_exynos5420() ||
> > > proid_is_exynos5800())
> > > +		if (proid_is_exynos5420())
> > >  			return exynos5420_gpio_data;
> > > +		else if (proid_is_exynos5800())
> > > +			return exynos5800_gpio_data;
> > >  		else
> > >  			return exynos5_gpio_data;
> > >  	} else if (cpu_is_exynos4()) {
> > > @@ -1388,8 +1398,10 @@ static inline struct gpio_info
> > > *get_gpio_data(void) static inline unsigned int get_bank_num(void)
> > >  {
> > >  	if (cpu_is_exynos5()) {
> > > -		if (proid_is_exynos5420() ||
> > > proid_is_exynos5800())
> > > +		if (proid_is_exynos5420())
> > >  			return EXYNOS5420_GPIO_NUM_PARTS;
> > > +		if (proid_is_exynos5800())
> > > +			return EXYNOS5800_GPIO_NUM_PARTS;
> > >  		else
> > >  			return EXYNOS5_GPIO_NUM_PARTS;
> > >  	} else if (cpu_is_exynos4()) {
> > > @@ -1493,6 +1505,21 @@ static const struct gpio_name_num_table
> > > exynos5420_gpio_table[] = { { 0 }
> > >  };
> > >  
> > > +static const struct gpio_name_num_table exynos5800_gpio_table[]
> > > = {
> > > +	GPIO_ENTRY('x', EXYNOS5420_GPIO_X00,
> > > EXYNOS5420_GPIO_C00, 0),
> > > +	GPIO_ENTRY('c', EXYNOS5420_GPIO_C00,
> > > EXYNOS5420_GPIO_D10, 0),
> > > +	GPIO_ENTRY('d', EXYNOS5420_GPIO_D10,
> > > EXYNOS5420_GPIO_Y00, 0),
> > > +	GPIO_ENTRY('y', EXYNOS5420_GPIO_Y00,
> > > EXYNOS5420_GPIO_E00, 0),
> > > +	GPIO_ENTRY('e', EXYNOS5420_GPIO_E00,
> > > EXYNOS5420_GPIO_F00, 0),
> > > +	GPIO_ENTRY('f', EXYNOS5420_GPIO_F00,
> > > EXYNOS5420_GPIO_G00, 0),
> > > +	GPIO_ENTRY('g', EXYNOS5420_GPIO_G00,
> > > EXYNOS5420_GPIO_J40, 0),
> > > +	GPIO_ENTRY('j', EXYNOS5420_GPIO_J40,
> > > EXYNOS5420_GPIO_A00, 0),
> > > +	GPIO_ENTRY('a', EXYNOS5420_GPIO_A00,
> > > EXYNOS5420_GPIO_B00, 0),
> > > +	GPIO_ENTRY('b', EXYNOS5420_GPIO_B00,
> > > EXYNOS5420_GPIO_H00, 0),
> > > +	GPIO_ENTRY('h', EXYNOS5420_GPIO_H00, EXYNOS5420_GPIO_Z0,
> > > 0),
> > > +	{ 0 }
> > > +};
> > > +
> > >  void gpio_cfg_pin(int gpio, int cfg);
> > >  void gpio_set_pull(int gpio, int mode);
> > >  void gpio_set_drv(int gpio, int mode);
> > > diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c
> > > index bcf44eb..bed7cd7 100644
> > > --- a/drivers/gpio/s5p_gpio.c
> > > +++ b/drivers/gpio/s5p_gpio.c
> > > @@ -57,11 +57,13 @@ static inline int s5p_name_to_gpio(const char
> > > *name) */
> > >  #if defined(CONFIG_EXYNOS4) || defined(CONFIG_EXYNOS5)
> > >  	if (cpu_is_exynos5()) {
> > > -		if (proid_is_exynos5420() ||
> > > proid_is_exynos5800()) {
> > > +		if (proid_is_exynos5420()) {
> > >  			tabp = exynos5420_gpio_table;
> > >  			irregular_bank_name = 'y';
> > >  			irregular_set_number = '7';
> > >  			irregular_bank_base =
> > > EXYNOS5420_GPIO_Y70;
> > > +		} else if (proid_is_exynos5800()) {
> > > +			tabp = exynos5800_gpio_table;
> > >  		} else {
> > >  			tabp = exynos5_gpio_table;
> > >  			irregular_bank_name = 'c';
> > 
> > I'm a bit confused here. 
> > 
> > We already support exynos5420 in the mainline. It only slightly
> > differs from Exynos5422. Additionally there is Exynos5800 which is a
> > different HW revision of Exynos5422. 
> 
> Yes. You're right. I was not in the subscriber list when I send this
> mail. So when I sent this mail, I received an auto-replied mail which
> I can cancel this email. I canceled this mail. But the mail sent to
> your and Minkyu Kang was not. Sorry for the confusion. Please refer
> the latest mail.

Ok.

Probably by a mistake, I've received this series three times :-).

When you prepare v2, please add change log and cover letter.

> 
> > 
> > In the message topic you stated that you add support for Exynos5422.
> > Maybe we could use Exynos5800 name also for Exynos5422 (with a big,
> > fat note about those two chips compliance added to ./doc directory)?
> > 
> > @ Akshay, Minkyu:
> > 
> > What do you think about this idea?
> > 
> 
> Best regards,
> Hyungwon Hwang
> 
> 



-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-10-31  9:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1414743971-29750-1-git-send-email-human.hwang@samsung.com>
2014-10-31  8:44 ` [U-Boot] [PATCH 1/3] exynos5: fix GPIO information of exynos5420 Lukasz Majewski
     [not found] ` <1414743971-29750-2-git-send-email-human.hwang@samsung.com>
2014-10-31  9:08   ` [U-Boot] [PATCH 2/3] Exynos5422: Add support for Exynos5422 Lukasz Majewski
2014-10-31  9:25     ` Hyungwon Hwang
2014-10-31  9:56       ` Lukasz Majewski
     [not found] ` <1414743971-29750-3-git-send-email-human.hwang@samsung.com>
2014-10-31  9:45   ` [U-Boot] [PATCH 3/3] Odroid-XU3: Add support for Odroid-XU3 Lukasz Majewski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.