1e149ca29SPierre-Louis Bossart // SPDX-License-Identifier: GPL-2.0-only 2cbaa7f0bSPierre-Louis Bossart /* 3e51b6980SChristophe JAILLET * soc-acpi-intel-cnl-match.c - tables and support for CNL ACPI enumeration. 4cbaa7f0bSPierre-Louis Bossart * 5cbaa7f0bSPierre-Louis Bossart * Copyright (c) 2018, Intel Corporation. 6cbaa7f0bSPierre-Louis Bossart * 7cbaa7f0bSPierre-Louis Bossart */ 8cbaa7f0bSPierre-Louis Bossart 9cbaa7f0bSPierre-Louis Bossart #include <sound/soc-acpi.h> 10cbaa7f0bSPierre-Louis Bossart #include <sound/soc-acpi-intel-match.h> 11cbaa7f0bSPierre-Louis Bossart #include "../skylake/skl.h" 122694cda7SPierre-Louis Bossart #include "soc-acpi-intel-sdw-mockup-match.h" 13cbaa7f0bSPierre-Louis Bossart 14*b3d6a072SNikolai Kostrigin static const struct snd_soc_acpi_codecs essx_83x6 = { 15*b3d6a072SNikolai Kostrigin .num_codecs = 3, 16*b3d6a072SNikolai Kostrigin .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, 17*b3d6a072SNikolai Kostrigin }; 18*b3d6a072SNikolai Kostrigin 19cbaa7f0bSPierre-Louis Bossart static struct skl_machine_pdata cnl_pdata = { 20cbaa7f0bSPierre-Louis Bossart .use_tplg_pcm = true, 21cbaa7f0bSPierre-Louis Bossart }; 22cbaa7f0bSPierre-Louis Bossart 23cbaa7f0bSPierre-Louis Bossart struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = { 24cbaa7f0bSPierre-Louis Bossart { 25cbaa7f0bSPierre-Louis Bossart .id = "INT34C2", 26cbaa7f0bSPierre-Louis Bossart .drv_name = "cnl_rt274", 27cbaa7f0bSPierre-Louis Bossart .fw_filename = "intel/dsp_fw_cnl.bin", 28cbaa7f0bSPierre-Louis Bossart .pdata = &cnl_pdata, 297466e749SPierre-Louis Bossart .sof_tplg_filename = "sof-cnl-rt274.tplg", 30cbaa7f0bSPierre-Louis Bossart }, 31*b3d6a072SNikolai Kostrigin { 32*b3d6a072SNikolai Kostrigin .comp_ids = &essx_83x6, 33*b3d6a072SNikolai Kostrigin .drv_name = "sof-essx8336", 34*b3d6a072SNikolai Kostrigin /* cnl and cml are identical */ 35*b3d6a072SNikolai Kostrigin .sof_tplg_filename = "sof-cml-es8336", /* the tplg suffix is added at run time */ 36*b3d6a072SNikolai Kostrigin .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | 37*b3d6a072SNikolai Kostrigin SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | 38*b3d6a072SNikolai Kostrigin SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, 39*b3d6a072SNikolai Kostrigin }, 40cbaa7f0bSPierre-Louis Bossart {}, 41cbaa7f0bSPierre-Louis Bossart }; 42cbaa7f0bSPierre-Louis Bossart EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cnl_machines); 43cbaa7f0bSPierre-Louis Bossart 446f7cf912SPierre-Louis Bossart static const struct snd_soc_acpi_endpoint single_endpoint = { 456f7cf912SPierre-Louis Bossart .num = 0, 466f7cf912SPierre-Louis Bossart .aggregated = 0, 476f7cf912SPierre-Louis Bossart .group_position = 0, 486f7cf912SPierre-Louis Bossart .group_id = 0, 496f7cf912SPierre-Louis Bossart }; 506f7cf912SPierre-Louis Bossart 516f7cf912SPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt5682_2_adr[] = { 526f7cf912SPierre-Louis Bossart { 530c52d3e2SPierre-Louis Bossart .adr = 0x000220025D568200ull, 546f7cf912SPierre-Louis Bossart .num_endpoints = 1, 556f7cf912SPierre-Louis Bossart .endpoints = &single_endpoint, 56f9380830SPierre-Louis Bossart .name_prefix = "rt5682" 576f7cf912SPierre-Louis Bossart } 586f7cf912SPierre-Louis Bossart }; 596f7cf912SPierre-Louis Bossart 606f7cf912SPierre-Louis Bossart static const struct snd_soc_acpi_link_adr up_extreme_rt5682_2[] = { 616f7cf912SPierre-Louis Bossart { 626f7cf912SPierre-Louis Bossart .mask = BIT(2), 636f7cf912SPierre-Louis Bossart .num_adr = ARRAY_SIZE(rt5682_2_adr), 646f7cf912SPierre-Louis Bossart .adr_d = rt5682_2_adr, 656f7cf912SPierre-Louis Bossart }, 666f7cf912SPierre-Louis Bossart {} 676f7cf912SPierre-Louis Bossart }; 686f7cf912SPierre-Louis Bossart 69db0b9efbSRander Wang struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_sdw_machines[] = { 706f7cf912SPierre-Louis Bossart { 716f7cf912SPierre-Louis Bossart .link_mask = BIT(2), 726f7cf912SPierre-Louis Bossart .links = up_extreme_rt5682_2, 736f7cf912SPierre-Louis Bossart .drv_name = "sof_sdw", 746f7cf912SPierre-Louis Bossart .sof_tplg_filename = "sof-cnl-rt5682-sdw2.tplg" 756f7cf912SPierre-Louis Bossart }, 762694cda7SPierre-Louis Bossart { 772694cda7SPierre-Louis Bossart .link_mask = GENMASK(3, 0), 782694cda7SPierre-Louis Bossart .links = sdw_mockup_headset_2amps_mic, 792694cda7SPierre-Louis Bossart .drv_name = "sof_sdw", 802694cda7SPierre-Louis Bossart .sof_tplg_filename = "sof-cml-rt711-rt1308-rt715.tplg", 812694cda7SPierre-Louis Bossart }, 822694cda7SPierre-Louis Bossart { 832694cda7SPierre-Louis Bossart .link_mask = BIT(0) | BIT(1) | BIT(3), 842694cda7SPierre-Louis Bossart .links = sdw_mockup_headset_1amp_mic, 852694cda7SPierre-Louis Bossart .drv_name = "sof_sdw", 862694cda7SPierre-Louis Bossart .sof_tplg_filename = "sof-cml-rt711-rt1308-mono-rt715.tplg", 872694cda7SPierre-Louis Bossart }, 886f7cf912SPierre-Louis Bossart {} 89db0b9efbSRander Wang }; 90db0b9efbSRander Wang EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cnl_sdw_machines); 91