diff --git a/src/soc/intel/alderlake/acpi/tcss.asl b/src/soc/intel/alderlake/acpi/tcss.asl index 8dfa8750c0..b8b9fa4175 100644 --- a/src/soc/intel/alderlake/acpi/tcss.asl +++ b/src/soc/intel/alderlake/acpi/tcss.asl @@ -331,8 +331,13 @@ Scope (\_SB) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, IOM_BASE_ADDRESS, IOM_BASE_SIZE) }) +#if CONFIG(IOM_ACPI_DEVICE_VISIBLE) + /* ACPI_STATUS_DEVICE_ALL_ON */ + Name (_STA, 0xF) +#else /* ACPI_STATUS_DEVICE_HIDDEN_ON */ Name (_STA, 0xB) +#endif } } diff --git a/src/soc/intel/common/block/usb4/Kconfig b/src/soc/intel/common/block/usb4/Kconfig index 1ae570c2bf..557f199cc1 100644 --- a/src/soc/intel/common/block/usb4/Kconfig +++ b/src/soc/intel/common/block/usb4/Kconfig @@ -58,3 +58,13 @@ config SOFTWARE_CONNECTION_MANAGER help Enable SCM so it's used instead of FCM. endchoice + +config IOM_ACPI_DEVICE_VISIBLE + bool + depends on SOC_INTEL_COMMON_BLOCK_USB4 + default n + help + Select this config if the mainboard needs the IOM ACPI device + visible to the OS. This is needed for ChromeOS devices for + which ChromeEC acts as the TCPC, otherwise should be left + unselected. diff --git a/src/soc/intel/meteorlake/acpi/tcss.asl b/src/soc/intel/meteorlake/acpi/tcss.asl index 24d28f3b63..b765f0c738 100644 --- a/src/soc/intel/meteorlake/acpi/tcss.asl +++ b/src/soc/intel/meteorlake/acpi/tcss.asl @@ -334,8 +334,13 @@ Scope (\_SB.PCI0) IOM_BASE_ADDR, IOM_BASE_ADDR_MAX, 0x0, IOM_BASE_SIZE,,,) }) - /* Hide the device so that Windows does not complain on missing driver */ +#if CONFIG(IOM_ACPI_DEVICE_VISIBLE) + /* ACPI_STATUS_DEVICE_ALL_ON */ + Name (_STA, 0xF) +#else + /* ACPI_STATUS_DEVICE_HIDDEN_ON */ Name (_STA, 0xB) +#endif } /* diff --git a/src/soc/intel/pantherlake/acpi/tcss.asl b/src/soc/intel/pantherlake/acpi/tcss.asl index 1743b1e454..a89d26fb25 100644 --- a/src/soc/intel/pantherlake/acpi/tcss.asl +++ b/src/soc/intel/pantherlake/acpi/tcss.asl @@ -334,8 +334,13 @@ Scope (\_SB.PCI0) IOM_BASE_ADDR, IOM_BASE_ADDR_MAX, 0x0, IOM_BASE_SIZE,,,) }) - /* Hide the device so that Windows does not complain on missing driver */ +#if CONFIG(IOM_ACPI_DEVICE_VISIBLE) + /* ACPI_STATUS_DEVICE_ALL_ON */ + Name (_STA, 0xF) +#else + /* ACPI_STATUS_DEVICE_HIDDEN_ON */ Name (_STA, 0xB) +#endif } /* diff --git a/src/soc/intel/tigerlake/acpi/tcss.asl b/src/soc/intel/tigerlake/acpi/tcss.asl index 2a7e674973..d01cf250aa 100644 --- a/src/soc/intel/tigerlake/acpi/tcss.asl +++ b/src/soc/intel/tigerlake/acpi/tcss.asl @@ -331,8 +331,13 @@ Scope (\_SB) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, IOM_BASE_ADDRESS, IOM_BASE_SIZE) }) +#if CONFIG(IOM_ACPI_DEVICE_VISIBLE) + /* ACPI_STATUS_DEVICE_ALL_ON */ + Name (_STA, 0xF) +#else /* ACPI_STATUS_DEVICE_HIDDEN_ON */ Name (_STA, 0xB) +#endif } }