18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * soc-acpi-intel-bxt-match.c - tables and support for BXT ACPI enumeration. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (c) 2018, Intel Corporation. 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <linux/dmi.h> 108c2ecf20Sopenharmony_ci#include <sound/soc-acpi.h> 118c2ecf20Sopenharmony_ci#include <sound/soc-acpi-intel-match.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cienum { 148c2ecf20Sopenharmony_ci APL_RVP, 158c2ecf20Sopenharmony_ci}; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistatic const struct dmi_system_id apl_table[] = { 188c2ecf20Sopenharmony_ci { 198c2ecf20Sopenharmony_ci .matches = { 208c2ecf20Sopenharmony_ci DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."), 218c2ecf20Sopenharmony_ci DMI_MATCH(DMI_BOARD_NAME, "Apollolake RVP1A"), 228c2ecf20Sopenharmony_ci }, 238c2ecf20Sopenharmony_ci .driver_data = (void *)(APL_RVP), 248c2ecf20Sopenharmony_ci }, 258c2ecf20Sopenharmony_ci {} 268c2ecf20Sopenharmony_ci}; 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_cistatic struct snd_soc_acpi_mach *apl_quirk(void *arg) 298c2ecf20Sopenharmony_ci{ 308c2ecf20Sopenharmony_ci struct snd_soc_acpi_mach *mach = arg; 318c2ecf20Sopenharmony_ci const struct dmi_system_id *dmi_id; 328c2ecf20Sopenharmony_ci unsigned long apl_machine_id; 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci dmi_id = dmi_first_match(apl_table); 358c2ecf20Sopenharmony_ci if (dmi_id) { 368c2ecf20Sopenharmony_ci apl_machine_id = (unsigned long)dmi_id->driver_data; 378c2ecf20Sopenharmony_ci if (apl_machine_id == APL_RVP) 388c2ecf20Sopenharmony_ci return NULL; 398c2ecf20Sopenharmony_ci } 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci return mach; 428c2ecf20Sopenharmony_ci} 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_cistatic struct snd_soc_acpi_codecs bxt_codecs = { 458c2ecf20Sopenharmony_ci .num_codecs = 1, 468c2ecf20Sopenharmony_ci .codecs = {"MX98357A"} 478c2ecf20Sopenharmony_ci}; 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_cistruct snd_soc_acpi_mach snd_soc_acpi_intel_bxt_machines[] = { 508c2ecf20Sopenharmony_ci { 518c2ecf20Sopenharmony_ci .id = "INT343A", 528c2ecf20Sopenharmony_ci .drv_name = "bxt_alc298s_i2s", 538c2ecf20Sopenharmony_ci .fw_filename = "intel/dsp_fw_bxtn.bin", 548c2ecf20Sopenharmony_ci .sof_fw_filename = "sof-apl.ri", 558c2ecf20Sopenharmony_ci .sof_tplg_filename = "sof-apl-rt298.tplg", 568c2ecf20Sopenharmony_ci }, 578c2ecf20Sopenharmony_ci { 588c2ecf20Sopenharmony_ci .id = "DLGS7219", 598c2ecf20Sopenharmony_ci .drv_name = "bxt_da7219_max98357a", 608c2ecf20Sopenharmony_ci .fw_filename = "intel/dsp_fw_bxtn.bin", 618c2ecf20Sopenharmony_ci .machine_quirk = snd_soc_acpi_codec_list, 628c2ecf20Sopenharmony_ci .quirk_data = &bxt_codecs, 638c2ecf20Sopenharmony_ci .sof_fw_filename = "sof-apl.ri", 648c2ecf20Sopenharmony_ci .sof_tplg_filename = "sof-apl-da7219.tplg", 658c2ecf20Sopenharmony_ci }, 668c2ecf20Sopenharmony_ci { 678c2ecf20Sopenharmony_ci .id = "104C5122", 688c2ecf20Sopenharmony_ci .drv_name = "sof_pcm512x", 698c2ecf20Sopenharmony_ci .sof_fw_filename = "sof-apl.ri", 708c2ecf20Sopenharmony_ci .sof_tplg_filename = "sof-apl-pcm512x.tplg", 718c2ecf20Sopenharmony_ci }, 728c2ecf20Sopenharmony_ci { 738c2ecf20Sopenharmony_ci .id = "1AEC8804", 748c2ecf20Sopenharmony_ci .drv_name = "sof-wm8804", 758c2ecf20Sopenharmony_ci .sof_fw_filename = "sof-apl.ri", 768c2ecf20Sopenharmony_ci .sof_tplg_filename = "sof-apl-wm8804.tplg", 778c2ecf20Sopenharmony_ci }, 788c2ecf20Sopenharmony_ci { 798c2ecf20Sopenharmony_ci .id = "INT34C3", 808c2ecf20Sopenharmony_ci .drv_name = "bxt_tdf8532", 818c2ecf20Sopenharmony_ci .machine_quirk = apl_quirk, 828c2ecf20Sopenharmony_ci .sof_fw_filename = "sof-apl.ri", 838c2ecf20Sopenharmony_ci .sof_tplg_filename = "sof-apl-tdf8532.tplg", 848c2ecf20Sopenharmony_ci }, 858c2ecf20Sopenharmony_ci {}, 868c2ecf20Sopenharmony_ci}; 878c2ecf20Sopenharmony_ciEXPORT_SYMBOL_GPL(snd_soc_acpi_intel_bxt_machines); 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 908c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("Intel Common ACPI Match module"); 91