mb/google/trulo/var/kaladin: Fix Type C function

Fix Type C USB and display function

BUG=b:429267772
TEST=Build and flash to DUT, verify Type C USB and display function works

Change-Id: I37af5f4608b2756f0918a6b544b53818d1e45d63
Signed-off-by: Eren Peng <peng.eren@inventec.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88374
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
peng.eren 2025-07-10 13:27:59 +08:00 committed by Matt DeVillier
commit 50c39b3a22
4 changed files with 62 additions and 33 deletions

View file

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

View file

@ -0,0 +1,9 @@
#include <fw_config.h>
#include <baseboard/variants.h>
void variant_update_soc_chip_config(struct soc_intel_alderlake_config *config)
{
if (fw_config_probe(FW_CONFIG(MB_USB, MB_USB_2C_1A))) {
config->tcss_ports[1] = (struct tcss_port_config) TCSS_PORT_DEFAULT(OC_SKIP);
}
}

View file

@ -44,10 +44,10 @@ static const struct pad_config gpio_table[] = {
PAD_NC(GPP_A19, NONE),
/* A20 : NC */
PAD_NC(GPP_A20, NONE),
/* A21 : USB_C1_AUX_DC_P */
PAD_CFG_NF(GPP_A21, NONE, DEEP, NF6),
/* A22 : USB_C1_AUX_DC_N */
PAD_CFG_NF(GPP_A22, NONE, DEEP, NF6),
/* A21 : NC */
PAD_NC(GPP_A21, NONE),
/* A22 : NC */
PAD_NC(GPP_A22, NONE),
/* A23 : GPP_A23 ==> NC */
PAD_NC(GPP_A23, NONE),
@ -202,10 +202,10 @@ static const struct pad_config gpio_table[] = {
PAD_NC(GPP_E20, NONE),
/* E21 : DDP2_CTRLDATA ==> NC */
PAD_NC(GPP_E21, NONE),
/* E22 : DDPA_CTRLCLK ==> USB_C0_AUX_DC_P */
PAD_CFG_NF(GPP_E22, NONE, DEEP, NF6),
/* E23 : DDPA_CTRLDATA ==> USB_C0_AUX_DC_N */
PAD_CFG_NF(GPP_E23, NONE, DEEP, NF6),
/* E22 : DDPA_CTRLCLK ==> NC */
PAD_NC(GPP_E22, NONE),
/* E23 : DDPA_CTRLDATA ==> NC */
PAD_NC(GPP_E23, NONE),
/* F0 : CNV_BRI_DT ==> CNV_BRI_DT_STRAP */
PAD_CFG_NF(GPP_F0, NONE, DEEP, NF1),

View file

@ -3,6 +3,10 @@ fw_config
option THERMAL_SOLUTION_6W 0
option THERMAL_SOLUTION_15W 1
end
field MB_USB 2 2
option MB_USB_1C_1A 0
option MB_USB_2C_1A 1
end
field STORAGE 30 31
option STORAGE_EMMC 0
option STORAGE_NVME 1
@ -40,10 +44,9 @@ chip soc/intel/alderlake
register "usb2_ports[7]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth port for PCIe WLAN (2.5 inch)
register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth port for CNVi WLAN
register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC1)" # USB3 Type-A port A0(MLB))
register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC1)" # USB3 Type-A port A0(MLB)
register "tcss_ports[0]" = "TCSS_PORT_DEFAULT(OC_SKIP)"
register "tcss_ports[1]" = "TCSS_PORT_DEFAULT(OC_SKIP)"
# SOC Aux orientation override:
# This is a bitfield that corresponds to up to 4 TCSS ports.
@ -54,7 +57,6 @@ chip soc/intel/alderlake
# motherboard to USBC connector
register "tcss_aux_ori" = "0"
# HD Audio
register "pch_hda_dsp_enable" = "1"
register "pch_hda_audio_link_hda_enable" = "1"
@ -248,37 +250,42 @@ chip soc/intel/alderlake
end
device ref igpu on
chip drivers/gfx/generic
register "device_count" = "4"
register "device_count" = "3"
# DDIA for eDP
register "device[0].name" = ""LCD0""
# Internal panel on the first port of the graphics chip
register "device[0].type" = "panel"
# DDIB for HDMI
# If HDMI is not enumerated in the kernel, then no GFX device should be added for DDIB
register "device[1].name" = ""DD01""
# DDIB is unused and HDMI is not enumerated in the kernel, so no GFX device is added for DDIB
# TCP0 (DP-1) for port C0
register "device[1].name" = ""DD01""
register "device[1].use_pld" = "true"
register "device[1].pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(1, 1))"
# TCP1 is unused and not enumerated in the kernel, so no GFX device is added for TCP1
# TCP2 (DP-2) for port C1
register "device[2].name" = ""DD02""
register "device[2].use_pld" = "true"
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(1, 1))"
# TCP1 (DP-2) for port C1
register "device[3].name" = ""DD03""
register "device[3].use_pld" = "true"
register "device[3].pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
register "device[2].pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(2, 1))"
# TCP3 is unused and not enumerated in the kernel, so no GFX device is added for TCP3
device generic 0 on end
end
end
end # Integrated Graphics Device
device ref pmc hidden
chip drivers/intel/pmc_mux
device generic 0 on
chip drivers/intel/pmc_mux/conn
use usb2_port1 as usb2_port
use tcss_usb3_port1 as usb3_port
device generic 0 alias conn0 on end
device generic 0 alias conn0 on
probe MB_USB MB_USB_2C_1A
probe MB_USB MB_USB_1C_1A
end
end
chip drivers/intel/pmc_mux/conn
use usb2_port2 as usb2_port
use tcss_usb3_port2 as usb3_port
device generic 1 alias conn1 on end
device generic 1 alias conn1 on
probe MB_USB MB_USB_2C_1A
end
end
end
end
@ -290,15 +297,20 @@ chip soc/intel/alderlake
register "desc" = ""USB3 Type-C Port C0 (MLB)""
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
register "use_custom_pld" = "true"
register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(1, 1))"
device ref tcss_usb3_port1 on end
register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(1, 1))"
device ref tcss_usb3_port1 on
probe MB_USB MB_USB_2C_1A
probe MB_USB MB_USB_1C_1A
end
end
chip drivers/usb/acpi
register "desc" = ""USB3 Type-C Port C1 (DB)""
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
register "use_custom_pld" = "true"
register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
device ref tcss_usb3_port2 on end
register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(2, 1))"
device ref tcss_usb3_port2 on
probe MB_USB MB_USB_2C_1A
end
end
end
end
@ -310,21 +322,26 @@ chip soc/intel/alderlake
register "desc" = ""USB2 Type-C Port C0 (MLB)""
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
register "use_custom_pld" = "true"
register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(1, 1))"
device ref usb2_port1 on end
register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, RIGHT, ACPI_PLD_GROUP(1, 1))"
device ref usb2_port1 on
probe MB_USB MB_USB_2C_1A
probe MB_USB MB_USB_1C_1A
end
end
chip drivers/usb/acpi
register "desc" = ""USB2 Type-C Port C1 (DB)""
register "type" = "UPC_TYPE_C_USB2_SS_SWITCH"
register "use_custom_pld" = "true"
register "custom_pld" = "ACPI_PLD_TYPE_C(LEFT, LEFT, ACPI_PLD_GROUP(2, 1))"
device ref usb2_port2 on end
register "custom_pld" = "ACPI_PLD_TYPE_C(RIGHT, LEFT, ACPI_PLD_GROUP(2, 1))"
device ref usb2_port2 on
probe MB_USB MB_USB_2C_1A
end
end
chip drivers/usb/acpi
register "desc" = ""USB2 Type-A Port A0 (MLB)""
register "type" = "UPC_TYPE_A"
register "use_custom_pld" = "true"
register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, RIGHT, ACPI_PLD_GROUP(3, 1))"
register "custom_pld" = "ACPI_PLD_TYPE_A(LEFT, LEFT, ACPI_PLD_GROUP(3, 1))"
device ref usb2_port3 on end
end
chip drivers/usb/acpi
@ -350,7 +367,7 @@ chip soc/intel/alderlake
register "desc" = ""USB3 Type-A Port A0 (MLB)""
register "type" = "UPC_TYPE_USB3_A"
register "use_custom_pld" = "true"
register "custom_pld" = "ACPI_PLD_TYPE_A(RIGHT, RIGHT, ACPI_PLD_GROUP(3, 1))"
register "custom_pld" = "ACPI_PLD_TYPE_A(LEFT, LEFT, ACPI_PLD_GROUP(3, 1))"
device ref usb3_port1 on end
end
chip drivers/usb/acpi
@ -458,6 +475,8 @@ chip soc/intel/alderlake
device ref uart0 on end
device ref pch_espi on
chip ec/google/chromeec
use conn0 as mux_conn[0]
use conn1 as mux_conn[1]
device pnp 0c09.0 on end
end
end