Path: blob/master/sound/soc/intel/common/soc-acpi-intel-tgl-match.c
26493 views
// SPDX-License-Identifier: GPL-2.0-only1/*2* soc-acpi-intel-tgl-match.c - tables and support for TGL ACPI enumeration.3*4* Copyright (c) 2019, Intel Corporation.5*6*/78#include <sound/soc-acpi.h>9#include <sound/soc-acpi-intel-match.h>10#include <sound/soc-acpi-intel-ssp-common.h>11#include "soc-acpi-intel-sdw-mockup-match.h"1213static const struct snd_soc_acpi_codecs essx_83x6 = {14.num_codecs = 3,15.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},16};1718static const struct snd_soc_acpi_endpoint single_endpoint = {19.num = 0,20.aggregated = 0,21.group_position = 0,22.group_id = 0,23};2425static const struct snd_soc_acpi_endpoint spk_l_endpoint = {26.num = 0,27.aggregated = 1,28.group_position = 0,29.group_id = 1,30};3132static const struct snd_soc_acpi_endpoint spk_r_endpoint = {33.num = 0,34.aggregated = 1,35.group_position = 1,36.group_id = 1,37};3839static const struct snd_soc_acpi_endpoint spk_2_endpoint = {40.num = 0,41.aggregated = 1,42.group_position = 2,43.group_id = 1,44};4546static const struct snd_soc_acpi_endpoint spk_3_endpoint = {47.num = 0,48.aggregated = 1,49.group_position = 3,50.group_id = 1,51};5253static const struct snd_soc_acpi_endpoint rt712_endpoints[] = {54{55.num = 0,56.aggregated = 0,57.group_position = 0,58.group_id = 0,59},60{61.num = 1,62.aggregated = 0,63.group_position = 0,64.group_id = 0,65},66};6768static const struct snd_soc_acpi_adr_device rt711_0_adr[] = {69{70.adr = 0x000020025D071100ull,71.num_endpoints = 1,72.endpoints = &single_endpoint,73.name_prefix = "rt711"74}75};7677static const struct snd_soc_acpi_adr_device rt711_1_adr[] = {78{79.adr = 0x000120025D071100ull,80.num_endpoints = 1,81.endpoints = &single_endpoint,82.name_prefix = "rt711"83}84};8586static const struct snd_soc_acpi_adr_device rt1308_1_dual_adr[] = {87{88.adr = 0x000120025D130800ull,89.num_endpoints = 1,90.endpoints = &spk_l_endpoint,91.name_prefix = "rt1308-1"92},93{94.adr = 0x000122025D130800ull,95.num_endpoints = 1,96.endpoints = &spk_r_endpoint,97.name_prefix = "rt1308-2"98}99};100101static const struct snd_soc_acpi_adr_device rt1308_1_single_adr[] = {102{103.adr = 0x000120025D130800ull,104.num_endpoints = 1,105.endpoints = &single_endpoint,106.name_prefix = "rt1308-1"107}108};109110static const struct snd_soc_acpi_adr_device rt1308_2_single_adr[] = {111{112.adr = 0x000220025D130800ull,113.num_endpoints = 1,114.endpoints = &single_endpoint,115.name_prefix = "rt1308-1"116}117};118119static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr[] = {120{121.adr = 0x000120025D130800ull,122.num_endpoints = 1,123.endpoints = &spk_l_endpoint,124.name_prefix = "rt1308-1"125}126};127128static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr[] = {129{130.adr = 0x000220025D130800ull,131.num_endpoints = 1,132.endpoints = &spk_r_endpoint,133.name_prefix = "rt1308-2"134}135};136137static const struct snd_soc_acpi_adr_device rt715_0_adr[] = {138{139.adr = 0x000021025D071500ull,140.num_endpoints = 1,141.endpoints = &single_endpoint,142.name_prefix = "rt715"143}144};145146static const struct snd_soc_acpi_adr_device rt715_3_adr[] = {147{148.adr = 0x000320025D071500ull,149.num_endpoints = 1,150.endpoints = &single_endpoint,151.name_prefix = "rt715"152}153};154155static const struct snd_soc_acpi_adr_device mx8373_1_adr[] = {156{157.adr = 0x000123019F837300ull,158.num_endpoints = 1,159.endpoints = &spk_r_endpoint,160.name_prefix = "Right"161},162{163.adr = 0x000127019F837300ull,164.num_endpoints = 1,165.endpoints = &spk_l_endpoint,166.name_prefix = "Left"167}168};169170static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = {171{172.adr = 0x000021025D568200ull,173.num_endpoints = 1,174.endpoints = &single_endpoint,175.name_prefix = "rt5682"176}177};178179static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {180{181.adr = 0x000030025D071101ull,182.num_endpoints = 1,183.endpoints = &single_endpoint,184.name_prefix = "rt711"185}186};187188static const struct snd_soc_acpi_adr_device rt1316_1_single_adr[] = {189{190.adr = 0x000131025D131601ull,191.num_endpoints = 1,192.endpoints = &single_endpoint,193.name_prefix = "rt1316-1"194}195};196197static const struct snd_soc_acpi_adr_device rt712_0_single_adr[] = {198{199.adr = 0x000030025D071201ull,200.num_endpoints = ARRAY_SIZE(rt712_endpoints),201.endpoints = rt712_endpoints,202.name_prefix = "rt712"203}204};205206static const struct snd_soc_acpi_adr_device rt1712_1_single_adr[] = {207{208.adr = 0x000130025D171201ull,209.num_endpoints = 1,210.endpoints = &single_endpoint,211.name_prefix = "rt712-dmic"212}213};214215static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = {216{217.adr = 0x000131025D131601ull, /* unique ID is set for some reason */218.num_endpoints = 1,219.endpoints = &spk_l_endpoint,220.name_prefix = "rt1316-1"221}222};223224static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {225{226.adr = 0x000230025D131601ull,227.num_endpoints = 1,228.endpoints = &spk_r_endpoint,229.name_prefix = "rt1316-2"230}231};232233static const struct snd_soc_acpi_adr_device rt714_3_adr[] = {234{235.adr = 0x000330025D071401ull,236.num_endpoints = 1,237.endpoints = &single_endpoint,238.name_prefix = "rt714"239}240};241242static const struct snd_soc_acpi_link_adr tgl_rvp[] = {243{244.mask = BIT(0),245.num_adr = ARRAY_SIZE(rt711_0_adr),246.adr_d = rt711_0_adr,247},248{249.mask = BIT(1),250.num_adr = ARRAY_SIZE(rt1308_1_dual_adr),251.adr_d = rt1308_1_dual_adr,252},253{}254};255256static const struct snd_soc_acpi_link_adr tgl_rvp_headset_only[] = {257{258.mask = BIT(0),259.num_adr = ARRAY_SIZE(rt711_0_adr),260.adr_d = rt711_0_adr,261},262{}263};264265static const struct snd_soc_acpi_link_adr tgl_hp[] = {266{267.mask = BIT(0),268.num_adr = ARRAY_SIZE(rt711_0_adr),269.adr_d = rt711_0_adr,270},271{272.mask = BIT(1),273.num_adr = ARRAY_SIZE(rt1308_1_single_adr),274.adr_d = rt1308_1_single_adr,275},276{}277};278279static const struct snd_soc_acpi_link_adr tgl_chromebook_base[] = {280{281.mask = BIT(0),282.num_adr = ARRAY_SIZE(rt5682_0_adr),283.adr_d = rt5682_0_adr,284},285{286.mask = BIT(1),287.num_adr = ARRAY_SIZE(mx8373_1_adr),288.adr_d = mx8373_1_adr,289},290{}291};292293static const struct snd_soc_acpi_link_adr tgl_3_in_1_default[] = {294{295.mask = BIT(0),296.num_adr = ARRAY_SIZE(rt711_0_adr),297.adr_d = rt711_0_adr,298},299{300.mask = BIT(1),301.num_adr = ARRAY_SIZE(rt1308_1_group1_adr),302.adr_d = rt1308_1_group1_adr,303},304{305.mask = BIT(2),306.num_adr = ARRAY_SIZE(rt1308_2_group1_adr),307.adr_d = rt1308_2_group1_adr,308},309{310.mask = BIT(3),311.num_adr = ARRAY_SIZE(rt715_3_adr),312.adr_d = rt715_3_adr,313},314{}315};316317static const struct snd_soc_acpi_link_adr tgl_3_in_1_mono_amp[] = {318{319.mask = BIT(0),320.num_adr = ARRAY_SIZE(rt711_0_adr),321.adr_d = rt711_0_adr,322},323{324.mask = BIT(1),325.num_adr = ARRAY_SIZE(rt1308_1_single_adr),326.adr_d = rt1308_1_single_adr,327},328{329.mask = BIT(3),330.num_adr = ARRAY_SIZE(rt715_3_adr),331.adr_d = rt715_3_adr,332},333{}334};335336static const struct snd_soc_acpi_link_adr tgl_sdw_rt711_link1_rt1308_link2_rt715_link0[] = {337{338.mask = BIT(1),339.num_adr = ARRAY_SIZE(rt711_1_adr),340.adr_d = rt711_1_adr,341},342{343.mask = BIT(2),344.num_adr = ARRAY_SIZE(rt1308_2_single_adr),345.adr_d = rt1308_2_single_adr,346},347{348.mask = BIT(0),349.num_adr = ARRAY_SIZE(rt715_0_adr),350.adr_d = rt715_0_adr,351},352{}353};354355static const struct snd_soc_acpi_link_adr tgl_3_in_1_sdca[] = {356{357.mask = BIT(0),358.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),359.adr_d = rt711_sdca_0_adr,360},361{362.mask = BIT(1),363.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),364.adr_d = rt1316_1_group1_adr,365},366{367.mask = BIT(2),368.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),369.adr_d = rt1316_2_group1_adr,370},371{372.mask = BIT(3),373.num_adr = ARRAY_SIZE(rt714_3_adr),374.adr_d = rt714_3_adr,375},376{}377};378379static const struct snd_soc_acpi_link_adr tgl_3_in_1_sdca_mono[] = {380{381.mask = BIT(0),382.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),383.adr_d = rt711_sdca_0_adr,384},385{386.mask = BIT(1),387.num_adr = ARRAY_SIZE(rt1316_1_single_adr),388.adr_d = rt1316_1_single_adr,389},390{391.mask = BIT(3),392.num_adr = ARRAY_SIZE(rt714_3_adr),393.adr_d = rt714_3_adr,394},395{}396};397398static const struct snd_soc_acpi_link_adr tgl_712_only[] = {399{400.mask = BIT(0),401.num_adr = ARRAY_SIZE(rt712_0_single_adr),402.adr_d = rt712_0_single_adr,403},404{405.mask = BIT(1),406.num_adr = ARRAY_SIZE(rt1712_1_single_adr),407.adr_d = rt1712_1_single_adr,408},409{}410};411412static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {413{ /* Jack Playback Endpoint */414.num = 0,415.aggregated = 0,416.group_position = 0,417.group_id = 0,418},419{ /* DMIC Capture Endpoint */420.num = 1,421.aggregated = 0,422.group_position = 0,423.group_id = 0,424},425{ /* Jack Capture Endpoint */426.num = 2,427.aggregated = 0,428.group_position = 0,429.group_id = 0,430},431{ /* Speaker Playback Endpoint */432.num = 3,433.aggregated = 0,434.group_position = 0,435.group_id = 0,436},437};438439static const struct snd_soc_acpi_adr_device cs42l43_3_adr[] = {440{441.adr = 0x00033001FA424301ull,442.num_endpoints = ARRAY_SIZE(cs42l43_endpoints),443.endpoints = cs42l43_endpoints,444.name_prefix = "cs42l43"445}446};447448static const struct snd_soc_acpi_adr_device cs35l56_0_adr[] = {449{450.adr = 0x00003301FA355601ull,451.num_endpoints = 1,452.endpoints = &spk_r_endpoint,453.name_prefix = "AMP1"454},455{456.adr = 0x00003201FA355601ull,457.num_endpoints = 1,458.endpoints = &spk_3_endpoint,459.name_prefix = "AMP2"460}461};462463static const struct snd_soc_acpi_adr_device cs35l56_1_adr[] = {464{465.adr = 0x00013701FA355601ull,466.num_endpoints = 1,467.endpoints = &spk_l_endpoint,468.name_prefix = "AMP3"469},470{471.adr = 0x00013601FA355601ull,472.num_endpoints = 1,473.endpoints = &spk_2_endpoint,474.name_prefix = "AMP4"475}476};477478static const struct snd_soc_acpi_link_adr tgl_cs42l43_cs35l56[] = {479{480.mask = BIT(3),481.num_adr = ARRAY_SIZE(cs42l43_3_adr),482.adr_d = cs42l43_3_adr,483},484{485.mask = BIT(0),486.num_adr = ARRAY_SIZE(cs35l56_0_adr),487.adr_d = cs35l56_0_adr,488},489{490.mask = BIT(1),491.num_adr = ARRAY_SIZE(cs35l56_1_adr),492.adr_d = cs35l56_1_adr,493},494{}495};496497static const struct snd_soc_acpi_codecs tgl_rt5682_rt5682s_hp = {498.num_codecs = 2,499.codecs = {RT5682_ACPI_HID, RT5682S_ACPI_HID},500};501502static const struct snd_soc_acpi_codecs tgl_lt6911_hdmi = {503.num_codecs = 1,504.codecs = {"INTC10B0"}505};506507struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[] = {508{509.comp_ids = &essx_83x6,510.drv_name = "sof-essx8336",511.sof_tplg_filename = "sof-tgl-es8336", /* the tplg suffix is added at run time */512.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |513SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |514SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,515},516/* place boards for each headphone codec: sof driver will complete the517* tplg name and machine driver will detect the amp type518*/519{520.comp_ids = &tgl_rt5682_rt5682s_hp,521.drv_name = "tgl_rt5682_def",522.sof_tplg_filename = "sof-tgl", /* the tplg suffix is added at run time */523.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |524SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,525},526/* place amp-only boards in the end of table */527{528.id = "10EC1308",529.drv_name = "tgl_rt1308_hdmi_ssp",530.machine_quirk = snd_soc_acpi_codec_list,531.quirk_data = &tgl_lt6911_hdmi,532.sof_tplg_filename = "sof-tgl-rt1308-ssp2-hdmi-ssp15.tplg"533},534{},535};536EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_tgl_machines);537538static const struct snd_soc_acpi_endpoint cs35l56_l_fb_endpoints[] = {539{ /* Speaker Playback Endpoint */540.num = 0,541.aggregated = 1,542.group_position = 0,543.group_id = 1,544},545{ /* Feedback Capture Endpoint */546.num = 1,547.aggregated = 1,548.group_position = 0,549.group_id = 2,550},551};552553static const struct snd_soc_acpi_endpoint cs35l56_r_fb_endpoints[] = {554{ /* Speaker Playback Endpoint */555.num = 0,556.aggregated = 1,557.group_position = 1,558.group_id = 1,559},560{ /* Feedback Capture Endpoint */561.num = 1,562.aggregated = 1,563.group_position = 1,564.group_id = 2,565},566};567568static const struct snd_soc_acpi_endpoint cs35l56_2_fb_endpoints[] = {569{ /* Speaker Playback Endpoint */570.num = 0,571.aggregated = 1,572.group_position = 2,573.group_id = 1,574},575{ /* Feedback Capture Endpoint */576.num = 1,577.aggregated = 1,578.group_position = 2,579.group_id = 2,580},581};582583static const struct snd_soc_acpi_endpoint cs35l56_3_fb_endpoints[] = {584{ /* Speaker Playback Endpoint */585.num = 0,586.aggregated = 1,587.group_position = 3,588.group_id = 1,589},590{ /* Feedback Capture Endpoint */591.num = 1,592.aggregated = 1,593.group_position = 3,594.group_id = 2,595},596};597598static const struct snd_soc_acpi_endpoint cs35l56_4_fb_endpoints[] = {599{ /* Speaker Playback Endpoint */600.num = 0,601.aggregated = 1,602.group_position = 4,603.group_id = 1,604},605{ /* Feedback Capture Endpoint */606.num = 1,607.aggregated = 1,608.group_position = 4,609.group_id = 2,610}611};612613static const struct snd_soc_acpi_endpoint cs35l56_5_fb_endpoints[] = {614{ /* Speaker Playback Endpoint */615.num = 0,616.aggregated = 1,617.group_position = 5,618.group_id = 1,619},620{ /* Feedback Capture Endpoint */621.num = 1,622.aggregated = 1,623.group_position = 5,624.group_id = 2,625}626};627628static const struct snd_soc_acpi_endpoint cs35l56_6_fb_endpoints[] = {629{ /* Speaker Playback Endpoint */630.num = 0,631.aggregated = 1,632.group_position = 6,633.group_id = 1,634},635{ /* Feedback Capture Endpoint */636.num = 1,637.aggregated = 1,638.group_position = 6,639.group_id = 2,640}641};642643static const struct snd_soc_acpi_endpoint cs35l56_7_fb_endpoints[] = {644{ /* Speaker Playback Endpoint */645.num = 0,646.aggregated = 1,647.group_position = 7,648.group_id = 1,649},650{ /* Feedback Capture Endpoint */651.num = 1,652.aggregated = 1,653.group_position = 7,654.group_id = 2,655}656};657658static const struct snd_soc_acpi_adr_device cs35l56_sdw_eight_1_4_fb_adr[] = {659{660.adr = 0x00003301fa355601ull,661.num_endpoints = ARRAY_SIZE(cs35l56_l_fb_endpoints),662.endpoints = cs35l56_l_fb_endpoints,663.name_prefix = "AMP1"664},665{666.adr = 0x00003201fa355601ull,667.num_endpoints = ARRAY_SIZE(cs35l56_2_fb_endpoints),668.endpoints = cs35l56_2_fb_endpoints,669.name_prefix = "AMP2"670},671{672.adr = 0x00003101fa355601ull,673.num_endpoints = ARRAY_SIZE(cs35l56_4_fb_endpoints),674.endpoints = cs35l56_4_fb_endpoints,675.name_prefix = "AMP3"676},677{678.adr = 0x00003001fa355601ull,679.num_endpoints = ARRAY_SIZE(cs35l56_6_fb_endpoints),680.endpoints = cs35l56_6_fb_endpoints,681.name_prefix = "AMP4"682},683};684685static const struct snd_soc_acpi_adr_device cs35l56_sdw_eight_5_8_fb_adr[] = {686{687.adr = 0x00013701fa355601ull,688.num_endpoints = ARRAY_SIZE(cs35l56_r_fb_endpoints),689.endpoints = cs35l56_r_fb_endpoints,690.name_prefix = "AMP8"691},692{693.adr = 0x00013601fa355601ull,694.num_endpoints = ARRAY_SIZE(cs35l56_3_fb_endpoints),695.endpoints = cs35l56_3_fb_endpoints,696.name_prefix = "AMP7"697},698{699.adr = 0x00013501fa355601ull,700.num_endpoints = ARRAY_SIZE(cs35l56_5_fb_endpoints),701.endpoints = cs35l56_5_fb_endpoints,702.name_prefix = "AMP6"703},704{705.adr = 0x00013401fa355601ull,706.num_endpoints = ARRAY_SIZE(cs35l56_7_fb_endpoints),707.endpoints = cs35l56_7_fb_endpoints,708.name_prefix = "AMP5"709},710};711712static const struct snd_soc_acpi_link_adr up_extreme_cs35l56_sdw_eight[] = {713{714.mask = BIT(1),715.num_adr = ARRAY_SIZE(cs35l56_sdw_eight_5_8_fb_adr),716.adr_d = cs35l56_sdw_eight_5_8_fb_adr,717},718{719.mask = BIT(0),720.num_adr = ARRAY_SIZE(cs35l56_sdw_eight_1_4_fb_adr),721.adr_d = cs35l56_sdw_eight_1_4_fb_adr,722},723{}724};725726/* this table is used when there is no I2S codec present */727struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_sdw_machines[] = {728/* mockup tests need to be first */729{730.link_mask = GENMASK(3, 0),731.links = sdw_mockup_headset_2amps_mic,732.drv_name = "sof_sdw",733.sof_tplg_filename = "sof-tgl-rt711-rt1308-rt715.tplg",734},735{736.link_mask = BIT(0) | BIT(1) | BIT(3),737.links = sdw_mockup_headset_1amp_mic,738.drv_name = "sof_sdw",739.sof_tplg_filename = "sof-tgl-rt711-rt1308-mono-rt715.tplg",740},741{742.link_mask = BIT(0) | BIT(1) | BIT(2),743.links = sdw_mockup_mic_headset_1amp,744.drv_name = "sof_sdw",745.sof_tplg_filename = "sof-tgl-rt715-rt711-rt1308-mono.tplg",746},747{748.link_mask = 0xF, /* 4 active links required */749.links = tgl_712_only,750.drv_name = "sof_sdw",751.sof_tplg_filename = "sof-tgl-rt712.tplg",752},753{754.link_mask = 0x7,755.links = tgl_sdw_rt711_link1_rt1308_link2_rt715_link0,756.drv_name = "sof_sdw",757.sof_tplg_filename = "sof-tgl-rt715-rt711-rt1308-mono.tplg",758},759{760.link_mask = 0xB,761.links = tgl_cs42l43_cs35l56,762.drv_name = "sof_sdw",763.sof_tplg_filename = "sof-tgl-cs42l43-l3-cs35l56-l01.tplg",764},765{766.link_mask = 0xF, /* 4 active links required */767.links = tgl_3_in_1_default,768.drv_name = "sof_sdw",769.sof_tplg_filename = "sof-tgl-rt711-rt1308-rt715.tplg",770},771{772/*773* link_mask should be 0xB, but all links are enabled by BIOS.774* This entry will be selected if there is no rt1308 exposed775* on link2 since it will fail to match the above entry.776*/777.link_mask = 0xF,778.links = tgl_3_in_1_mono_amp,779.drv_name = "sof_sdw",780.sof_tplg_filename = "sof-tgl-rt711-rt1308-mono-rt715.tplg",781},782{783.link_mask = 0xF, /* 4 active links required */784.links = tgl_3_in_1_sdca,785.drv_name = "sof_sdw",786.sof_tplg_filename = "sof-tgl-rt711-rt1316-rt714.tplg",787},788{789/*790* link_mask should be 0xB, but all links are enabled by BIOS.791* This entry will be selected if there is no rt1316 amplifier exposed792* on link2 since it will fail to match the above entry.793*/794795.link_mask = 0xF, /* 4 active links required */796.links = tgl_3_in_1_sdca_mono,797.drv_name = "sof_sdw",798.sof_tplg_filename = "sof-tgl-rt711-l0-rt1316-l1-mono-rt714-l3.tplg",799},800801{802.link_mask = 0x3, /* rt711 on link 0 and 1 rt1308 on link 1 */803.links = tgl_hp,804.drv_name = "sof_sdw",805.sof_tplg_filename = "sof-tgl-rt711-rt1308.tplg",806},807{808.link_mask = 0x3, /* rt711 on link 0 and 2 rt1308s on link 1 */809.links = tgl_rvp,810.drv_name = "sof_sdw",811.sof_tplg_filename = "sof-tgl-rt711-rt1308.tplg",812},813{814.link_mask = 0x3, /* rt5682 on link0 & 2xmax98373 on link 1 */815.links = tgl_chromebook_base,816.drv_name = "sof_sdw",817.sof_tplg_filename = "sof-tgl-sdw-max98373-rt5682.tplg",818},819{820.link_mask = 0x1, /* rt711 on link 0 */821.links = tgl_rvp_headset_only,822.drv_name = "sof_sdw",823.sof_tplg_filename = "sof-tgl-rt711.tplg",824},825{826.link_mask = BIT(0) | BIT(1),827.links = up_extreme_cs35l56_sdw_eight,828.drv_name = "sof_sdw",829.sof_tplg_filename = "sof-tgl-cs35l56-l01-fb8.tplg"830},831{},832};833EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_tgl_sdw_machines);834835836