device/azalia_device.c: Add option to lock down GCAP
On Intel 6-series PCHs, the GCAP register is R/WO (Read / Write Once),
and needs to be written to after the HD Audio controller is taken out
of reset. Add a Kconfig option to read and write back GCAP in order to
lock it down. Follow-up commits will select this option when switching
platforms to use common Azalia code, to preserve original behaviour.
Change-Id: I70bab20816fb6c0bf7bff35c3d2f5828cd96172d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50794
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
diff --git a/src/device/Kconfig b/src/device/Kconfig
index 63b7d6c..5ae3466 100644
--- a/src/device/Kconfig
+++ b/src/device/Kconfig
@@ -527,6 +527,15 @@
help
The maximum number of codecs supported on a single HD Audio controller.
+config AZALIA_LOCK_DOWN_R_WO_GCAP
+ def_bool n
+ depends on AZALIA_PLUGIN_SUPPORT
+ help
+ The GCAP register is implemented as R/WO (Read / Write Once) on some
+ HD Audio controllers, such as Intel 6-series PCHs. Select this option
+ to lock down the GCAP register after deasserting the controller reset
+ bit. Locking is done by reading GCAP and writing back the read value.
+
config PCIEXP_PLUGIN_SUPPORT
bool
default y