diff --git a/src/mainboard/google/brya/variants/kaladin/Makefile.mk b/src/mainboard/google/brya/variants/kaladin/Makefile.mk index cc61780e02..936c557f19 100644 --- a/src/mainboard/google/brya/variants/kaladin/Makefile.mk +++ b/src/mainboard/google/brya/variants/kaladin/Makefile.mk @@ -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 diff --git a/src/mainboard/google/brya/variants/kaladin/fw_config.c b/src/mainboard/google/brya/variants/kaladin/fw_config.c new file mode 100644 index 0000000000..6db352e3e9 --- /dev/null +++ b/src/mainboard/google/brya/variants/kaladin/fw_config.c @@ -0,0 +1,9 @@ +#include +#include + +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); + } +} diff --git a/src/mainboard/google/brya/variants/kaladin/gpio.c b/src/mainboard/google/brya/variants/kaladin/gpio.c index c43caf380c..0e0518dff5 100644 --- a/src/mainboard/google/brya/variants/kaladin/gpio.c +++ b/src/mainboard/google/brya/variants/kaladin/gpio.c @@ -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), diff --git a/src/mainboard/google/brya/variants/kaladin/overridetree.cb b/src/mainboard/google/brya/variants/kaladin/overridetree.cb index 4e97a62f6a..5b720a24e9 100644 --- a/src/mainboard/google/brya/variants/kaladin/overridetree.cb +++ b/src/mainboard/google/brya/variants/kaladin/overridetree.cb @@ -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