[coreboot-gerrit] Patch set updated for coreboot: 7c7025a exynos5420: Replace the 5250 GPIO code with code that should work on 5420.

Gabe Black (gabeblack@chromium.org) gerrit at coreboot.org
Wed Jul 10 14:32:07 CEST 2013


Gabe Black (gabeblack at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3648

-gerrit

commit 7c7025a5c35a6caccfcc0b4a555e3749d69eed76
Author: Gabe Black <gabeblack at google.com>
Date:   Fri May 17 02:57:17 2013 -0700

    exynos5420: Replace the 5250 GPIO code with code that should work on 5420.
    
    Change-Id: Iac6615240e94c74037afc801169c32d3ebc4ac03
    Signed-off-by: Gabe Black <gabeblack at chromium.org>
---
 src/cpu/samsung/exynos5420/cpu.h  |  10 +-
 src/cpu/samsung/exynos5420/gpio.h | 430 ++++++++++++++++++--------------------
 2 files changed, 213 insertions(+), 227 deletions(-)

diff --git a/src/cpu/samsung/exynos5420/cpu.h b/src/cpu/samsung/exynos5420/cpu.h
index 62ff424..7cdd35e 100644
--- a/src/cpu/samsung/exynos5420/cpu.h
+++ b/src/cpu/samsung/exynos5420/cpu.h
@@ -55,11 +55,7 @@
 #define EXYNOS5_ACE_SFR_BASE            0x10830000
 #define EXYNOS5_DMC_PHY0_BASE		0x10C00000
 #define EXYNOS5_DMC_PHY1_BASE		0x10C10000
-#define EXYNOS5_GPIO_PART4_BASE		0x10D10000	/* V00..V37 */
-#define EXYNOS5_GPIO_PART5_BASE		0x10D100C0	/* V40..V47 */
 #define EXYNOS5_DMC_CTRL_BASE		0x10DD0000
-#define EXYNOS5_GPIO_PART1_BASE		0x11400000	/* A00..Y67 */
-#define EXYNOS5_GPIO_PART2_BASE		0x11400c00	/* X00..X37 */
 #define EXYNOS5_USB_HOST_EHCI_BASE	0x12110000
 #define EXYNOS5_USBPHY_BASE		0x12130000
 #define EXYNOS5_USBOTG_BASE		0x12140000
@@ -76,7 +72,11 @@
 #define EXYNOS5_PWMTIMER_BASE		0x12DD0000
 #define EXYNOS5_SPI_ISP_BASE		0x131A0000
 #define EXYNOS5_I2S_BASE		0x12D60000
-#define EXYNOS5_GPIO_PART3_BASE		0x13400000	/* E00..H17 */
+#define EXYNOS5_GPIO_PART3_BASE		0x13410000	/* C00..Y67 */
+#define EXYNOS5_GPIO_PART1_BASE		0x13400000	/* Y70..Y77 */
+#define EXYNOS5_GPIO_PART2_BASE		0x13400c00	/* X00..X37 */
+#define EXYNOS5_GPIO_PART4_BASE		0x14000000	/* E00..J47 */
+#define EXYNOS5_GPIO_PART5_BASE		0x14010000	/* A00..H07 */
 #define EXYNOS5_FIMD_BASE		0x14400000
 #define EXYNOS5_DISP1_CTRL_BASE		0x14420000
 #define EXYNOS5_MIPI_DSI1_BASE		0x14500000
diff --git a/src/cpu/samsung/exynos5420/gpio.h b/src/cpu/samsung/exynos5420/gpio.h
index 0787826..0011904 100644
--- a/src/cpu/samsung/exynos5420/gpio.h
+++ b/src/cpu/samsung/exynos5420/gpio.h
@@ -52,10 +52,12 @@ struct gpio_bank {
 #define GPIO_DRV_FAST	0x0
 #define GPIO_DRV_SLOW	0x1
 
-#define EXYNOS5_GPIO_BASE0	0x11400000
-#define EXYNOS5_GPIO_BASE1	0x13400000
-#define EXYNOS5_GPIO_BASE2	0x10d10000
-#define EXYNOS5_GPIO_BASE3	0x03860000
+#define EXYNOS5_GPIO_BASE0	0x13400000
+#define EXYNOS5_GPIO_BASE1	0x13400c00
+#define EXYNOS5_GPIO_BASE2	0x13410000
+#define EXYNOS5_GPIO_BASE3	0x14000000
+#define EXYNOS5_GPIO_BASE4	0x14010000
+#define EXYNOS5_GPIO_BASE5	0x03860000
 
 enum exynos5_gpio_port {
 	/*
@@ -64,59 +66,59 @@ enum exynos5_gpio_port {
 	 */
 
 	/* base == EXYNOS_GPIO_BASE0 */
-	EXYNOS5_GPA0 = EXYNOS5_GPIO_BASE0 + 0x0000,
-	EXYNOS5_GPA1 = EXYNOS5_GPIO_BASE0 + 0x0020,
-	EXYNOS5_GPA2 = EXYNOS5_GPIO_BASE0 + 0x0040,
-
-	EXYNOS5_GPB0 = EXYNOS5_GPIO_BASE0 + 0x0060,
-	EXYNOS5_GPB1 = EXYNOS5_GPIO_BASE0 + 0x0080,
-	EXYNOS5_GPB2 = EXYNOS5_GPIO_BASE0 + 0x00a0,
-	EXYNOS5_GPB3 = EXYNOS5_GPIO_BASE0 + 0x00c0,
-
-	EXYNOS5_GPC0 = EXYNOS5_GPIO_BASE0 + 0x00e0,
-	EXYNOS5_GPC1 = EXYNOS5_GPIO_BASE0 + 0x0100,
-	EXYNOS5_GPC2 = EXYNOS5_GPIO_BASE0 + 0x0120,
-	EXYNOS5_GPC3 = EXYNOS5_GPIO_BASE0 + 0x0140,
-
-	EXYNOS5_GPD0 = EXYNOS5_GPIO_BASE0 + 0x0160,
-	EXYNOS5_GPD1 = EXYNOS5_GPIO_BASE0 + 0x0180,
-
-	EXYNOS5_GPY0 = EXYNOS5_GPIO_BASE0 + 0x01a0,
-	EXYNOS5_GPY1 = EXYNOS5_GPIO_BASE0 + 0x01c0,
-	EXYNOS5_GPY2 = EXYNOS5_GPIO_BASE0 + 0x01e0,
-	EXYNOS5_GPY3 = EXYNOS5_GPIO_BASE0 + 0x0200,
-	EXYNOS5_GPY4 = EXYNOS5_GPIO_BASE0 + 0x0220,
-	EXYNOS5_GPY5 = EXYNOS5_GPIO_BASE0 + 0x0240,
-	EXYNOS5_GPY6 = EXYNOS5_GPIO_BASE0 + 0x0260,
-
-	EXYNOS5_GPX0 = EXYNOS5_GPIO_BASE0 + 0x0c00,
-	EXYNOS5_GPX1 = EXYNOS5_GPIO_BASE0 + 0x0c20,
-	EXYNOS5_GPX2 = EXYNOS5_GPIO_BASE0 + 0x0c40,
-	EXYNOS5_GPX3 = EXYNOS5_GPIO_BASE0 + 0x0c60,
+	EXYNOS5_GPY7 = EXYNOS5_GPIO_BASE0 + 0x0000,
 
 	/* base == EXYNOS_GPIO_BASE1 */
-	EXYNOS5_GPE0 = EXYNOS5_GPIO_BASE1 + 0x0000,
-	EXYNOS5_GPE1 = EXYNOS5_GPIO_BASE1 + 0x0020,
-
-	EXYNOS5_GPF0 = EXYNOS5_GPIO_BASE1 + 0x0040,
-	EXYNOS5_GPF1 = EXYNOS5_GPIO_BASE1 + 0x0060,
-
-	EXYNOS5_GPG0 = EXYNOS5_GPIO_BASE1 + 0x0080,
-	EXYNOS5_GPG1 = EXYNOS5_GPIO_BASE1 + 0x00a0,
-	EXYNOS5_GPG2 = EXYNOS5_GPIO_BASE1 + 0x00c0,
-
-	EXYNOS5_GPH0 = EXYNOS5_GPIO_BASE1 + 0x00e0,
-	EXYNOS5_GPH1 = EXYNOS5_GPIO_BASE1 + 0x0100,
+	EXYNOS5_GPX0 = EXYNOS5_GPIO_BASE1 + 0x0000,
+	EXYNOS5_GPX1 = EXYNOS5_GPIO_BASE1 + 0x0020,
+	EXYNOS5_GPX2 = EXYNOS5_GPIO_BASE1 + 0x0040,
+	EXYNOS5_GPX3 = EXYNOS5_GPIO_BASE1 + 0x0060,
 
 	/* base == EXYNOS_GPIO_BASE2 */
-	EXYNOS5_GPV0 = EXYNOS5_GPIO_BASE2 + 0x0000,
-	EXYNOS5_GPV1 = EXYNOS5_GPIO_BASE2 + 0x0020,
-	EXYNOS5_GPV2 = EXYNOS5_GPIO_BASE2 + 0x0060,
-	EXYNOS5_GPV3 = EXYNOS5_GPIO_BASE2 + 0x0080,
-	EXYNOS5_GPV4 = EXYNOS5_GPIO_BASE2 + 0x00c0,
-
-	/* base == EXYNOS_GPIO_BASE3 */
-	EXYNOS5_GPZ = EXYNOS5_GPIO_BASE3 + 0x0000,
+	EXYNOS5_GPC0 = EXYNOS5_GPIO_BASE2 + 0x0000,
+	EXYNOS5_GPC1 = EXYNOS5_GPIO_BASE2 + 0x0020,
+	EXYNOS5_GPC2 = EXYNOS5_GPIO_BASE2 + 0x0040,
+	EXYNOS5_GPC3 = EXYNOS5_GPIO_BASE2 + 0x0060,
+	EXYNOS5_GPC4 = EXYNOS5_GPIO_BASE2 + 0x0080,
+
+	EXYNOS5_GPD1 = EXYNOS5_GPIO_BASE2 + 0x00a0,
+
+	EXYNOS5_GPY0 = EXYNOS5_GPIO_BASE2 + 0x00c0,
+	EXYNOS5_GPY1 = EXYNOS5_GPIO_BASE2 + 0x00e0,
+	EXYNOS5_GPY2 = EXYNOS5_GPIO_BASE2 + 0x0100,
+	EXYNOS5_GPY3 = EXYNOS5_GPIO_BASE2 + 0x0120,
+	EXYNOS5_GPY4 = EXYNOS5_GPIO_BASE2 + 0x0140,
+	EXYNOS5_GPY5 = EXYNOS5_GPIO_BASE2 + 0x0160,
+	EXYNOS5_GPY6 = EXYNOS5_GPIO_BASE2 + 0x0180,
+
+	/* base == EXYNOS5_GPIO_BASE3 */
+	EXYNOS5_GPE0 = EXYNOS5_GPIO_BASE3 + 0x0000,
+	EXYNOS5_GPE1 = EXYNOS5_GPIO_BASE3 + 0x0020,
+
+	EXYNOS5_GPF0 = EXYNOS5_GPIO_BASE3 + 0x0040,
+	EXYNOS5_GPF1 = EXYNOS5_GPIO_BASE3 + 0x0060,
+
+	EXYNOS5_GPG0 = EXYNOS5_GPIO_BASE3 + 0x0080,
+	EXYNOS5_GPG1 = EXYNOS5_GPIO_BASE3 + 0x00a0,
+	EXYNOS5_GPG2 = EXYNOS5_GPIO_BASE3 + 0x00c0,
+
+	EXYNOS5_GPJ4 = EXYNOS5_GPIO_BASE3 + 0x00e0,
+
+	/* base == EXYNOS5_GPIO_BASE4 */
+	EXYNOS5_GPA0 = EXYNOS5_GPIO_BASE4 + 0x0000,
+	EXYNOS5_GPA1 = EXYNOS5_GPIO_BASE4 + 0x0020,
+	EXYNOS5_GPA2 = EXYNOS5_GPIO_BASE4 + 0x0040,
+
+	EXYNOS5_GPB0 = EXYNOS5_GPIO_BASE4 + 0x0060,
+	EXYNOS5_GPB1 = EXYNOS5_GPIO_BASE4 + 0x0080,
+	EXYNOS5_GPB2 = EXYNOS5_GPIO_BASE4 + 0x00a0,
+	EXYNOS5_GPB3 = EXYNOS5_GPIO_BASE4 + 0x00c0,
+	EXYNOS5_GPB4 = EXYNOS5_GPIO_BASE4 + 0x00e0,
+
+	EXYNOS5_GPH0 = EXYNOS5_GPIO_BASE4 + 0x0100,
+
+	/* base == EXYNOS5_GPIO_BASE5 */
+	EXYNOS5_GPZ0 = EXYNOS5_GPIO_BASE5 + 0x0000,
 };
 
 enum {
@@ -127,63 +129,53 @@ enum {
 /* A list of valid GPIO numbers for the asm-generic/gpio.h interface */
 enum exynos5_gpio_pin {
 	/* GPIO_PART1_STARTS */
-	GPIO_A00,
-	GPIO_A01,
-	GPIO_A02,
-	GPIO_A03,
-	GPIO_A04,
-	GPIO_A05,
-	GPIO_A06,
-	GPIO_A07,
-	GPIO_A10,
-	GPIO_A11,
-	GPIO_A12,
-	GPIO_A13,
-	GPIO_A14,
-	GPIO_A15,
-	GPIO_A16,
-	GPIO_A17,
-	GPIO_A20,
-	GPIO_A21,
-	GPIO_A22,
-	GPIO_A23,
-	GPIO_A24,
-	GPIO_A25,
-	GPIO_A26,
-	GPIO_A27,
-	GPIO_B00,				/* 0x18 */
-	GPIO_B01,
-	GPIO_B02,
-	GPIO_B03,
-	GPIO_B04,
-	GPIO_B05,
-	GPIO_B06,
-	GPIO_B07,
-	GPIO_B10,
-	GPIO_B11,
-	GPIO_B12,
-	GPIO_B13,
-	GPIO_B14,
-	GPIO_B15,
-	GPIO_B16,
-	GPIO_B17,
-	GPIO_B20,
-	GPIO_B21,
-	GPIO_B22,
-	GPIO_B23,
-	GPIO_B24,
-	GPIO_B25,
-	GPIO_B26,
-	GPIO_B27,
-	GPIO_B30,
-	GPIO_B31,
-	GPIO_B32,
-	GPIO_B33,
-	GPIO_B34,
-	GPIO_B35,
-	GPIO_B36,
-	GPIO_B37,
-	GPIO_C00,				/* 0x38 */
+	GPIO_Y70,
+	GPIO_Y71,
+	GPIO_Y72,
+	GPIO_Y73,
+	GPIO_Y74,
+	GPIO_Y75,
+	GPIO_Y76,
+	GPIO_Y77,
+
+	/* GPIO_PART2_STARTS */
+	GPIO_MAX_PORT_PART_1,
+	GPIO_X00 = GPIO_MAX_PORT_PART_1,	/* 0x08 */
+	GPIO_X01,
+	GPIO_X02,
+	GPIO_X03,
+	GPIO_X04,
+	GPIO_X05,
+	GPIO_X06,
+	GPIO_X07,
+	GPIO_X10,
+	GPIO_X11,
+	GPIO_X12,
+	GPIO_X13,
+	GPIO_X14,
+	GPIO_X15,
+	GPIO_X16,
+	GPIO_X17,
+	GPIO_X20,
+	GPIO_X21,
+	GPIO_X22,
+	GPIO_X23,
+	GPIO_X24,
+	GPIO_X25,
+	GPIO_X26,
+	GPIO_X27,
+	GPIO_X30,
+	GPIO_X31,
+	GPIO_X32,
+	GPIO_X33,
+	GPIO_X34,
+	GPIO_X35,
+	GPIO_X36,
+	GPIO_X37,
+
+	/* GPIO_PART3_STARTS */
+	GPIO_MAX_PORT_PART_2,
+	GPIO_C00 = GPIO_MAX_PORT_PART_2,	/* 0x28 */
 	GPIO_C01,
 	GPIO_C02,
 	GPIO_C03,
@@ -215,15 +207,16 @@ enum exynos5_gpio_pin {
 	GPIO_C35,
 	GPIO_C36,
 	GPIO_C37,
-	GPIO_D00,				/* 0x58 */
-	GPIO_D01,
-	GPIO_D02,
-	GPIO_D03,
-	GPIO_D04,
-	GPIO_D05,
-	GPIO_D06,
-	GPIO_D07,
-	GPIO_D10,
+	GPIO_C40,
+	GPIO_C41,
+	GPIO_C42,
+	GPIO_C43,
+	GPIO_C44,
+	GPIO_C45,
+	GPIO_C46,
+	GPIO_C47,
+
+	GPIO_D10,				/* 0x50 */
 	GPIO_D11,
 	GPIO_D12,
 	GPIO_D13,
@@ -231,7 +224,8 @@ enum exynos5_gpio_pin {
 	GPIO_D15,
 	GPIO_D16,
 	GPIO_D17,
-	GPIO_Y00,				/* 0x68 */
+
+	GPIO_Y00,				/* 0x58 */
 	GPIO_Y01,
 	GPIO_Y02,
 	GPIO_Y03,
@@ -288,44 +282,9 @@ enum exynos5_gpio_pin {
 	GPIO_Y66,
 	GPIO_Y67,
 
-	/* GPIO_PART2_STARTS */
-	GPIO_MAX_PORT_PART_1,
-	GPIO_X00 = GPIO_MAX_PORT_PART_1,	/* 0xa0 */
-	GPIO_X01,
-	GPIO_X02,
-	GPIO_X03,
-	GPIO_X04,
-	GPIO_X05,
-	GPIO_X06,
-	GPIO_X07,
-	GPIO_X10,
-	GPIO_X11,
-	GPIO_X12,
-	GPIO_X13,
-	GPIO_X14,
-	GPIO_X15,
-	GPIO_X16,
-	GPIO_X17,
-	GPIO_X20,
-	GPIO_X21,
-	GPIO_X22,
-	GPIO_X23,
-	GPIO_X24,
-	GPIO_X25,
-	GPIO_X26,
-	GPIO_X27,
-	GPIO_X30,
-	GPIO_X31,
-	GPIO_X32,
-	GPIO_X33,
-	GPIO_X34,
-	GPIO_X35,
-	GPIO_X36,
-	GPIO_X37,
-
-	/* GPIO_PART3_STARTS */
-	GPIO_MAX_PORT_PART_2,
-	GPIO_E00 = GPIO_MAX_PORT_PART_2,	/* 0xc0 */
+	/* GPIO_PART4_STARTS */
+	GPIO_MAX_PORT_PART_3,
+	GPIO_E00 = GPIO_MAX_PORT_PART_3,	/* 0x90 */
 	GPIO_E01,
 	GPIO_E02,
 	GPIO_E03,
@@ -341,7 +300,8 @@ enum exynos5_gpio_pin {
 	GPIO_E15,
 	GPIO_E16,
 	GPIO_E17,
-	GPIO_F00,				/* 0xd0 */
+
+	GPIO_F00,				/* 0xa0 */
 	GPIO_F01,
 	GPIO_F02,
 	GPIO_F03,
@@ -357,7 +317,8 @@ enum exynos5_gpio_pin {
 	GPIO_F15,
 	GPIO_F16,
 	GPIO_F17,
-	GPIO_G00,
+
+	GPIO_G00,				/* 0xb0 */
 	GPIO_G01,
 	GPIO_G02,
 	GPIO_G03,
@@ -381,7 +342,85 @@ enum exynos5_gpio_pin {
 	GPIO_G25,
 	GPIO_G26,
 	GPIO_G27,
-	GPIO_H00,
+
+	GPIO_J40,				/* 0xc8 */
+	GPIO_J41,
+	GPIO_J42,
+	GPIO_J43,
+	GPIO_J44,
+	GPIO_J45,
+	GPIO_J46,
+	GPIO_J47,
+
+	/* GPIO_PART5_STARTS */
+	GPIO_MAX_PORT_PART_4,
+	GPIO_A00 = GPIO_MAX_PORT_PART_4,	/* 0xd0 */
+	GPIO_A01,
+	GPIO_A02,
+	GPIO_A03,
+	GPIO_A04,
+	GPIO_A05,
+	GPIO_A06,
+	GPIO_A07,
+	GPIO_A10,
+	GPIO_A11,
+	GPIO_A12,
+	GPIO_A13,
+	GPIO_A14,
+	GPIO_A15,
+	GPIO_A16,
+	GPIO_A17,
+	GPIO_A20,
+	GPIO_A21,
+	GPIO_A22,
+	GPIO_A23,
+	GPIO_A24,
+	GPIO_A25,
+	GPIO_A26,
+	GPIO_A27,
+
+	GPIO_B00,				/* 0xe8 */
+	GPIO_B01,
+	GPIO_B02,
+	GPIO_B03,
+	GPIO_B04,
+	GPIO_B05,
+	GPIO_B06,
+	GPIO_B07,
+	GPIO_B10,
+	GPIO_B11,
+	GPIO_B12,
+	GPIO_B13,
+	GPIO_B14,
+	GPIO_B15,
+	GPIO_B16,
+	GPIO_B17,
+	GPIO_B20,
+	GPIO_B21,
+	GPIO_B22,
+	GPIO_B23,
+	GPIO_B24,
+	GPIO_B25,
+	GPIO_B26,
+	GPIO_B27,
+	GPIO_B30,
+	GPIO_B31,
+	GPIO_B32,
+	GPIO_B33,
+	GPIO_B34,
+	GPIO_B35,
+	GPIO_B36,
+	GPIO_B37,
+	GPIO_B40,
+	GPIO_B41,
+	GPIO_B42,
+	GPIO_B43,
+	GPIO_B44,
+	GPIO_B45,
+	GPIO_B46,
+	GPIO_B47,
+
+	GPIO_H00,				/* 0x110 */
 	GPIO_H01,
 	GPIO_H02,
 	GPIO_H03,
@@ -389,70 +428,17 @@ enum exynos5_gpio_pin {
 	GPIO_H05,
 	GPIO_H06,
 	GPIO_H07,
-	GPIO_H10,
-	GPIO_H11,
-	GPIO_H12,
-	GPIO_H13,
-	GPIO_H14,
-	GPIO_H15,
-	GPIO_H16,
-	GPIO_H17,
-
-	/* GPIO_PART4_STARTS */
-	GPIO_MAX_PORT_PART_3,
-	GPIO_V00 = GPIO_MAX_PORT_PART_3,
-	GPIO_V01,
-	GPIO_V02,
-	GPIO_V03,
-	GPIO_V04,
-	GPIO_V05,
-	GPIO_V06,
-	GPIO_V07,
-	GPIO_V10,
-	GPIO_V11,
-	GPIO_V12,
-	GPIO_V13,
-	GPIO_V14,
-	GPIO_V15,
-	GPIO_V16,
-	GPIO_V17,
-	GPIO_V20,
-	GPIO_V21,
-	GPIO_V22,
-	GPIO_V23,
-	GPIO_V24,
-	GPIO_V25,
-	GPIO_V26,
-	GPIO_V27,
-	GPIO_V30,
-	GPIO_V31,
-	GPIO_V32,
-	GPIO_V33,
-	GPIO_V34,
-	GPIO_V35,
-	GPIO_V36,
-	GPIO_V37,
-
-	/* GPIO_PART5_STARTS */
-	GPIO_MAX_PORT_PART_4,
-	GPIO_V40 = GPIO_MAX_PORT_PART_4,
-	GPIO_V41,
-	GPIO_V42,
-	GPIO_V43,
-	GPIO_V44,
-	GPIO_V45,
-	GPIO_V46,
-	GPIO_V47,
 
 	/* GPIO_PART6_STARTS */
 	GPIO_MAX_PORT_PART_5,
-	GPIO_Z0 = GPIO_MAX_PORT_PART_5,
-	GPIO_Z1,
-	GPIO_Z2,
-	GPIO_Z3,
-	GPIO_Z4,
-	GPIO_Z5,
-	GPIO_Z6,
+	GPIO_Z00 = GPIO_MAX_PORT_PART_5,	/* 0x118 */
+	GPIO_Z01,
+	GPIO_Z02,
+	GPIO_Z03,
+	GPIO_Z04,
+	GPIO_Z05,
+	GPIO_Z06,
+	GPIO_Z07,
 	GPIO_MAX_PORT
 };
 



More information about the coreboot-gerrit mailing list