Adds support for Exynos5422 odroid xu3 board
Subsystems (3)
cover Adds support for Exynos5422 odroid xu3 board
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
Signature · 1 line
1.8.3.2
PATCH 1/4 exynos5: fix GPIO information of exynos5420
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.
--- 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(-)
arch/arm/include/asm/arch-exynos/cpu.h +5 -6
@@ -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
arch/arm/include/asm/arch-exynos/gpio.h +112 -120
423 lines not on this page · raw message
Signature · 1 line
1.8.3.2
PATCH 1/4 exynos5: fix GPIO information of exynos5420
Quoted 27 lines · Hyungwon Hwang
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 <[email protected]>--- 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(-)arch/arm/include/asm/arch-exynos/cpu.h +1
-2@@ -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
arch/arm/include/asm/arch-exynos/cpu.h line 169
Quoted 10 lines
arch/arm/include/asm/arch-exynos/cpu.h +4
-4-#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
Quoted 458 lines
arch/arm/include/asm/arch-exynos/gpio.h +112
-120@@ -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 5static 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 } };
PATCH 1/4 exynos5: fix GPIO information of exynos5420
Dear Jaehoon Chung,
Quoted 33 lines · On Tue, 04 Nov 2014 13:51:04 +0900 Jaehoon Chung <[email protected]> wrote:
Quoted 32 lines · Hyungwon Hwang
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 <[email protected]>--- 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(-)
(quoted diff) +0
-0
b/arch/arm/include/asm/arch-exynos/cpu.hindex 7c5c4ff..da4ac6b 100644arch/arm/include/asm/arch-exynos/cpu.h +1
-6@@ -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
Quoted 9 lines
arch/arm/include/asm/arch-exynos/cpu.h line 169
Quoted 6 lines
arch/arm/include/asm/arch-exynos/cpu.h +4
-0+#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 0x145B0000What'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?
Quoted 452 lines
Best Regards,
Jaehoon ChungQuoted 450 lines
(quoted diff) +0
-0
b/arch/arm/include/asm/arch-exynos/gpio.hindex 32e045a..431ae3a 100644arch/arm/include/asm/arch-exynos/gpio.h +108
-120@@ -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 5static 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 ),
Quoted 9 lines
arch/arm/include/asm/arch-exynos/gpio.h static const struct gpio_name_num_table exynos5_gpio_table[] = { · line 1494
Quoted 8 lines
arch/arm/include/asm/arch-exynos/gpio.h +4
-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 ),GPIO_ENTRY ('z' ,EXYNOS5420_GPIO_Z0 ,EXYNOS5420_GPIO_MAX_PORT ,0 ), { 0 } };
Best regards,
Hyungwon Hwang
Signature · 4 lines
Hyungwon Hwang S/W Platform Team, Software Center Samsung Electronics human.hwang at samsung.com
PATCH 2/4 Exynos5800: Add support for Exynos5800
In reply to Hyungwon HwangThe gpios of Exynos5800 are different from that of Exynos5420. This patch adds the gpio information and table of Exynos5800.
--- arch/arm/include/asm/arch-exynos/gpio.h | 31 +++++++++++++++++++++++++++++-- drivers/gpio/s5p_gpio.c | 4 +++- 2 files changed, 32 insertions(+), 3 deletions(-)
arch/arm/include/asm/arch-exynos/gpio.h +29 -2
@@ -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);
drivers/gpio/s5p_gpio.c +3 -1
@@ -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' ;
Signature · 1 line
1.8.3.2
PATCH 2/4 Exynos5800: Add support for Exynos5800
Quoted 14 lines · Hyungwon Hwang
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 <[email protected]>--- arch/arm/include/asm/arch-exynos/gpio.h | 31 +++++++++++++++++++++++++++++-- drivers/gpio/s5p_gpio.c | 4 +++- 2 files changed, 32 insertions(+), 3 deletions(-)arch/arm/include/asm/arch-exynos/gpio.h +0
-0
arch/arm/include/asm/arch-exynos/gpio.h static struct gpio_info exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] = { · line 1376
Quoted 9 lines
arch/arm/include/asm/arch-exynos/gpio.h +6
-0@@ -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.
Quoted 14 lines
arch/arm/include/asm/arch-exynos/gpio.h +5
-1+}; +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 ()) {
arch/arm/include/asm/arch-exynos/gpio.h static inline struct gpio_info *get_gpio_data(void) · line 1403
Quoted 7 lines
arch/arm/include/asm/arch-exynos/gpio.h +2
-1@@ -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
Quoted 46 lines
arch/arm/include/asm/arch-exynos/gpio.h +16
-0+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);drivers/gpio/s5p_gpio.c +3
-1@@ -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' ;
PATCH 2/4 Exynos5800: Add support for Exynos5800
Dear Jaehoon Chung,
Quoted 18 lines · On Tue, 04 Nov 2014 13:56:00 +0900 Jaehoon Chung <[email protected]> wrote:
Quoted 17 lines · Hyungwon Hwang
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 <[email protected]>--- arch/arm/include/asm/arch-exynos/gpio.h | 31+++++++++++++++++++++++++++++--
drivers/gpio/s5p_gpio.c|
4 +++- 2 files changed, 32 insertions(+), 3 deletions(-)(quoted diff) +0
-0
b/arch/arm/include/asm/arch-exynos/gpio.hindex 431ae3a..8f82ef0 100644arch/arm/include/asm/arch-exynos/gpio.h +0
-0@@ -1368,11 +1368,21 @@ static struct gpio_infoexynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] =
{ {EXYNOS5420_GPIO_PART5_BASE,EXYNOS5420_GPIO_MAX_PORT}, };
Quoted 11 lines
arch/arm/include/asm/arch-exynos/gpio.h static struct gpio_info exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] = { · line 1376
Quoted 6 lines
arch/arm/include/asm/arch-exynos/gpio.h +6
-0+#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 usedEXYNOS5420_GPIO_XXX. It's strange.
You're right. This patch is wrong. This one will be removed from next version.
Quoted 65 lines
Quoted 14 lines
arch/arm/include/asm/arch-exynos/gpio.h +5
-1+}; +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 ()) {arch/arm/include/asm/arch-exynos/gpio.h static inline struct gpio_info *get_gpio_data(void) · line 1403
Quoted 7 lines
arch/arm/include/asm/arch-exynos/gpio.h +2
-1@@ -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 ChungQuoted 38 lines
arch/arm/include/asm/arch-exynos/gpio.h +16
-0+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);drivers/gpio/s5p_gpio.c +1
-1@@ -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' ;
Quoted 9 lines
drivers/gpio/s5p_gpio.c static inline int s5p_name_to_gpio(const char *name) · line 69
Quoted 8 lines
drivers/gpio/s5p_gpio.c +2
-0irregular_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
Signature · 4 lines
Hyungwon Hwang S/W Platform Team, Software Center Samsung Electronics human.hwang at samsung.com
PATCH 3/4 odroid: make some macros common
In reply to Hyungwon HwangSome 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.
--- board/samsung/odroid/odroid.c | 1 + board/samsung/odroid/setup.h | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-)
board/samsung/odroid/odroid.c +1 -0
@@ -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 ;
board/samsung/odroid/setup.h +0 -8
@@ -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)
Signature · 1 line
1.8.3.2
PATCH 4/4 Odroid-XU3: Add support for Odroid-XU3
In reply to Hyungwon HwangThis patch adds support for Odroid-XU3.
--- 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
arch/arm/cpu/armv7/exynos/Kconfig +4 -0
@@ -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"
arch/arm/dts/Makefile +2 -1
@@ -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 \
arch/arm/dts/exynos5422-odroidxu3.dts new file +72 -0
72 lines not on this page · raw message
board/samsung/odroid-xu3/Kconfig new file +12 -0
@@ -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
board/samsung/odroid-xu3/MAINTAINERS new file +6 -0
@@ -0,0 +1,6 @@ +ODROID-XU3 BOARD +M: Hyungwon Hwang <[email protected]> +S: Maintained +F: board/samsung/odroid-xu3/ +F: include/configs/odroid_xu3.h +F: configs/odroid-xu3_defconfig
board/samsung/odroid-xu3/Makefile new file +7 -0
@@ -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
board/samsung/odroid-xu3/odroid-xu3.c new file +132 -0
132 lines not on this page · raw message
board/samsung/odroid-xu3/setup.h new file +115 -0
115 lines not on this page · raw message
configs/odroid-xu3_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +CONFIG_ARM=y +CONFIG_ARCH_EXYNOS=y +CONFIG_TARGET_ODROID_XU3=y +CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3"
include/configs/odroid_xu3.h new file +73 -0
73 lines not on this page · raw message
Signature · 1 line
1.8.3.2