mb/google/trulo/var/uldrenite: Add fw_config probe for Cellular

Use fw_config to probe Cellular.

BUG=b:392040004
BRANCH=firmware-trulo-15217.771.B
TEST=emerge-nissa coreboot chromeos-bootimage

Change-Id: Ib664f543c6012b44a0a604d0943416519d92a057
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86255
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
This commit is contained in:
John Su 2025-02-03 23:25:25 +08:00 committed by Matt DeVillier
commit 4a2135d21e
2 changed files with 32 additions and 3 deletions

View file

@ -1,4 +1,8 @@
fw_config
field DB_CELLULAR 1 2
option CELLULAR_ABSENT 0
option CELLULAR_RW350R 1
end
field TOUCHSCREEN 4 4
option TOUCHSCREEN_UNKNOWN 0
option TOUCHSCREEN_NONE 1
@ -278,7 +282,9 @@ chip soc/intel/alderlake
chip drivers/usb/acpi
register "desc" = ""USB2 WWAN""
register "type" = "UPC_TYPE_INTERNAL"
device ref usb2_port5 on end
device ref usb2_port5 on
probe DB_CELLULAR CELLULAR_RW350R
end
end
chip drivers/usb/acpi
register "desc" = ""USB2 User Facing Camera""
@ -459,7 +465,9 @@ chip soc/intel/alderlake
register "srcclk_pin" = "2"
register "ext_pm_support" = "ACPI_PCIE_RP_EMIT_ALL"
register "skip_on_off_support" = "true"
device generic 0 alias rp2_rtd3 on end
device generic 0 alias rp2_rtd3 on
probe DB_CELLULAR CELLULAR_RW350R
end
end
chip drivers/wwan/fm
register "fcpo_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_H23)"
@ -468,8 +476,11 @@ chip soc/intel/alderlake
register "wake_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E16)"
register "add_acpi_dma_property" = "true"
use rp2_rtd3 as rtd3dev
device generic 0 alias rp2_wwan on end
device generic 0 alias rp2_wwan on
probe DB_CELLULAR CELLULAR_RW350R
end
end
probe DB_CELLULAR CELLULAR_RW350R
end # PCIE2 WWAN card
device ref shared_sram on end
device ref heci1 on end

View file

@ -37,6 +37,17 @@ static const struct pad_config touchscreen_disable_pads[] = {
PAD_NC(GPP_E17, NONE),
};
static const struct pad_config lte_disable_pads[] = {
/* A8 : WWAN_RF_DISABLE_ODL */
PAD_NC(GPP_A8, NONE),
/* F12 : WWAN_RST_L */
PAD_NC_LOCK(GPP_F12, NONE, LOCK_CONFIG),
/* F13 : PLTRST_WWAN# */
PAD_NC(GPP_F13, NONE),
/* H23 : WWAN_EN */
PAD_NC(GPP_H23, NONE),
};
void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
{
if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_NONE))) {
@ -44,10 +55,17 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
gpio_padbased_override(padbased_table, touchscreen_disable_pads,
ARRAY_SIZE(touchscreen_disable_pads));
}
if (fw_config_probe(FW_CONFIG(DB_CELLULAR, CELLULAR_ABSENT))) {
printk(BIOS_INFO, "Disable Cellular GPIO pins.\n");
gpio_padbased_override(padbased_table, lte_disable_pads,
ARRAY_SIZE(lte_disable_pads));
}
}
void variant_init(void)
{
if (fw_config_probe(FW_CONFIG(DB_CELLULAR, CELLULAR_ABSENT)))
return;
/*
* RW350R power on seuqence:
* De-assert WWAN_EN -> 20ms -> de-assert WWAN_RST -> 30ms ->