mb/google/dedede/var/cret: Support LTE module

Add LTE module support into devicetree and associated GPIO configuration.

BUG=b:183774169
BRANCH=dedede
TEST=Build the cret board.

Signed-off-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Change-Id: I14684bb30e46bf845a401649f56b16b60db379e8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/51844
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
Dtrain Hsu 2021-03-26 16:05:47 +08:00 committed by Patrick Georgi
parent d9999e84d2
commit 0d9829dc05
4 changed files with 40 additions and 0 deletions

View File

@ -1,3 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-or-later ## SPDX-License-Identifier: GPL-2.0-or-later
ramstage-y += gpio.c ramstage-y += gpio.c
smm-y += variant.c

View File

@ -5,6 +5,8 @@
/* Pad configuration in ramstage */ /* Pad configuration in ramstage */
static const struct pad_config override_gpio_table[] = { static const struct pad_config override_gpio_table[] = {
/* A10 : WWAN_EN */
PAD_CFG_GPO(GPP_A10, 1, PWROK),
/* C12 : AP_PEN_DET_ODL ==> NC */ /* C12 : AP_PEN_DET_ODL ==> NC */
PAD_NC(GPP_C12, UP_20K), PAD_NC(GPP_C12, UP_20K),
/* C18 : AP_I2C_EMR_SDA */ /* C18 : AP_I2C_EMR_SDA */
@ -13,6 +15,8 @@ static const struct pad_config override_gpio_table[] = {
PAD_NC(GPP_C19, NONE), PAD_NC(GPP_C19, NONE),
/* C22 : UART2_RTS_N ==> NC */ /* C22 : UART2_RTS_N ==> NC */
PAD_NC(GPP_C22, UP_20K), PAD_NC(GPP_C22, UP_20K),
/* D0 : WWAN_HOST_WAKE ==> WWAN_WDISABLE_L */
PAD_CFG_GPO(GPP_D0, 1, DEEP),
/* D12 : WCAM_RST_L ==> NC */ /* D12 : WCAM_RST_L ==> NC */
PAD_NC(GPP_D12, NONE), PAD_NC(GPP_D12, NONE),
/* D14 : EN_PP1200_CAMERA ==> NC */ /* D14 : EN_PP1200_CAMERA ==> NC */
@ -23,6 +27,8 @@ static const struct pad_config override_gpio_table[] = {
PAD_NC(GPP_D19, NONE), PAD_NC(GPP_D19, NONE),
/* D20 : WWAN_WLAN_COEX2 ==> NC */ /* D20 : WWAN_WLAN_COEX2 ==> NC */
PAD_NC(GPP_D20, NONE), PAD_NC(GPP_D20, NONE),
/* D21 : WWAN_WLAN_COEX3 ==> NC */
PAD_NC(GPP_D21, NONE),
/* E0 : CLK_24M_UCAM ==> NC */ /* E0 : CLK_24M_UCAM ==> NC */
PAD_NC(GPP_E0, NONE), PAD_NC(GPP_E0, NONE),
/* E2 : CLK_24M_WCAM ==> NC */ /* E2 : CLK_24M_WCAM ==> NC */
@ -33,6 +39,8 @@ static const struct pad_config override_gpio_table[] = {
PAD_NC(GPP_H6, NONE), PAD_NC(GPP_H6, NONE),
/* H7 : AP_I2C_CAM_SCL ==> NC */ /* H7 : AP_I2C_CAM_SCL ==> NC */
PAD_NC(GPP_H7, NONE), PAD_NC(GPP_H7, NONE),
/* H17 : WWAN_RST_L */
PAD_CFG_GPO(GPP_H17, 1, PLTRST),
/* G0 : SD_CMD ==> NC */ /* G0 : SD_CMD ==> NC */
PAD_NC(GPP_G0, NONE), PAD_NC(GPP_G0, NONE),
/* G1 : SD_DATA0 ==> NC */ /* G1 : SD_DATA0 ==> NC */

View File

@ -75,6 +75,13 @@ chip soc/intel/jasperlake
chip drivers/usb/acpi chip drivers/usb/acpi
register "desc" = ""LTE"" register "desc" = ""LTE""
register "type" = "UPC_TYPE_INTERNAL" register "type" = "UPC_TYPE_INTERNAL"
register "has_power_resource" = "1"
register "reset_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_H17)"
register "reset_off_delay_ms" = "10"
register "enable_gpio" =
"ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_A10)"
register "enable_delay_ms" = "20"
device usb 3.3 on end device usb 3.3 on end
end end
end end

View File

@ -0,0 +1,23 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <acpi/acpi.h>
#include <baseboard/variants.h>
#include <delay.h>
#include <gpio.h>
static void power_off_lte_module(void)
{
gpio_output(GPP_H17, 0);
mdelay(10);
gpio_output(GPP_A10, 0);
}
void variant_smi_sleep(u8 slp_typ)
{
/*
* Once the FW_CONFIG is provisioned, power off LTE module only under
* the situation where it is stuffed.
*/
if (slp_typ == ACPI_S5)
power_off_lte_module();
}