1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * soc-apci-intel-jsl-match.c - tables and support for JSL ACPI enumeration. 4 * 5 * Copyright (c) 2019-2020, Intel Corporation. 6 * 7 */ 8 9 #include <sound/soc-acpi.h> 10 #include <sound/soc-acpi-intel-match.h> 11 12 static const struct snd_soc_acpi_codecs essx_83x6 = { 13 .num_codecs = 3, 14 .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, 15 }; 16 17 static const struct snd_soc_acpi_codecs mx98373_spk = { 18 .num_codecs = 1, 19 .codecs = {"MX98373"} 20 }; 21 22 static const struct snd_soc_acpi_codecs rt1015_spk = { 23 .num_codecs = 1, 24 .codecs = {"10EC1015"} 25 }; 26 27 static const struct snd_soc_acpi_codecs rt1015p_spk = { 28 .num_codecs = 1, 29 .codecs = {"RTL1015"} 30 }; 31 32 static const struct snd_soc_acpi_codecs mx98360a_spk = { 33 .num_codecs = 1, 34 .codecs = {"MX98360A"} 35 }; 36 37 static struct snd_soc_acpi_codecs rt5650_spk = { 38 .num_codecs = 1, 39 .codecs = {"10EC5650"} 40 }; 41 42 static const struct snd_soc_acpi_codecs rt5682_rt5682s_hp = { 43 .num_codecs = 2, 44 .codecs = {"10EC5682", "RTL5682"}, 45 }; 46 47 /* 48 * When adding new entry to the snd_soc_acpi_intel_jsl_machines array, 49 * use .quirk_data member to distinguish different machine driver, 50 * and keep ACPI .id field unchanged for the common codec. 51 */ 52 struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = { 53 { 54 .id = "DLGS7219", 55 .drv_name = "jsl_mx98373_da7219", 56 .machine_quirk = snd_soc_acpi_codec_list, 57 .quirk_data = &mx98373_spk, 58 .sof_tplg_filename = "sof-jsl-da7219.tplg", 59 }, 60 { 61 .id = "DLGS7219", 62 .drv_name = "jsl_mx98360_da7219", 63 .machine_quirk = snd_soc_acpi_codec_list, 64 .quirk_data = &mx98360a_spk, 65 .sof_tplg_filename = "sof-jsl-da7219-mx98360a.tplg", 66 }, 67 { 68 .comp_ids = &rt5682_rt5682s_hp, 69 .drv_name = "jsl_rt5682_def", 70 .machine_quirk = snd_soc_acpi_codec_list, 71 .quirk_data = &rt1015_spk, 72 .sof_tplg_filename = "sof-jsl-rt5682-rt1015.tplg", 73 }, 74 { 75 .comp_ids = &rt5682_rt5682s_hp, 76 .drv_name = "jsl_rt5682_def", 77 .machine_quirk = snd_soc_acpi_codec_list, 78 .quirk_data = &rt1015p_spk, 79 .sof_tplg_filename = "sof-jsl-rt5682-rt1015.tplg", 80 }, 81 { 82 .comp_ids = &rt5682_rt5682s_hp, 83 .drv_name = "jsl_rt5682_def", 84 .machine_quirk = snd_soc_acpi_codec_list, 85 .quirk_data = &mx98360a_spk, 86 .sof_tplg_filename = "sof-jsl-rt5682-mx98360a.tplg", 87 }, 88 { 89 .comp_ids = &rt5682_rt5682s_hp, 90 .drv_name = "jsl_rt5682_def", 91 .sof_tplg_filename = "sof-jsl-rt5682.tplg", 92 }, 93 { 94 .id = "10134242", 95 .drv_name = "jsl_cs4242_mx98360a", 96 .machine_quirk = snd_soc_acpi_codec_list, 97 .quirk_data = &mx98360a_spk, 98 .sof_tplg_filename = "sof-jsl-cs42l42-mx98360a.tplg", 99 }, 100 { 101 .comp_ids = &essx_83x6, 102 .drv_name = "sof-essx8336", 103 .sof_tplg_filename = "sof-jsl-es8336", /* the tplg suffix is added at run time */ 104 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | 105 SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | 106 SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, 107 }, 108 { 109 .id = "10EC5650", 110 .drv_name = "jsl_rt5682_def", 111 .machine_quirk = snd_soc_acpi_codec_list, 112 .quirk_data = &rt5650_spk, 113 .sof_tplg_filename = "sof-jsl-rt5650.tplg", 114 }, 115 {}, 116 }; 117 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_jsl_machines); 118