aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorPan Xiuli <xiuli.pan@linux.intel.com>2019-08-15 11:57:47 -0400
committerMark Brown <broonie@kernel.org>2019-08-15 13:13:00 -0400
commit1205c81edd5ef220ca32318572e499b4b180b1f3 (patch)
treeda50b9454b314903f772d5c1eb7639fd872fce18 /sound
parent5f7af9ecebce7fab78b0237b0cd998f2ed3de03c (diff)
ASoC: SOF: Intel: initial support for Tiger Lake.
Add Kconfig, PCI ID and chip info for Tiger Lake platform. Note that the core mask is different from previous platforms, only Core0 can be controlled by the host. Additional patches will be required for multi-core functionality. Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20190815155749.29304-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/sof/intel/Kconfig16
-rw-r--r--sound/soc/sof/intel/cnl.c16
-rw-r--r--sound/soc/sof/intel/hda.h1
-rw-r--r--sound/soc/sof/sof-pci-dev.c22
4 files changed, 55 insertions, 0 deletions
diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
index 545071afbe18..0dc5da661b61 100644
--- a/sound/soc/sof/intel/Kconfig
+++ b/sound/soc/sof/intel/Kconfig
@@ -27,6 +27,7 @@ config SND_SOC_SOF_INTEL_PCI
27 select SND_SOC_SOF_ICELAKE if SND_SOC_SOF_ICELAKE_SUPPORT 27 select SND_SOC_SOF_ICELAKE if SND_SOC_SOF_ICELAKE_SUPPORT
28 select SND_SOC_SOF_COMETLAKE_LP if SND_SOC_SOF_COMETLAKE_LP_SUPPORT 28 select SND_SOC_SOF_COMETLAKE_LP if SND_SOC_SOF_COMETLAKE_LP_SUPPORT
29 select SND_SOC_SOF_COMETLAKE_H if SND_SOC_SOF_COMETLAKE_H_SUPPORT 29 select SND_SOC_SOF_COMETLAKE_H if SND_SOC_SOF_COMETLAKE_H_SUPPORT
30 select SND_SOC_SOF_TIGERLAKE if SND_SOC_SOF_TIGERLAKE_SUPPORT
30 help 31 help
31 This option is not user-selectable but automagically handled by 32 This option is not user-selectable but automagically handled by
32 'select' statements at a higher level 33 'select' statements at a higher level
@@ -212,6 +213,21 @@ config SND_SOC_SOF_COMETLAKE_H_SUPPORT
212 Say Y if you have such a device. 213 Say Y if you have such a device.
213 If unsure select "N". 214 If unsure select "N".
214 215
216config SND_SOC_SOF_TIGERLAKE_SUPPORT
217 bool "SOF support for Tigerlake"
218 help
219 This adds support for Sound Open Firmware for Intel(R) platforms
220 using the Tigerlake processors.
221 Say Y if you have such a device.
222 If unsure select "N".
223
224config SND_SOC_SOF_TIGERLAKE
225 tristate
226 select SND_SOC_SOF_HDA_COMMON
227 help
228 This option is not user-selectable but automagically handled by
229 'select' statements at a higher level
230
215config SND_SOC_SOF_HDA_COMMON 231config SND_SOC_SOF_HDA_COMMON
216 tristate 232 tristate
217 select SND_SOC_SOF_INTEL_COMMON 233 select SND_SOC_SOF_INTEL_COMMON
diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
index 6d7d9c93252c..5de281fcc122 100644
--- a/sound/soc/sof/intel/cnl.c
+++ b/sound/soc/sof/intel/cnl.c
@@ -295,3 +295,19 @@ const struct sof_intel_dsp_desc icl_chip_info = {
295 .ssp_base_offset = CNL_SSP_BASE_OFFSET, 295 .ssp_base_offset = CNL_SSP_BASE_OFFSET,
296}; 296};
297EXPORT_SYMBOL(icl_chip_info); 297EXPORT_SYMBOL(icl_chip_info);
298
299const struct sof_intel_dsp_desc tgl_chip_info = {
300 /* Tigerlake */
301 .cores_num = 4,
302 .init_core_mask = 1,
303 .cores_mask = HDA_DSP_CORE_MASK(0),
304 .ipc_req = CNL_DSP_REG_HIPCIDR,
305 .ipc_req_mask = CNL_DSP_REG_HIPCIDR_BUSY,
306 .ipc_ack = CNL_DSP_REG_HIPCIDA,
307 .ipc_ack_mask = CNL_DSP_REG_HIPCIDA_DONE,
308 .ipc_ctl = CNL_DSP_REG_HIPCCTL,
309 .rom_init_timeout = 300,
310 .ssp_count = ICL_SSP_COUNT,
311 .ssp_base_offset = CNL_SSP_BASE_OFFSET,
312};
313EXPORT_SYMBOL(tgl_chip_info);
diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
index 6db3dcbab3bd..cbb431f7835d 100644
--- a/sound/soc/sof/intel/hda.h
+++ b/sound/soc/sof/intel/hda.h
@@ -599,5 +599,6 @@ extern const struct sof_intel_dsp_desc apl_chip_info;
599extern const struct sof_intel_dsp_desc cnl_chip_info; 599extern const struct sof_intel_dsp_desc cnl_chip_info;
600extern const struct sof_intel_dsp_desc skl_chip_info; 600extern const struct sof_intel_dsp_desc skl_chip_info;
601extern const struct sof_intel_dsp_desc icl_chip_info; 601extern const struct sof_intel_dsp_desc icl_chip_info;
602extern const struct sof_intel_dsp_desc tgl_chip_info;
602 603
603#endif 604#endif
diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
index 6fd3df7c57a3..9f92504ad5b4 100644
--- a/sound/soc/sof/sof-pci-dev.c
+++ b/sound/soc/sof/sof-pci-dev.c
@@ -203,6 +203,24 @@ static const struct sof_dev_desc kbl_desc = {
203}; 203};
204#endif 204#endif
205 205
206#if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
207static const struct sof_dev_desc tgl_desc = {
208 .machines = snd_soc_acpi_intel_tgl_machines,
209 .resindex_lpe_base = 0,
210 .resindex_pcicfg_base = -1,
211 .resindex_imr_base = -1,
212 .irqindex_host_ipc = -1,
213 .resindex_dma_base = -1,
214 .chip_info = &tgl_chip_info,
215 .default_fw_path = "intel/sof",
216 .default_tplg_path = "intel/sof-tplg",
217 .nocodec_fw_filename = "sof-tgl.ri",
218 .nocodec_tplg_filename = "sof-tgl-nocodec.tplg",
219 .ops = &sof_cnl_ops,
220 .arch_ops = &sof_xtensa_arch_ops
221};
222#endif
223
206static const struct dev_pm_ops sof_pci_pm = { 224static const struct dev_pm_ops sof_pci_pm = {
207 SET_SYSTEM_SLEEP_PM_OPS(snd_sof_suspend, snd_sof_resume) 225 SET_SYSTEM_SLEEP_PM_OPS(snd_sof_suspend, snd_sof_resume)
208 SET_RUNTIME_PM_OPS(snd_sof_runtime_suspend, snd_sof_runtime_resume, 226 SET_RUNTIME_PM_OPS(snd_sof_runtime_suspend, snd_sof_runtime_resume,
@@ -385,6 +403,10 @@ static const struct pci_device_id sof_pci_ids[] = {
385 { PCI_DEVICE(0x8086, 0x06c8), 403 { PCI_DEVICE(0x8086, 0x06c8),
386 .driver_data = (unsigned long)&cml_desc}, 404 .driver_data = (unsigned long)&cml_desc},
387#endif 405#endif
406#if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
407 { PCI_DEVICE(0x8086, 0xa0c8),
408 .driver_data = (unsigned long)&tgl_desc},
409#endif
388 { 0, } 410 { 0, }
389}; 411};
390MODULE_DEVICE_TABLE(pci, sof_pci_ids); 412MODULE_DEVICE_TABLE(pci, sof_pci_ids);