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 | |