summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/tigerlake/chip.h24
-rw-r--r--src/soc/intel/tigerlake/romstage/fsp_params_tgl.c13
2 files changed, 24 insertions, 13 deletions
diff --git a/src/soc/intel/tigerlake/chip.h b/src/soc/intel/tigerlake/chip.h
index 4f57b0e07a..75a399fc27 100644
--- a/src/soc/intel/tigerlake/chip.h
+++ b/src/soc/intel/tigerlake/chip.h
@@ -30,6 +30,10 @@
#include <soc/serialio.h>
#include <soc/usb.h>
+#define MAX_HD_AUDIO_DMIC_LINKS 2
+#define MAX_HD_AUDIO_SNDW_LINKS 4
+#define MAX_HD_AUDIO_SSP_LINKS 6
+
struct soc_intel_tigerlake_config {
/* Common struct containing soc config data required by common code */
@@ -99,20 +103,14 @@ struct soc_intel_tigerlake_config {
uint8_t SataPortsDevSlp[8];
/* Audio related */
- uint8_t PchHdaEnable;
uint8_t PchHdaDspEnable;
-
- /* Enable/Disable HD Audio Link. Muxed with SSP0/SSP1/SNDW1 */
- uint8_t PchHdaAudioLinkHda;
- uint8_t PchHdaAudioLinkDmic0;
- uint8_t PchHdaAudioLinkDmic1;
- uint8_t PchHdaAudioLinkSsp0;
- uint8_t PchHdaAudioLinkSsp1;
- uint8_t PchHdaAudioLinkSsp2;
- uint8_t PchHdaAudioLinkSndw1;
- uint8_t PchHdaAudioLinkSndw2;
- uint8_t PchHdaAudioLinkSndw3;
- uint8_t PchHdaAudioLinkSndw4;
+ uint8_t PchHdaAudioLinkHdaEnable;
+ uint8_t PchHdaAudioLinkDmicEnable[MAX_HD_AUDIO_DMIC_LINKS];
+ uint8_t PchHdaAudioLinkSspEnable[MAX_HD_AUDIO_SSP_LINKS];
+ uint8_t PchHdaAudioLinkSndwEnable[MAX_HD_AUDIO_SNDW_LINKS];
+ uint8_t PchHdaIDispLinkTmode;
+ uint8_t PchHdaIDispLinkFrequency;
+ uint8_t PchHdaIDispCodecDisconnect;
/* PCIe Root Ports */
uint8_t PcieRpEnable[CONFIG_MAX_ROOT_PORTS];
diff --git a/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c b/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c
index fc3155f8ad..8b32bc056b 100644
--- a/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c
+++ b/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c
@@ -119,6 +119,19 @@ static void soc_memory_init_params(FSP_M_CONFIG *m_cfg,
m_cfg->SmbusEnable = config->SmbusEnable;
/* Set debug probe type */
m_cfg->PlatformDebugConsent = config->DebugConsent;
+
+ /* Audio: HDAUDIO_LINK_MODE I2S/SNDW */
+ m_cfg->PchHdaDspEnable = config->PchHdaDspEnable;
+ m_cfg->PchHdaAudioLinkHdaEnable = config->PchHdaAudioLinkHdaEnable;
+ memcpy(m_cfg->PchHdaAudioLinkDmicEnable, config->PchHdaAudioLinkDmicEnable,
+ sizeof(m_cfg->PchHdaAudioLinkDmicEnable));
+ memcpy(m_cfg->PchHdaAudioLinkSspEnable, config->PchHdaAudioLinkSspEnable,
+ sizeof(m_cfg->PchHdaAudioLinkSspEnable));
+ memcpy(m_cfg->PchHdaAudioLinkSndwEnable, config->PchHdaAudioLinkSndwEnable,
+ sizeof(m_cfg->PchHdaAudioLinkSndwEnable));
+ m_cfg->PchHdaIDispLinkTmode = config->PchHdaIDispLinkTmode;
+ m_cfg->PchHdaIDispLinkFrequency = config->PchHdaIDispLinkFrequency;
+ m_cfg->PchHdaIDispCodecDisconnect = config->PchHdaIDispCodecDisconnect;
}
void platform_fsp_memory_init_params_cb(FSPM_UPD *mupd, uint32_t version)