xref: /linux/sound/soc/intel/common/soc-acpi-intel-cnl-match.c (revision 24168c5e6dfbdd5b414f048f47f75d64533296ca)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * soc-acpi-intel-cnl-match.c - tables and support for CNL ACPI enumeration.
4  *
5  * Copyright (c) 2018, Intel Corporation.
6  *
7  */
8 
9 #include <sound/soc-acpi.h>
10 #include <sound/soc-acpi-intel-match.h>
11 #include "../skylake/skl.h"
12 #include "soc-acpi-intel-sdw-mockup-match.h"
13 
14 static const struct snd_soc_acpi_codecs essx_83x6 = {
15 	.num_codecs = 3,
16 	.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},
17 };
18 
19 static struct skl_machine_pdata cnl_pdata = {
20 	.use_tplg_pcm = true,
21 };
22 
23 struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = {
24 	{
25 		.id = "INT34C2",
26 		.drv_name = "cnl_rt274",
27 		.fw_filename = "intel/dsp_fw_cnl.bin",
28 		.pdata = &cnl_pdata,
29 		.sof_tplg_filename = "sof-cnl-rt274.tplg",
30 	},
31 	{
32 		.comp_ids = &essx_83x6,
33 		.drv_name = "sof-essx8336",
34 		/* cnl and cml are identical */
35 		.sof_tplg_filename = "sof-cml-es8336", /* the tplg suffix is added at run time */
36 		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |
37 					SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
38 					SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
39 	},
40 	{},
41 };
42 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cnl_machines);
43 
44 static const struct snd_soc_acpi_endpoint single_endpoint = {
45 	.num = 0,
46 	.aggregated = 0,
47 	.group_position = 0,
48 	.group_id = 0,
49 };
50 
51 static const struct snd_soc_acpi_adr_device rt5682_2_adr[] = {
52 	{
53 		.adr = 0x000220025D568200ull,
54 		.num_endpoints = 1,
55 		.endpoints = &single_endpoint,
56 		.name_prefix = "rt5682"
57 	}
58 };
59 
60 static const struct snd_soc_acpi_link_adr up_extreme_rt5682_2[] = {
61 	{
62 		.mask = BIT(2),
63 		.num_adr = ARRAY_SIZE(rt5682_2_adr),
64 		.adr_d = rt5682_2_adr,
65 	},
66 	{}
67 };
68 
69 struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_sdw_machines[] = {
70 	{
71 		.link_mask = BIT(2),
72 		.links = up_extreme_rt5682_2,
73 		.drv_name = "sof_sdw",
74 		.sof_tplg_filename = "sof-cnl-rt5682-sdw2.tplg"
75 	},
76 	{
77 		.link_mask = GENMASK(3, 0),
78 		.links = sdw_mockup_headset_2amps_mic,
79 		.drv_name = "sof_sdw",
80 		.sof_tplg_filename = "sof-cml-rt711-rt1308-rt715.tplg",
81 	},
82 	{
83 		.link_mask = BIT(0) | BIT(1) | BIT(3),
84 		.links = sdw_mockup_headset_1amp_mic,
85 		.drv_name = "sof_sdw",
86 		.sof_tplg_filename = "sof-cml-rt711-rt1308-mono-rt715.tplg",
87 	},
88 	{}
89 };
90 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cnl_sdw_machines);
91