mb/google/brya/uldrenite: Add WWAN RW350R-GL power on sequence

Uldrenite supports the WWAN 5G device and uses variant.c to handle the
power-on sequence according to the Rolling Wireless_RW350R-GL_Hardware
Guide_Generic_V1.1. Due to no hardware access, the boot time is
estimated to increase by 50 ms.

At this stage, we do not yet have the board or key parts for
verification. However, I still need to merge the CL to ensure that the
WWAN functionality works. Once the motherboard is available, I will make
adjustments to optimize and reduce the boot time.

BUG=b:381393809, b:383212261
BRANCH=None
TEST=emerge-nissa coreboot

Change-Id: If8695920c2b3d2a27da62afcbe75e70d1ea09792
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85537
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Dinesh Gehlot <digehlot@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
This commit is contained in:
John Su 2024-12-09 16:39:02 +08:00 committed by Subrata Banik
commit 0dba17da0c
2 changed files with 37 additions and 0 deletions

View file

@ -5,4 +5,5 @@ romstage-y += gpio.c
romstage-y += memory.c
ramstage-y += gpio.c
ramstage-$(CONFIG_FW_CONFIG) += variant.c
ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_HDA_VERB) += hda_verb.c

View file

@ -0,0 +1,36 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <baseboard/gpio.h>
#include <baseboard/variants.h>
#include <console/console.h>
#include <delay.h>
#define RW350R_RST_DELAY_MS 20
#define RW350R_PERST_DELAY_MS 30
static const struct pad_config rw350r_en_pad[] = {
/* H23 : LTE_PWR_OFF_EN */
PAD_CFG_GPO(GPP_H23, 1, DEEP),
};
static const struct pad_config rw350r_rst_pad[] = {
/* F12 : WWAN_RST_L */
PAD_CFG_GPO_LOCK(GPP_F12, 1, LOCK_CONFIG),
};
static const struct pad_config rw350r_perst_pad[] = {
/* F13 : PLTRST_WWAN# */
PAD_CFG_GPO(GPP_F13, 1, DEEP),
};
void variant_init(void)
{
/*
* RW350R power on seuqence:
* De-assert WWAN_EN -> 20ms -> de-assert WWAN_RST -> 30ms ->
* de-assert WWAN_PERST
*/
gpio_configure_pads(rw350r_en_pad, ARRAY_SIZE(rw350r_en_pad));
mdelay(RW350R_RST_DELAY_MS);
gpio_configure_pads(rw350r_rst_pad, ARRAY_SIZE(rw350r_rst_pad));
mdelay(RW350R_PERST_DELAY_MS);
gpio_configure_pads(rw350r_perst_pad, ARRAY_SIZE(rw350r_perst_pad));
}