google/gru: Re-enable 3V rail GPIO on Scarlet

We've decided to move control for the 3.0V rail (technically 3.3V on
Scarlet, but who cares about millivolts) back to a GPIO on the AP for
Scarlet rev2. This patch adds the necessary code to enable it and make
ARM TF aware of its existence. Since the pin had previously not been
connected to anything, we shouldn't really need to guard this by board
ID... older Scarlets will just be twiddling an empty pin.

Change-Id: I6037aa486b50119f2c7b859b966cadc3686e3459
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/21328
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Schneider <dnschneid@chromium.org>
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index df3df4f..43fbb71 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -90,36 +90,27 @@
 	 * with highest voltage first.
 	 * Since register_bl31() appends to the front of the list, we need to
 	 * register them backwards, with 1.5V coming first.
+	 * 1.5V and 1.8V are EC-controlled on Scarlet, so we skip them.
 	 */
-	static struct bl31_gpio_param param_p15_en = {
-		.h = {
-			.type = PARAM_SUSPEND_GPIO,
-		},
-		.gpio = {
-			.polarity = BL31_GPIO_LEVEL_LOW,
-		},
-	};
-	param_p15_en.gpio.index = GPIO_P15V_EN.raw;
-	register_bl31_param(&param_p15_en.h);
+	if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {
+		static struct bl31_gpio_param param_p15_en = {
+			.h = { .type = PARAM_SUSPEND_GPIO },
+			.gpio = { .polarity = BL31_GPIO_LEVEL_LOW },
+		};
+		param_p15_en.gpio.index = GPIO_P15V_EN.raw;
+		register_bl31_param(&param_p15_en.h);
 
-	static struct bl31_gpio_param param_p18_audio_en = {
-		.h = {
-			.type = PARAM_SUSPEND_GPIO,
-		},
-		.gpio = {
-			.polarity = BL31_GPIO_LEVEL_LOW,
-		},
-	};
-	param_p18_audio_en.gpio.index = GPIO_P18V_AUDIO_PWREN.raw;
-	register_bl31_param(&param_p18_audio_en.h);
+		static struct bl31_gpio_param param_p18_audio_en = {
+			.h = { .type = PARAM_SUSPEND_GPIO },
+			.gpio = { .polarity = BL31_GPIO_LEVEL_LOW },
+		};
+		param_p18_audio_en.gpio.index = GPIO_P18V_AUDIO_PWREN.raw;
+		register_bl31_param(&param_p18_audio_en.h);
+	}
 
 	static struct bl31_gpio_param param_p30_en = {
-		.h = {
-			.type = PARAM_SUSPEND_GPIO,
-		},
-		.gpio = {
-			.polarity = BL31_GPIO_LEVEL_LOW,
-		},
+		.h = { .type = PARAM_SUSPEND_GPIO },
+		.gpio = { .polarity = BL31_GPIO_LEVEL_LOW },
 	};
 	param_p30_en.gpio.index = GPIO_P30V_EN.raw;
 	register_bl31_param(&param_p30_en.h);
@@ -354,8 +345,8 @@
 	if (!IS_ENABLED(CONFIG_BOARD_GOOGLE_SCARLET)) {
 		configure_touchpad();		/* Scarlet: works differently */
 		setup_usb(1);			/* Scarlet: only one USB port */
-		register_gpio_suspend();	/* Scarlet: all EC-controlled */
 	}
+	register_gpio_suspend();
 	register_reset_to_bl31();
 	register_poweroff_to_bl31();
 	register_apio_suspend();