From ea9c98d454e4ea60452de1bbe38dfeea857c3142 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 17 May 2013 02:57:17 -0700 Subject: exynos5420: Replace the 5250 GPIO code with code that should work on 5420. Change-Id: Iac6615240e94c74037afc801169c32d3ebc4ac03 Signed-off-by: Gabe Black Reviewed-on: http://review.coreboot.org/3648 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/cpu/samsung/exynos5420/cpu.h | 10 +- src/cpu/samsung/exynos5420/gpio.h | 430 ++++++++++++++++++-------------------- 2 files changed, 213 insertions(+), 227 deletions(-) (limited to 'src') diff --git a/src/cpu/samsung/exynos5420/cpu.h b/src/cpu/samsung/exynos5420/cpu.h index 62ff424611..7cdd35e38f 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 0787826f01..0011904eb5 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 }; -- cgit v1.2.3