brintos

brintos / linux-shallow public Read only

0
0
Text · 17.0 KiB · bb1324f Raw
755 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/*3 * soc-apci-intel-adl-match.c - tables and support for ADL ACPI enumeration.4 *5 * Copyright (c) 2020, Intel Corporation.6 */7 8#include <sound/soc-acpi.h>9#include <sound/soc-acpi-intel-match.h>10#include <sound/soc-acpi-intel-ssp-common.h>11 12static const struct snd_soc_acpi_codecs essx_83x6 = {13	.num_codecs = 3,14	.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},15};16 17static const struct snd_soc_acpi_endpoint single_endpoint = {18	.num = 0,19	.aggregated = 0,20	.group_position = 0,21	.group_id = 0,22};23 24static const struct snd_soc_acpi_endpoint spk_l_endpoint = {25	.num = 0,26	.aggregated = 1,27	.group_position = 0,28	.group_id = 1,29};30 31static const struct snd_soc_acpi_endpoint spk_r_endpoint = {32	.num = 0,33	.aggregated = 1,34	.group_position = 1,35	.group_id = 1,36};37 38static const struct snd_soc_acpi_endpoint spk_2_endpoint = {39	.num = 0,40	.aggregated = 1,41	.group_position = 2,42	.group_id = 1,43};44 45static const struct snd_soc_acpi_endpoint spk_3_endpoint = {46	.num = 0,47	.aggregated = 1,48	.group_position = 3,49	.group_id = 1,50};51 52static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = {53	{54		.adr = 0x00023201FA355601ull,55		.num_endpoints = 1,56		.endpoints = &spk_r_endpoint,57		.name_prefix = "AMP3"58	},59	{60		.adr = 0x00023301FA355601ull,61		.num_endpoints = 1,62		.endpoints = &spk_3_endpoint,63		.name_prefix = "AMP4"64	}65};66 67static const struct snd_soc_acpi_adr_device cs35l56_3_l_adr[] = {68	{69		.adr = 0x00033001fa355601ull,70		.num_endpoints = 1,71		.endpoints = &spk_l_endpoint,72		.name_prefix = "AMP1"73	},74	{75		.adr = 0x00033101fa355601ull,76		.num_endpoints = 1,77		.endpoints = &spk_2_endpoint,78		.name_prefix = "AMP2"79	}80};81 82static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {83	{ /* Jack Playback Endpoint */84		.num = 0,85		.aggregated = 0,86		.group_position = 0,87		.group_id = 0,88	},89	{ /* DMIC Capture Endpoint */90		.num = 1,91		.aggregated = 0,92		.group_position = 0,93		.group_id = 0,94	},95	{ /* Jack Capture Endpoint */96		.num = 2,97		.aggregated = 0,98		.group_position = 0,99		.group_id = 0,100	},101	{ /* Speaker Playback Endpoint */102		.num = 3,103		.aggregated = 0,104		.group_position = 0,105		.group_id = 0,106	},107};108 109static const struct snd_soc_acpi_adr_device cs42l43_0_adr[] = {110	{111		.adr = 0x00003001FA424301ull,112		.num_endpoints = ARRAY_SIZE(cs42l43_endpoints),113		.endpoints = cs42l43_endpoints,114		.name_prefix = "cs42l43"115	}116};117 118static const struct snd_soc_acpi_adr_device rt711_0_adr[] = {119	{120		.adr = 0x000020025D071100ull,121		.num_endpoints = 1,122		.endpoints = &single_endpoint,123		.name_prefix = "rt711"124	}125};126 127static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr[] = {128	{129		.adr = 0x000120025D130800ull,130		.num_endpoints = 1,131		.endpoints = &spk_l_endpoint,132		.name_prefix = "rt1308-1"133	}134};135 136static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr[] = {137	{138		.adr = 0x000220025D130800ull,139		.num_endpoints = 1,140		.endpoints = &spk_r_endpoint,141		.name_prefix = "rt1308-2"142	}143};144 145static const struct snd_soc_acpi_adr_device rt715_3_adr[] = {146	{147		.adr = 0x000320025D071500ull,148		.num_endpoints = 1,149		.endpoints = &single_endpoint,150		.name_prefix = "rt715"151	}152};153 154static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {155	{156		.adr = 0x000030025D071101ull,157		.num_endpoints = 1,158		.endpoints = &single_endpoint,159		.name_prefix = "rt711"160	}161};162 163static const struct snd_soc_acpi_adr_device rt711_sdca_2_adr[] = {164	{165		.adr = 0x000230025D071101ull,166		.num_endpoints = 1,167		.endpoints = &single_endpoint,168		.name_prefix = "rt711"169	}170};171 172static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = {173	{174		.adr = 0x000131025D131601ull, /* unique ID is set for some reason */175		.num_endpoints = 1,176		.endpoints = &spk_l_endpoint,177		.name_prefix = "rt1316-1"178	}179};180 181static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {182	{183		.adr = 0x000230025D131601ull,184		.num_endpoints = 1,185		.endpoints = &spk_r_endpoint,186		.name_prefix = "rt1316-2"187	}188};189 190static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = {191	{192		.adr = 0x000330025D131601ull,193		.num_endpoints = 1,194		.endpoints = &spk_r_endpoint,195		.name_prefix = "rt1316-2"196	}197};198 199static const struct snd_soc_acpi_adr_device rt1316_0_group2_adr[] = {200	{201		.adr = 0x000031025D131601ull,202		.num_endpoints = 1,203		.endpoints = &spk_l_endpoint,204		.name_prefix = "rt1316-1"205	}206};207 208static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = {209	{210		.adr = 0x000130025D131601ull,211		.num_endpoints = 1,212		.endpoints = &spk_r_endpoint,213		.name_prefix = "rt1316-2"214	}215};216 217static const struct snd_soc_acpi_adr_device rt1316_1_single_adr[] = {218	{219		.adr = 0x000130025D131601ull,220		.num_endpoints = 1,221		.endpoints = &single_endpoint,222		.name_prefix = "rt1316-1"223	}224};225 226static const struct snd_soc_acpi_adr_device rt1316_2_single_adr[] = {227	{228		.adr = 0x000230025D131601ull,229		.num_endpoints = 1,230		.endpoints = &single_endpoint,231		.name_prefix = "rt1316-1"232	}233};234 235static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = {236	{237		.adr = 0x000330025D131601ull,238		.num_endpoints = 1,239		.endpoints = &single_endpoint,240		.name_prefix = "rt1316-1"241	}242};243 244static const struct snd_soc_acpi_adr_device rt714_0_adr[] = {245	{246		.adr = 0x000030025D071401ull,247		.num_endpoints = 1,248		.endpoints = &single_endpoint,249		.name_prefix = "rt714"250	}251};252 253static const struct snd_soc_acpi_adr_device rt714_2_adr[] = {254	{255		.adr = 0x000230025D071401ull,256		.num_endpoints = 1,257		.endpoints = &single_endpoint,258		.name_prefix = "rt714"259	}260};261 262static const struct snd_soc_acpi_adr_device rt714_3_adr[] = {263	{264		.adr = 0x000330025D071401ull,265		.num_endpoints = 1,266		.endpoints = &single_endpoint,267		.name_prefix = "rt714"268	}269};270 271static const struct snd_soc_acpi_link_adr adl_default[] = {272	{273		.mask = BIT(0),274		.num_adr = ARRAY_SIZE(rt711_0_adr),275		.adr_d = rt711_0_adr,276	},277	{278		.mask = BIT(1),279		.num_adr = ARRAY_SIZE(rt1308_1_group1_adr),280		.adr_d = rt1308_1_group1_adr,281	},282	{283		.mask = BIT(2),284		.num_adr = ARRAY_SIZE(rt1308_2_group1_adr),285		.adr_d = rt1308_2_group1_adr,286	},287	{288		.mask = BIT(3),289		.num_adr = ARRAY_SIZE(rt715_3_adr),290		.adr_d = rt715_3_adr,291	},292	{}293};294 295static const struct snd_soc_acpi_link_adr adl_sdca_default[] = {296	{297		.mask = BIT(0),298		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),299		.adr_d = rt711_sdca_0_adr,300	},301	{302		.mask = BIT(1),303		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),304		.adr_d = rt1316_1_group1_adr,305	},306	{307		.mask = BIT(2),308		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),309		.adr_d = rt1316_2_group1_adr,310	},311	{312		.mask = BIT(3),313		.num_adr = ARRAY_SIZE(rt714_3_adr),314		.adr_d = rt714_3_adr,315	},316	{}317};318 319static const struct snd_soc_acpi_link_adr adl_sdca_3_in_1[] = {320	{321		.mask = BIT(0),322		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),323		.adr_d = rt711_sdca_0_adr,324	},325	{326		.mask = BIT(1),327		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),328		.adr_d = rt1316_1_group1_adr,329	},330	{331		.mask = BIT(2),332		.num_adr = ARRAY_SIZE(rt714_2_adr),333		.adr_d = rt714_2_adr,334	},335	{336		.mask = BIT(3),337		.num_adr = ARRAY_SIZE(rt1316_3_group1_adr),338		.adr_d = rt1316_3_group1_adr,339	},340	{}341};342 343static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01_rt714_link3[] = {344	{345		.mask = BIT(2),346		.num_adr = ARRAY_SIZE(rt711_sdca_2_adr),347		.adr_d = rt711_sdca_2_adr,348	},349	{350		.mask = BIT(0),351		.num_adr = ARRAY_SIZE(rt1316_0_group2_adr),352		.adr_d = rt1316_0_group2_adr,353	},354	{355		.mask = BIT(1),356		.num_adr = ARRAY_SIZE(rt1316_1_group2_adr),357		.adr_d = rt1316_1_group2_adr,358	},359	{360		.mask = BIT(3),361		.num_adr = ARRAY_SIZE(rt714_3_adr),362		.adr_d = rt714_3_adr,363	},364	{}365};366 367static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01[] = {368	{369		.mask = BIT(2),370		.num_adr = ARRAY_SIZE(rt711_sdca_2_adr),371		.adr_d = rt711_sdca_2_adr,372	},373	{374		.mask = BIT(0),375		.num_adr = ARRAY_SIZE(rt1316_0_group2_adr),376		.adr_d = rt1316_0_group2_adr,377	},378	{379		.mask = BIT(1),380		.num_adr = ARRAY_SIZE(rt1316_1_group2_adr),381		.adr_d = rt1316_1_group2_adr,382	},383	{}384};385 386static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link12_rt714_link0[] = {387	{388		.mask = BIT(1),389		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),390		.adr_d = rt1316_1_group1_adr,391	},392	{393		.mask = BIT(2),394		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),395		.adr_d = rt1316_2_group1_adr,396	},397	{398		.mask = BIT(0),399		.num_adr = ARRAY_SIZE(rt714_0_adr),400		.adr_d = rt714_0_adr,401	},402	{}403};404 405static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link1_rt714_link0[] = {406	{407		.mask = BIT(1),408		.num_adr = ARRAY_SIZE(rt1316_1_single_adr),409		.adr_d = rt1316_1_single_adr,410	},411	{412		.mask = BIT(0),413		.num_adr = ARRAY_SIZE(rt714_0_adr),414		.adr_d = rt714_0_adr,415	},416	{}417};418 419static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link3[] = {420	{421		.mask = BIT(2),422		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),423		.adr_d = rt1316_2_single_adr,424	},425	{426		.mask = BIT(3),427		.num_adr = ARRAY_SIZE(rt714_3_adr),428		.adr_d = rt714_3_adr,429	},430	{}431};432 433static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link0[] = {434	{435		.mask = BIT(2),436		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),437		.adr_d = rt1316_2_single_adr,438	},439	{440		.mask = BIT(0),441		.num_adr = ARRAY_SIZE(rt714_0_adr),442		.adr_d = rt714_0_adr,443	},444	{}445};446 447static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link3[] = {448	{449		.mask = BIT(0),450		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),451		.adr_d = rt711_sdca_0_adr,452	},453	{454		.mask = BIT(3),455		.num_adr = ARRAY_SIZE(rt1316_3_single_adr),456		.adr_d = rt1316_3_single_adr,457	},458	{}459};460 461static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link2[] = {462	{463		.mask = BIT(0),464		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),465		.adr_d = rt711_sdca_0_adr,466	},467	{468		.mask = BIT(2),469		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),470		.adr_d = rt1316_2_single_adr,471	},472	{}473};474 475static const struct snd_soc_acpi_adr_device mx8373_2_adr[] = {476	{477		.adr = 0x000223019F837300ull,478		.num_endpoints = 1,479		.endpoints = &spk_l_endpoint,480		.name_prefix = "Left"481	},482	{483		.adr = 0x000227019F837300ull,484		.num_endpoints = 1,485		.endpoints = &spk_r_endpoint,486		.name_prefix = "Right"487	}488};489 490static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = {491	{492		.adr = 0x000021025D568200ull,493		.num_endpoints = 1,494		.endpoints = &single_endpoint,495		.name_prefix = "rt5682"496	}497};498 499static const struct snd_soc_acpi_link_adr adl_cs42l43_l0_cs35l56_l23[] = {500	{501		.mask = BIT(0),502		.num_adr = ARRAY_SIZE(cs42l43_0_adr),503		.adr_d = cs42l43_0_adr,504	},505	{506		.mask = BIT(2),507		.num_adr = ARRAY_SIZE(cs35l56_2_r_adr),508		.adr_d = cs35l56_2_r_adr,509	},510	{511		.mask = BIT(3),512		.num_adr = ARRAY_SIZE(cs35l56_3_l_adr),513		.adr_d = cs35l56_3_l_adr,514	},515	{}516};517 518static const struct snd_soc_acpi_link_adr adl_rvp[] = {519	{520		.mask = BIT(0),521		.num_adr = ARRAY_SIZE(rt711_0_adr),522		.adr_d = rt711_0_adr,523	},524	{}525};526 527static const struct snd_soc_acpi_link_adr adlps_rvp[] = {528	{529		.mask = BIT(0),530		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),531		.adr_d = rt711_sdca_0_adr,532	},533	{}534};535 536static const struct snd_soc_acpi_link_adr adl_chromebook_base[] = {537	{538		.mask = BIT(0),539		.num_adr = ARRAY_SIZE(rt5682_0_adr),540		.adr_d = rt5682_0_adr,541	},542	{543		.mask = BIT(2),544		.num_adr = ARRAY_SIZE(mx8373_2_adr),545		.adr_d = mx8373_2_adr,546	},547	{}548};549 550static const struct snd_soc_acpi_codecs adl_max98357a_amp = {551	.num_codecs = 1,552	.codecs = {"MX98357A"}553};554 555static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = {556	.num_codecs = 2,557	.codecs = {RT5682_ACPI_HID, RT5682S_ACPI_HID},558};559 560static const struct snd_soc_acpi_codecs adl_rt1019p_amp = {561	.num_codecs = 1,562	.codecs = {"RTL1019"}563};564 565static const struct snd_soc_acpi_codecs adl_lt6911_hdmi = {566	.num_codecs = 1,567	.codecs = {"INTC10B0"}568};569 570struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {571	{572		.comp_ids = &adl_rt5682_rt5682s_hp,573		.drv_name = "adl_mx98357_rt5682",574		.machine_quirk = snd_soc_acpi_codec_list,575		.quirk_data = &adl_max98357a_amp,576		.sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg",577	},578	{579		.id = "10508825",580		.drv_name = "adl_rt1019p_8825",581		.machine_quirk = snd_soc_acpi_codec_list,582		.quirk_data = &adl_rt1019p_amp,583		.sof_tplg_filename = "sof-adl-rt1019-nau8825.tplg",584	},585	{586		.comp_ids = &adl_rt5682_rt5682s_hp,587		.drv_name = "adl_rt5682_c1_h02",588		.machine_quirk = snd_soc_acpi_codec_list,589		.quirk_data = &adl_lt6911_hdmi,590		.sof_tplg_filename = "sof-adl-rt5682-ssp1-hdmi-ssp02.tplg",591	},592	{593		.comp_ids = &essx_83x6,594		.drv_name = "adl_es83x6_c1_h02",595		.machine_quirk = snd_soc_acpi_codec_list,596		.quirk_data = &adl_lt6911_hdmi,597		.sof_tplg_filename = "sof-adl-es83x6-ssp1-hdmi-ssp02.tplg",598	},599	{600		.comp_ids = &essx_83x6,601		.drv_name = "sof-essx8336",602		.sof_tplg_filename = "sof-adl-es8336", /* the tplg suffix is added at run time */603		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |604					SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |605					SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,606	},607	/* place boards for each headphone codec: sof driver will complete the608	 * tplg name and machine driver will detect the amp type609	 */610	{611		.id = CS42L42_ACPI_HID,612		.drv_name = "adl_cs42l42_def",613		.sof_tplg_filename = "sof-adl", /* the tplg suffix is added at run time */614		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |615					SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,616	},617	{618		.id = DA7219_ACPI_HID,619		.drv_name = "adl_da7219_def",620		.sof_tplg_filename = "sof-adl", /* the tplg suffix is added at run time */621		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |622					SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,623	},624	{625		.id = NAU8825_ACPI_HID,626		.drv_name = "adl_nau8825_def",627		.sof_tplg_filename = "sof-adl", /* the tplg suffix is added at run time */628		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |629					SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,630	},631	{632		.id = RT5650_ACPI_HID,633		.drv_name = "adl_rt5682_def",634		.sof_tplg_filename = "sof-adl", /* the tplg suffix is added at run time */635		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |636					SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,637	},638	{639		.comp_ids = &adl_rt5682_rt5682s_hp,640		.drv_name = "adl_rt5682_def",641		.sof_tplg_filename = "sof-adl", /* the tplg suffix is added at run time */642		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |643					SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,644	},645	/* place amp-only boards in the end of table */646	{647		.id = "CSC3541",648		.drv_name = "adl_cs35l41",649		.sof_tplg_filename = "sof-adl-cs35l41.tplg",650	},651	{652		.id = "INTC10B0",653		.drv_name = "adl_lt6911_hdmi_ssp",654		.sof_tplg_filename = "sof-adl-nocodec-hdmi-ssp02.tplg"655	},656	{},657};658EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);659 660/* this table is used when there is no I2S codec present */661struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[] = {662	{663		.link_mask = BIT(0) | BIT(2) | BIT(3),664		.links = adl_cs42l43_l0_cs35l56_l23,665		.drv_name = "sof_sdw",666		.sof_tplg_filename = "sof-adl-cs42l43-l0-cs35l56-l23.tplg",667	},668	{669		.link_mask = 0xF, /* 4 active links required */670		.links = adl_default,671		.drv_name = "sof_sdw",672		.sof_tplg_filename = "sof-adl-rt711-l0-rt1308-l12-rt715-l3.tplg",673	},674	{675		.link_mask = 0xF, /* 4 active links required */676		.links = adl_sdca_default,677		.drv_name = "sof_sdw",678		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg",679	},680	{681		.link_mask = 0xF, /* 4 active links required */682		.links = adl_sdca_3_in_1,683		.drv_name = "sof_sdw",684		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l13-rt714-l2.tplg",685	},686	{687		.link_mask = 0xF, /* 4 active links required */688		.links = adl_sdw_rt711_link2_rt1316_link01_rt714_link3,689		.drv_name = "sof_sdw",690		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01-rt714-l3.tplg",691	},692	{693		.link_mask = 0x7, /* rt1316 on link0 and link1 & rt711 on link2*/694		.links = adl_sdw_rt711_link2_rt1316_link01,695		.drv_name = "sof_sdw",696		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01.tplg",697	},698	{699		.link_mask = 0xC, /* rt1316 on link2 & rt714 on link3 */700		.links = adl_sdw_rt1316_link2_rt714_link3,701		.drv_name = "sof_sdw",702		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l3.tplg",703	},704	{705		.link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */706		.links = adl_sdw_rt1316_link12_rt714_link0,707		.drv_name = "sof_sdw",708		.sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg",709	},710	{711		.link_mask = 0x3, /* rt1316 on link1 & rt714 on link0 */712		.links = adl_sdw_rt1316_link1_rt714_link0,713		.drv_name = "sof_sdw",714		.sof_tplg_filename = "sof-adl-rt1316-l1-mono-rt714-l0.tplg",715	},716	{717		.link_mask = 0x5, /* 2 active links required */718		.links = adl_sdw_rt1316_link2_rt714_link0,719		.drv_name = "sof_sdw",720		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l0.tplg",721	},722	{723		.link_mask = 0x9, /* 2 active links required */724		.links = adl_sdw_rt711_link0_rt1316_link3,725		.drv_name = "sof_sdw",726		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l3.tplg",727	},728	{729		.link_mask = 0x5, /* 2 active links required */730		.links = adl_sdw_rt711_link0_rt1316_link2,731		.drv_name = "sof_sdw",732		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l2.tplg",733	},734	{735		.link_mask = 0x1, /* link0 required */736		.links = adl_rvp,737		.drv_name = "sof_sdw",738		.sof_tplg_filename = "sof-adl-rt711.tplg",739	},740	{741		.link_mask = 0x1, /* link0 required */742		.links = adlps_rvp,743		.drv_name = "sof_sdw",744		.sof_tplg_filename = "sof-adl-rt711.tplg",745	},746	{747		.link_mask = 0x5, /* rt5682 on link0 & 2xmax98373 on link 2 */748		.links = adl_chromebook_base,749		.drv_name = "sof_sdw",750		.sof_tplg_filename = "sof-adl-sdw-max98373-rt5682.tplg",751	},752	{},753};754EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines);755