* [U-Boot] [PATCH 0/4] Adds support for Exynos5422 odroid xu3 board
@ 2014-10-31 12:08 Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420 Hyungwon Hwang
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Hyungwon Hwang @ 2014-10-31 12:08 UTC (permalink / raw)
To: u-boot
This patchset adds support for Exynos5422 odroid xu3 board.
I have done this work on the patchset submitted by Akshay Saraswat.
https://patchwork.ozlabs.org/patch/400043/
Hyungwon Hwang (4):
exynos5: fix GPIO information of exynos5420
Exynos5800: Add support for Exynos5800
odroid: make some macros common
Odroid-XU3: Add support for Odroid-XU3
arch/arm/cpu/armv7/exynos/Kconfig | 4 +
arch/arm/dts/Makefile | 3 +-
arch/arm/dts/exynos5422-odroidxu3.dts | 72 +++++++++
arch/arm/include/asm/arch-exynos/cpu.h | 11 +-
arch/arm/include/asm/arch-exynos/gpio.h | 261 +++++++++++++++++---------------
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 | 115 ++++++++++++++
board/samsung/odroid/odroid.c | 1 +
board/samsung/odroid/setup.h | 8 -
configs/odroid-xu3_defconfig | 4 +
drivers/gpio/s5p_gpio.c | 4 +-
include/configs/odroid_xu3.h | 73 +++++++++
15 files changed, 576 insertions(+), 137 deletions(-)
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
--
1.8.3.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420
2014-10-31 12:08 [U-Boot] [PATCH 0/4] Adds support for Exynos5422 odroid xu3 board Hyungwon Hwang
@ 2014-10-31 12:08 ` Hyungwon Hwang
2014-11-04 4:51 ` Jaehoon Chung
2014-10-31 12:08 ` [U-Boot] [PATCH 2/4] Exynos5800: Add support for Exynos5800 Hyungwon Hwang
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Hyungwon Hwang @ 2014-10-31 12:08 UTC (permalink / raw)
To: u-boot
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.
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 }
};
--
1.8.3.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/4] Exynos5800: Add support for Exynos5800
2014-10-31 12:08 [U-Boot] [PATCH 0/4] Adds support for Exynos5422 odroid xu3 board Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420 Hyungwon Hwang
@ 2014-10-31 12:08 ` Hyungwon Hwang
2014-11-04 4:56 ` Jaehoon Chung
2014-10-31 12:08 ` [U-Boot] [PATCH 3/4] odroid: make some macros common Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 4/4] Odroid-XU3: Add support for Odroid-XU3 Hyungwon Hwang
3 siblings, 1 reply; 9+ messages in thread
From: Hyungwon Hwang @ 2014-10-31 12:08 UTC (permalink / raw)
To: u-boot
The gpios of Exynos5800 are different from that of Exynos5420. This patch adds
the gpio information and table of Exynos5800.
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';
--
1.8.3.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 3/4] odroid: make some macros common
2014-10-31 12:08 [U-Boot] [PATCH 0/4] Adds support for Exynos5422 odroid xu3 board Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420 Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 2/4] Exynos5800: Add support for Exynos5800 Hyungwon Hwang
@ 2014-10-31 12:08 ` Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 4/4] Odroid-XU3: Add support for Odroid-XU3 Hyungwon Hwang
3 siblings, 0 replies; 9+ messages in thread
From: Hyungwon Hwang @ 2014-10-31 12:08 UTC (permalink / raw)
To: u-boot
Some macros are used commonly for odroid series boards. This patch makes a
common header file to congregate that kinds of macros. Even though there are
more macros which can be common, they are not become common. Because they are a
part of a register, the readability is better when they are defined at a place.
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
---
board/samsung/odroid/odroid.c | 1 +
board/samsung/odroid/setup.h | 8 --------
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/board/samsung/odroid/odroid.c b/board/samsung/odroid/odroid.c
index 5edb250..ccbb3a0 100644
--- a/board/samsung/odroid/odroid.c
+++ b/board/samsung/odroid/odroid.c
@@ -18,6 +18,7 @@
#include <usb.h>
#include <usb/s3c_udc.h>
#include <samsung/misc.h>
+#include "../setup.h"
#include "setup.h"
DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/samsung/odroid/setup.h b/board/samsung/odroid/setup.h
index 3e48dad..35f7af5 100644
--- a/board/samsung/odroid/setup.h
+++ b/board/samsung/odroid/setup.h
@@ -8,14 +8,6 @@
#ifndef __ODROIDU3_SETUP__
#define __ODROIDU3_SETUP__
-/* A/M PLL_CON0 */
-#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)
-
/* CLK_SRC_CPU */
#define MUX_APLL_SEL(x) ((x) & 0x1)
#define MUX_CORE_SEL(x) (((x) & 0x1) << 16)
--
1.8.3.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 4/4] Odroid-XU3: Add support for Odroid-XU3
2014-10-31 12:08 [U-Boot] [PATCH 0/4] Adds support for Exynos5422 odroid xu3 board Hyungwon Hwang
` (2 preceding siblings ...)
2014-10-31 12:08 ` [U-Boot] [PATCH 3/4] odroid: make some macros common Hyungwon Hwang
@ 2014-10-31 12:08 ` Hyungwon Hwang
3 siblings, 0 replies; 9+ messages in thread
From: Hyungwon Hwang @ 2014-10-31 12:08 UTC (permalink / raw)
To: u-boot
This patch adds support for Odroid-XU3.
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 | 115 +++++++++++++++++++++++++++++
configs/odroid-xu3_defconfig | 4 ++
include/configs/odroid_xu3.h | 73 +++++++++++++++++++
10 files changed, 427 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..f1d8667
--- /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"
+#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..afec01f
--- /dev/null
+++ b/board/samsung/odroid-xu3/setup.h
@@ -0,0 +1,115 @@
+/*
+ * (C) Copyright 2014 Samsung Electronics
+ * Hyungwon Hwang <human.hwang@samsung.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __ODROID_XU3_SETUP__
+#define __ODROID_XU3_SETUP__
+
+/* 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_CHANGING 0x1
+#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..867ac74
--- /dev/null
+++ b/include/configs/odroid_xu3.h
@@ -0,0 +1,73 @@
+/*
+ * 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 # "
+#define CONFIG_IDENT_STRING " for ODROID-XU3"
+
+#define CONFIG_OF_CONTROL
+#define CONFIG_BOARD_COMMON
+
+#define CONFIG_SYS_SDRAM_BASE 0x40000000
+#define CONFIG_SYS_TEXT_BASE 0x43E00000
+
+/* select serial console configuration */
+#define CONFIG_SERIAL2 /* use SERIAL 2 */
+
+#define TZPC_BASE_OFFSET 0x10000
+
+#define CONFIG_CMD_MMC
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_FAT
+
+/*
+ * 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_ENV_IS_IN_MMC
+
+#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000)
+
+/* FIXME: MUST BE REMOVED AFTER TMU IS TURNED ON */
+#undef CONFIG_EXYNOS_TMU
+#undef CONFIG_TMU_CMD_DTT
+
+#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 */
--
1.8.3.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420
2014-10-31 12:08 ` [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420 Hyungwon Hwang
@ 2014-11-04 4:51 ` Jaehoon Chung
2014-11-04 5:13 ` Hyungwon Hwang
0 siblings, 1 reply; 9+ messages in thread
From: Jaehoon Chung @ 2014-11-04 4:51 UTC (permalink / raw)
To: u-boot
On 10/31/2014 09:08 PM, Hyungwon Hwang wrote:
> 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.
>
> 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
What's wrong? It's sorted from A to Z.(GPA ~ GPZ)
Best Regards,
Jaehoon Chung
>
> 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 }
> };
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/4] Exynos5800: Add support for Exynos5800
2014-10-31 12:08 ` [U-Boot] [PATCH 2/4] Exynos5800: Add support for Exynos5800 Hyungwon Hwang
@ 2014-11-04 4:56 ` Jaehoon Chung
2014-11-04 5:05 ` Hyungwon Hwang
0 siblings, 1 reply; 9+ messages in thread
From: Jaehoon Chung @ 2014-11-04 4:56 UTC (permalink / raw)
To: u-boot
On 10/31/2014 09:08 PM, Hyungwon Hwang wrote:
> The gpios of Exynos5800 are different from that of Exynos5420. This patch adds
> the gpio information and table of Exynos5800.
>
> 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 },
you refer to other gpio_data.
You mentioned "different from that of exynos5420", but used EXYNOS5420_GPIO_XXX.
It's strange.
> +};
> +
> 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())
else if (prod_is_exynos5800())
Best Regard,
Jaehoon Chung
> + 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';
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/4] Exynos5800: Add support for Exynos5800
2014-11-04 4:56 ` Jaehoon Chung
@ 2014-11-04 5:05 ` Hyungwon Hwang
0 siblings, 0 replies; 9+ messages in thread
From: Hyungwon Hwang @ 2014-11-04 5:05 UTC (permalink / raw)
To: u-boot
Dear Jaehoon Chung,
On Tue, 04 Nov 2014 13:56:00 +0900
Jaehoon Chung <jh80.chung@samsung.com> wrote:
> On 10/31/2014 09:08 PM, Hyungwon Hwang wrote:
> > The gpios of Exynos5800 are different from that of Exynos5420. This patch
> > adds the gpio information and table of Exynos5800.
> >
> > 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 },
>
> you refer to other gpio_data.
> You mentioned "different from that of exynos5420", but used
> EXYNOS5420_GPIO_XXX. It's strange.
>
You're right. This patch is wrong. This one will be removed from next version.
> > +};
> > +
> > 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())
>
> else if (prod_is_exynos5800())
>
> Best Regard,
> Jaehoon Chung
>
> > + 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';
> >
>
Best regards,
Hyungwon Hwang
--
Hyungwon Hwang
S/W Platform Team, Software Center
Samsung Electronics
human.hwang at samsung.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420
2014-11-04 4:51 ` Jaehoon Chung
@ 2014-11-04 5:13 ` Hyungwon Hwang
0 siblings, 0 replies; 9+ messages in thread
From: Hyungwon Hwang @ 2014-11-04 5:13 UTC (permalink / raw)
To: u-boot
Dear Jaehoon Chung,
On Tue, 04 Nov 2014 13:51:04 +0900
Jaehoon Chung <jh80.chung@samsung.com> wrote:
> On 10/31/2014 09:08 PM, Hyungwon Hwang wrote:
> > 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.
> >
> > 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
>
> What's wrong? It's sorted from A to Z.(GPA ~ GPZ)
>
As I analyzed the code (gpio_set_value() in drivers/gpio/s5p_gpio.c) the GPIO
must not be sorted by alphabetically, but be done by the address of them. Isn't
it?
> Best Regards,
> Jaehoon Chung
> >
> > 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 }
> > };
> >
>
Best regards,
Hyungwon Hwang
--
Hyungwon Hwang
S/W Platform Team, Software Center
Samsung Electronics
human.hwang at samsung.com
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-11-04 5:13 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-31 12:08 [U-Boot] [PATCH 0/4] Adds support for Exynos5422 odroid xu3 board Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 1/4] exynos5: fix GPIO information of exynos5420 Hyungwon Hwang
2014-11-04 4:51 ` Jaehoon Chung
2014-11-04 5:13 ` Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 2/4] Exynos5800: Add support for Exynos5800 Hyungwon Hwang
2014-11-04 4:56 ` Jaehoon Chung
2014-11-04 5:05 ` Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 3/4] odroid: make some macros common Hyungwon Hwang
2014-10-31 12:08 ` [U-Boot] [PATCH 4/4] Odroid-XU3: Add support for Odroid-XU3 Hyungwon Hwang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox