123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
- //
- // This file is provided under a dual BSD/GPLv2 license. When using or
- // redistributing this file, you may do so under either license.
- //
- // Copyright(c) 2021 Advanced Micro Devices, Inc.
- //
- // Authors: Ajit Kumar Pandey <[email protected]>
- //
- /* ACP machine configuration module */
- #include <linux/acpi.h>
- #include <linux/bits.h>
- #include <linux/dmi.h>
- #include <linux/module.h>
- #include <linux/pci.h>
- #include "../sof/amd/acp.h"
- #include "mach-config.h"
- static int acp_quirk_data;
- static const struct config_entry config_table[] = {
- {
- .flags = FLAG_AMD_SOF,
- .device = ACP_PCI_DEV_ID,
- .dmi_table = (const struct dmi_system_id []) {
- {
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "AMD"),
- DMI_MATCH(DMI_PRODUCT_NAME, "Majolica-CZN"),
- },
- },
- {}
- },
- },
- {
- .flags = FLAG_AMD_SOF,
- .device = ACP_PCI_DEV_ID,
- .dmi_table = (const struct dmi_system_id []) {
- {
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Google"),
- },
- },
- {}
- },
- },
- };
- int snd_amd_acp_find_config(struct pci_dev *pci)
- {
- const struct config_entry *table = config_table;
- u16 device = pci->device;
- int i;
- /* Do not enable FLAGS on older platforms with Rev id zero */
- if (!pci->revision)
- return 0;
- for (i = 0; i < ARRAY_SIZE(config_table); i++, table++) {
- if (table->device != device)
- continue;
- if (table->dmi_table && !dmi_check_system(table->dmi_table))
- continue;
- acp_quirk_data = table->flags;
- return table->flags;
- }
- return 0;
- }
- EXPORT_SYMBOL(snd_amd_acp_find_config);
- static struct snd_soc_acpi_codecs amp_rt1019 = {
- .num_codecs = 1,
- .codecs = {"10EC1019"}
- };
- static struct snd_soc_acpi_codecs amp_max = {
- .num_codecs = 1,
- .codecs = {"MX98360A"}
- };
- struct snd_soc_acpi_mach snd_soc_acpi_amd_sof_machines[] = {
- {
- .id = "10EC5682",
- .drv_name = "rt5682-rt1019",
- .pdata = (void *)&acp_quirk_data,
- .machine_quirk = snd_soc_acpi_codec_list,
- .quirk_data = &_rt1019,
- .fw_filename = "sof-rn.ri",
- .sof_tplg_filename = "sof-rn-rt5682-rt1019.tplg",
- },
- {
- .id = "10EC5682",
- .drv_name = "rt5682-max",
- .pdata = (void *)&acp_quirk_data,
- .machine_quirk = snd_soc_acpi_codec_list,
- .quirk_data = &_max,
- .fw_filename = "sof-rn.ri",
- .sof_tplg_filename = "sof-rn-rt5682-max98360.tplg",
- },
- {
- .id = "RTL5682",
- .drv_name = "rt5682s-max",
- .pdata = (void *)&acp_quirk_data,
- .machine_quirk = snd_soc_acpi_codec_list,
- .quirk_data = &_max,
- .fw_filename = "sof-rn.ri",
- .sof_tplg_filename = "sof-rn-rt5682-max98360.tplg",
- },
- {
- .id = "RTL5682",
- .drv_name = "rt5682s-rt1019",
- .pdata = (void *)&acp_quirk_data,
- .machine_quirk = snd_soc_acpi_codec_list,
- .quirk_data = &_rt1019,
- .fw_filename = "sof-rn.ri",
- .sof_tplg_filename = "sof-rn-rt5682-rt1019.tplg",
- },
- {
- .id = "AMDI1019",
- .drv_name = "renoir-dsp",
- .pdata = (void *)&acp_quirk_data,
- .fw_filename = "sof-rn.ri",
- .sof_tplg_filename = "sof-acp.tplg",
- },
- {},
- };
- EXPORT_SYMBOL(snd_soc_acpi_amd_sof_machines);
- struct snd_soc_acpi_mach snd_soc_acpi_amd_rmb_sof_machines[] = {
- {
- .id = "AMDI1019",
- .drv_name = "rmb-dsp",
- .pdata = &acp_quirk_data,
- .fw_filename = "sof-rmb.ri",
- .sof_tplg_filename = "sof-acp-rmb.tplg",
- },
- {
- .id = "10508825",
- .drv_name = "nau8825-max",
- .pdata = &acp_quirk_data,
- .machine_quirk = snd_soc_acpi_codec_list,
- .quirk_data = &_max,
- .fw_filename = "sof-rmb.ri",
- .sof_tplg_filename = "sof-rmb-nau8825-max98360.tplg",
- },
- {
- .id = "RTL5682",
- .drv_name = "rt5682s-hs-rt1019",
- .pdata = &acp_quirk_data,
- .machine_quirk = snd_soc_acpi_codec_list,
- .quirk_data = &_rt1019,
- .fw_filename = "sof-rmb.ri",
- .sof_tplg_filename = "sof-rmb-rt5682s-rt1019.tplg",
- },
- {},
- };
- EXPORT_SYMBOL(snd_soc_acpi_amd_rmb_sof_machines);
- MODULE_LICENSE("Dual BSD/GPL");
|