rockchip: gru: pass reset gpio parameter to BL31

To support gpio reset SOC, we need to pass the reset gpio
parameter to BL31. Note: request BL31 have supported this
function.

BRANCH=None
BUG=chrome-os-partner:51924
TEST=Build gru

Change-Id: I182cff11ce6f5dc3354db0dc053c128b813acf9f
Signed-off-by: Martin Roth <martinroth@chromium.org>
Original-Commit-Id:
Original-Change-Id: I8283596565d552b1f3db31c28621a1601c226999
Original-Signed-off-by: Lin Huang <hl@rock-chips.com>
Original-Signed-off-by: Douglas Anderson <dianders@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/349702
Original-Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://review.coreboot.org/15118
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins)
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index e6baebe..2305129 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -19,6 +19,7 @@
 #include <device/device.h>
 #include <device/i2c.h>
 #include <gpio.h>
+#include <soc/bl31_plat_params.h>
 #include <soc/clock.h>
 #include <soc/display.h>
 #include <soc/emmc.h>
@@ -44,6 +45,23 @@
 	enable_emmc_clk();
 }
 
+static void register_reset_to_bl31(void)
+{
+	static struct bl31_gpio_param param_reset = {
+		.h = {
+			.type = PARAM_RESET,
+		},
+		.gpio = {
+			.polarity = 1,
+		},
+	};
+
+	/* gru/kevin reset pin: gpio0b3 */
+	param_reset.gpio.index = GET_GPIO_NUM(GPIO_RESET),
+
+	register_bl31_param(&param_reset.h);
+}
+
 static void configure_sdmmc(void)
 {
 	gpio_output(GPIO(4, D, 5), 1);  /* SDMMC_PWR_EN */
@@ -132,6 +150,7 @@
 	configure_codec();
 	configure_display();
 	setup_usb();
+	register_reset_to_bl31();
 }
 
 static void enable_backlight_booster(void)