Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * soc-acpi-intel-mtl-match.c - tables and support for MTL ACPI enumeration.
0004  *
0005  * Copyright (c) 2022, Intel Corporation.
0006  *
0007  */
0008 
0009 #include <sound/soc-acpi.h>
0010 #include <sound/soc-acpi-intel-match.h>
0011 #include "soc-acpi-intel-sdw-mockup-match.h"
0012 
0013 static const struct snd_soc_acpi_codecs mtl_max98357a_amp = {
0014     .num_codecs = 1,
0015     .codecs = {"MX98357A"}
0016 };
0017 
0018 static const struct snd_soc_acpi_codecs mtl_rt5682_rt5682s_hp = {
0019     .num_codecs = 2,
0020     .codecs = {"10EC5682", "RTL5682"},
0021 };
0022 
0023 struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[] = {
0024     {
0025         .comp_ids = &mtl_rt5682_rt5682s_hp,
0026         .drv_name = "mtl_mx98357_rt5682",
0027         .machine_quirk = snd_soc_acpi_codec_list,
0028         .quirk_data = &mtl_max98357a_amp,
0029         .sof_tplg_filename = "sof-mtl-max98357a-rt5682.tplg",
0030     },
0031     {},
0032 };
0033 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_machines);
0034 
0035 static const struct snd_soc_acpi_endpoint single_endpoint = {
0036     .num = 0,
0037     .aggregated = 0,
0038     .group_position = 0,
0039     .group_id = 0,
0040 };
0041 
0042 static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
0043     {
0044         .adr = 0x000030025D071101ull,
0045         .num_endpoints = 1,
0046         .endpoints = &single_endpoint,
0047         .name_prefix = "rt711"
0048     }
0049 };
0050 
0051 static const struct snd_soc_acpi_link_adr mtl_rvp[] = {
0052     {
0053         .mask = BIT(0),
0054         .num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
0055         .adr_d = rt711_sdca_0_adr,
0056     },
0057     {}
0058 };
0059 
0060 /* this table is used when there is no I2S codec present */
0061 struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
0062     /* mockup tests need to be first */
0063     {
0064         .link_mask = GENMASK(3, 0),
0065         .links = sdw_mockup_headset_2amps_mic,
0066         .drv_name = "sof_sdw",
0067         .sof_tplg_filename = "sof-mtl-rt711-rt1308-rt715.tplg",
0068     },
0069     {
0070         .link_mask = BIT(0) | BIT(1) | BIT(3),
0071         .links = sdw_mockup_headset_1amp_mic,
0072         .drv_name = "sof_sdw",
0073         .sof_tplg_filename = "sof-mtl-rt711-rt1308-mono-rt715.tplg",
0074     },
0075     {
0076         .link_mask = GENMASK(2, 0),
0077         .links = sdw_mockup_mic_headset_1amp,
0078         .drv_name = "sof_sdw",
0079         .sof_tplg_filename = "sof-mtl-rt715-rt711-rt1308-mono.tplg",
0080     },
0081     {
0082         .link_mask = BIT(0),
0083         .links = mtl_rvp,
0084         .drv_name = "sof_sdw",
0085         .sof_tplg_filename = "sof-mtl-rt711.tplg",
0086     },
0087     {},
0088 };
0089 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_sdw_machines);