From aa832c19b2c3e4f1be6b917abd962a7d664be7a3 Mon Sep 17 00:00:00 2001
From: Maulik V Vaghela <maulik.v.vaghela@intel.com>
Date: Fri, 27 Mar 2020 17:38:15 +0530
Subject: mb/intel/jasperlake_rvp: Configure WWAN GPIOs

M.2 WWAN interface has GPIOs which requires coreboot to
configure all related GPIOs as per board schematics.

BUG=None
BRANCH=None
TEST=code compiles and WWAN device is detected in OS

Change-Id: I8ad978a619b50e16ad754177f1eb05cf7670b79f
Signed-off-by: Maulik V Vaghela <maulik.v.vaghela@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39877
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ronak Kanabar <ronak.kanabar@intel.com>
Reviewed-by: Aamir Bohra <aamir.bohra@intel.com>
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
---
 .../intel/jasperlake_rvp/variants/jslrvp/gpio.c    | 29 +++++++++++++++-------
 1 file changed, 20 insertions(+), 9 deletions(-)

(limited to 'src')

diff --git a/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c b/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c
index 726417a8cc..744a299af9 100644
--- a/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c
+++ b/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c
@@ -9,7 +9,18 @@
 static const struct pad_config gpio_table[] = {
 	/* ToDo: Fill other gpio configuration */
 
-	/* Audio related GPIOs */
+	/* WWAN_WAKE_N */
+	PAD_CFG_GPI_SCI(GPP_A10, NONE, DEEP, LEVEL, INVERT),
+
+	/* M.2_WWAN_DISABLE_N */
+	PAD_CFG_GPO(GPP_A19, 1, PLTRST),
+
+	/* WWAN_PERST_N */
+	PAD_CFG_GPO(GPP_C0, 0, PLTRST),
+
+	/* M2_WWAN_SSD_SKT2_CFG2 */
+	PAD_CFG_GPI(GPP_C3, NONE, PLTRST),
+
 	/* I2C0_SDA */
 	PAD_CFG_NF(GPP_C16, UP_2K, DEEP, NF1),
 
@@ -19,14 +30,11 @@ static const struct pad_config gpio_table[] = {
 	/* I2S_MCLK */
 	PAD_CFG_NF(GPP_D18, NONE, DEEP, NF1),
 
-	/* SD_CD# */
-	PAD_CFG_NF(GPP_G5, UP_20K, PWROK, NF1),
-
-	/* SD_WP */
-	PAD_CFG_NF(GPP_G7, DN_20K, PWROK, NF1),
+	/* WWAN_FCP_OFF_N */
+	PAD_CFG_GPO(GPP_E3, 1, PLTRST),
 
-	/* virtual GPIO for SD card detect */
-	PAD_CFG_GPI_GPIO_DRIVER(VGPIO_39, NONE, DEEP),
+	/* WWAN EN GPIO */
+	PAD_CFG_GPO(GPP_H7, 1, PLTRST),
 
 	/* I2S1_SCLK */
 	PAD_CFG_NF(GPP_H15, NONE, DEEP, NF1),
@@ -55,6 +63,9 @@ static const struct pad_config gpio_table[] = {
 	/* I2S1_TXD */
 	PAD_CFG_NF(GPP_R7, NONE, DEEP, NF2),
 
+	/* WWAN RST_N */
+	PAD_CFG_GPO(GPP_S0, 1, DEEP),
+
 	/* DMIC_CLK_1 */
 	PAD_CFG_NF(GPP_S2, UP_20K, DEEP, NF2),
 
@@ -71,7 +82,7 @@ static const struct pad_config gpio_table[] = {
 
 /* Early pad configuration in bootblock */
 static const struct pad_config early_gpio_table[] = {
-/* ToDo: Fill early gpio configurations for TPM and WWAN */
+	/* ToDo: Fill early gpio configurations for TPM */
 };
 
 const struct pad_config *variant_gpio_table(size_t *num)
-- 
cgit v1.2.3