[coreboot-gerrit] New patch to review for coreboot: f382d73 veyron: Adapt to new board revisions

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Fri Apr 10 17:15:55 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9551

-gerrit

commit f382d734a171b09928923319ea0fa9ec6fadfb79
Author: Julius Werner <jwerner at chromium.org>
Date:   Mon Nov 10 21:37:12 2014 -0800

    veyron: Adapt to new board revisions
    
    This patch adds support for Pinky rev3 (board ID 2) and Jerry rev2: the
    power button GPIO changed polarity to low, the 5V_DRV pin for USB power
    was moved to the AP again (welcome back!), and the EMMC_RST_L is now
    finally on a port with the right IO voltage so we don't need any weird
    pull-up tricks anymore. Since there are very few Jerry rev1s around,
    we'll just move it over to the new code directly without introducing
    board ID differences (also, because I have no idea how they stuffed it
    this time... is this one actually called rev2?).
    
    BRANCH=None
    BUG=None
    TEST=Still boots on my Pinky rev2, though that doesn't say much.
    
    Change-Id: Id11044cedcaac5a4ae07e696893823925107a6db
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 55344a9518ff04edcef01bcd40817e9e4b613717
    Original-Change-Id: Iddee360fbda357ecde4ae5fbb5c3a01fe0c22474
    Original-Signed-off-by: Julius Werner <jwerner at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/229010
    Original-Reviewed-by: Lin Huang <hl at rock-chips.com>
    Original-Reviewed-by: David Hendricks <dhendrix at chromium.org>
---
 src/mainboard/google/veyron_jerry/chromeos.c  |  2 +-
 src/mainboard/google/veyron_jerry/mainboard.c |  8 ++------
 src/mainboard/google/veyron_pinky/chromeos.c  |  3 ++-
 src/mainboard/google/veyron_pinky/mainboard.c | 15 +++++++++++++--
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/mainboard/google/veyron_jerry/chromeos.c b/src/mainboard/google/veyron_jerry/chromeos.c
index 68f72a0..6e6a855 100644
--- a/src/mainboard/google/veyron_jerry/chromeos.c
+++ b/src/mainboard/google/veyron_jerry/chromeos.c
@@ -67,7 +67,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
 
 	/* Power:GPIO active high */
 	gpios->gpios[count].port = GPIO_POWER.raw;
-	gpios->gpios[count].polarity = ACTIVE_HIGH;
+	gpios->gpios[count].polarity = ACTIVE_LOW;
 	gpios->gpios[count].value = gpio_get(GPIO_POWER);
 	strncpy((char *)gpios->gpios[count].name, "power",
 		GPIO_MAX_NAME_LENGTH);
diff --git a/src/mainboard/google/veyron_jerry/mainboard.c b/src/mainboard/google/veyron_jerry/mainboard.c
index e6a90b9..c15c765 100644
--- a/src/mainboard/google/veyron_jerry/mainboard.c
+++ b/src/mainboard/google/veyron_jerry/mainboard.c
@@ -42,6 +42,7 @@ static void configure_usb(void)
 {
 	gpio_output(GPIO(0, B, 3), 1);			/* HOST1_PWR_EN */
 	gpio_output(GPIO(0, B, 4), 1);			/* USBOTG_PWREN_H */
+	gpio_output(GPIO(7, C, 5), 1);			/* 5V_DRV */
 }
 
 static void configure_sdmmc(void)
@@ -63,12 +64,7 @@ static void configure_emmc(void)
 	writel(IOMUX_EMMCPWREN, &rk3288_grf->iomux_emmcpwren);
 	writel(IOMUX_EMMCCMD, &rk3288_grf->iomux_emmccmd);
 
-	/*
-	 * Use a pullup instead of a drive since the output is 3.3V and
-	 * really should be 1.8V (oops).  The external pulldown will help
-	 * bring the voltage down if we only drive with a pullup here.
-	 */
-	gpio_input_pullup(GPIO(7, B, 4));		/* EMMC_RST_L */
+	gpio_output(GPIO(2, B, 1), 1);		/* EMMC_RST_L */
 }
 
 static void configure_codec(void)
diff --git a/src/mainboard/google/veyron_pinky/chromeos.c b/src/mainboard/google/veyron_pinky/chromeos.c
index dc224a5..8cfad3e 100644
--- a/src/mainboard/google/veyron_pinky/chromeos.c
+++ b/src/mainboard/google/veyron_pinky/chromeos.c
@@ -69,7 +69,8 @@ void fill_lb_gpios(struct lb_gpios *gpios)
 
 	/* Power:GPIO active high */
 	gpios->gpios[count].port = GPIO_POWER.raw;
-	gpios->gpios[count].polarity = ACTIVE_HIGH;
+	gpios->gpios[count].polarity = board_id() > 1 ? ACTIVE_LOW :
+							ACTIVE_HIGH;
 	gpios->gpios[count].value = gpio_get(GPIO_POWER);
 	strncpy((char *)gpios->gpios[count].name, "power",
 		GPIO_MAX_NAME_LENGTH);
diff --git a/src/mainboard/google/veyron_pinky/mainboard.c b/src/mainboard/google/veyron_pinky/mainboard.c
index f891e21..2a88749 100644
--- a/src/mainboard/google/veyron_pinky/mainboard.c
+++ b/src/mainboard/google/veyron_pinky/mainboard.c
@@ -47,8 +47,11 @@ static void configure_usb(void)
 	case 0:
 		gpio_output(GPIO(7, B, 3), 1);		/* 5V_DRV */
 		break;
+	case 1:
+		break;	/* 5V_DRV moved to EC in rev2 */
 	default:
-		break;	/* 5V_DRV moved to EC after rev1 */
+		gpio_output(GPIO(7, C, 5), 1);		/* 5V_DRV, again */
+		break;
 	}
 }
 
@@ -79,12 +82,20 @@ static void configure_emmc(void)
 	writel(IOMUX_EMMCPWREN, &rk3288_grf->iomux_emmcpwren);
 	writel(IOMUX_EMMCCMD, &rk3288_grf->iomux_emmccmd);
 
+	switch (board_id()) {
+	case 0:
+	case 1:
 	/*
 	 * Use a pullup instead of a drive since the output is 3.3V and
 	 * really should be 1.8V (oops).  The external pulldown will help
 	 * bring the voltage down if we only drive with a pullup here.
 	 */
-	gpio_input_pullup(GPIO(7, B, 4));		/* EMMC_RST_L */
+		gpio_input_pullup(GPIO(7, B, 4));	/* EMMC_RST_L */
+		break;
+	default:
+		gpio_output(GPIO(2, B, 1), 1);		/* EMMC_RST_L */
+		break;
+	}
 }
 
 static void configure_codec(void)



More information about the coreboot-gerrit mailing list