soc/intel/common/tcss: Guard disabling MUX with TCSS_HAS_USBC_OPS
Currently, SOC_INTEL_COMMON_BLOCK_TCSS will set MUX to disabled. The two related options to re-configure it for either USB devices or displays, are currently only supported by the ChromeEC. As such, any device without the ChromeEC will boot with attached USB-C devices in a non-functional state. Add TCSS_HAS_USBC_OPS to make this feature configurable, and set the default to enabled if the board features the ChromeEC. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Ia848668ae9af4637fc7cffec9eb694f29d7deba9 Reviewed-on: https://review.coreboot.org/c/coreboot/+/79882 Reviewed-by: Kapil Porwal <kapilporwal@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
parent
4f43b0e7ad
commit
7201602a18
|
@ -2,17 +2,28 @@ config SOC_INTEL_COMMON_BLOCK_TCSS
|
||||||
def_bool n
|
def_bool n
|
||||||
select FSPS_USE_MULTI_PHASE_INIT
|
select FSPS_USE_MULTI_PHASE_INIT
|
||||||
help
|
help
|
||||||
Sets up USB2/3 port mapping in TCSS MUX and sets MUX to disconnect state
|
Sets up USB2/3 port mapping in TCSS MUX
|
||||||
|
|
||||||
|
config TCSS_HAS_USBC_OPS
|
||||||
|
bool "Enable USB-C MUX operations via the EC"
|
||||||
|
default y if EC_GOOGLE_CHROMEEC
|
||||||
|
depends on SOC_INTEL_COMMON_BLOCK_TCSS
|
||||||
|
help
|
||||||
|
Enable USB-C operations via the EC. Requires `usbc_get_ops` to control features
|
||||||
|
such as HPD and DP Mode entry. Currently, only the ChromeEC implements this, see
|
||||||
|
(ec/google/chromeec/usbc_mux.c).
|
||||||
|
|
||||||
|
This results in the MUX being set to a disabled state.
|
||||||
|
|
||||||
config ENABLE_TCSS_DISPLAY_DETECTION
|
config ENABLE_TCSS_DISPLAY_DETECTION
|
||||||
bool "Enable detection of displays over USB Type-C ports with TCSS"
|
bool "Enable detection of displays over USB Type-C ports with TCSS"
|
||||||
depends on SOC_INTEL_COMMON_BLOCK_TCSS && RUN_FSP_GOP
|
depends on TCSS_HAS_USBC_OPS && RUN_FSP_GOP
|
||||||
help
|
help
|
||||||
Enable displays to be detected over Type-C ports during boot.
|
Enable displays to be detected over Type-C ports during boot.
|
||||||
|
|
||||||
config ENABLE_TCSS_USB_DETECTION
|
config ENABLE_TCSS_USB_DETECTION
|
||||||
bool "Enable detection of USB boot devices attached to USB Type-C ports with TCSS"
|
bool "Enable detection of USB boot devices attached to USB Type-C ports with TCSS"
|
||||||
depends on SOC_INTEL_COMMON_BLOCK_TCSS
|
depends on TCSS_HAS_USBC_OPS
|
||||||
help
|
help
|
||||||
Enable USB-C attached storage devices to be detected at boot.
|
Enable USB-C attached storage devices to be detected at boot.
|
||||||
This option is required for some payloads (eg, edk2), without which devices attached
|
This option is required for some payloads (eg, edk2), without which devices attached
|
||||||
|
|
|
@ -442,23 +442,22 @@ void tcss_configure(const struct typec_aux_bias_pads aux_bias_pads[MAX_TYPE_C_PO
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
port_map = tcss_get_port_info(&num_ports);
|
port_map = tcss_get_port_info(&num_ports);
|
||||||
if (port_map == NULL)
|
if ((port_map == NULL) || platform_is_resuming())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!platform_is_resuming()) {
|
if (CONFIG(TCSS_HAS_USBC_OPS))
|
||||||
for (i = 0; i < num_ports; i++)
|
for (i = 0; i < num_ports; i++)
|
||||||
tcss_init_mux(i, &port_map[i]);
|
tcss_init_mux(i, &port_map[i]);
|
||||||
|
|
||||||
/* This should be performed before alternate modes are entered */
|
/* This should be performed before alternate modes are entered */
|
||||||
if (tcss_ops.configure_aux_bias_pads)
|
if (tcss_ops.configure_aux_bias_pads)
|
||||||
tcss_ops.configure_aux_bias_pads(aux_bias_pads);
|
tcss_ops.configure_aux_bias_pads(aux_bias_pads);
|
||||||
|
|
||||||
if (CONFIG(ENABLE_TCSS_DISPLAY_DETECTION))
|
if (CONFIG(ENABLE_TCSS_DISPLAY_DETECTION))
|
||||||
tcss_configure_dp_mode(port_map, num_ports);
|
tcss_configure_dp_mode(port_map, num_ports);
|
||||||
|
|
||||||
if (CONFIG(ENABLE_TCSS_USB_DETECTION))
|
if (CONFIG(ENABLE_TCSS_USB_DETECTION))
|
||||||
tcss_configure_usb_mode(port_map, num_ports);
|
tcss_configure_usb_mode(port_map, num_ports);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tcss_valid_tbt_auth(void)
|
bool tcss_valid_tbt_auth(void)
|
||||||
|
|
Loading…
Reference in New Issue