blob: 4a5adae1d785d60ca5e6b679cae3debf3f85b388 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001// SPDX-License-Identifier: GPL-2.0
2/*
David Brazdil0f672f62019-12-10 10:32:29 +00003 * soc-acpi-intel-bxt-match.c - tables and support for BXT ACPI enumeration.
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00004 *
5 * Copyright (c) 2018, Intel Corporation.
6 *
7 */
8
David Brazdil0f672f62019-12-10 10:32:29 +00009#include <linux/dmi.h>
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000010#include <sound/soc-acpi.h>
11#include <sound/soc-acpi-intel-match.h>
12
David Brazdil0f672f62019-12-10 10:32:29 +000013enum {
14 APL_RVP,
15};
16
17static const struct dmi_system_id apl_table[] = {
18 {
19 .matches = {
20 DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."),
21 DMI_MATCH(DMI_BOARD_NAME, "Apollolake RVP1A"),
22 },
23 .driver_data = (void *)(APL_RVP),
24 },
25 {}
26};
27
28static struct snd_soc_acpi_mach *apl_quirk(void *arg)
29{
30 struct snd_soc_acpi_mach *mach = arg;
31 const struct dmi_system_id *dmi_id;
32 unsigned long apl_machine_id;
33
34 dmi_id = dmi_first_match(apl_table);
35 if (dmi_id) {
36 apl_machine_id = (unsigned long)dmi_id->driver_data;
37 if (apl_machine_id == APL_RVP)
38 return NULL;
39 }
40
41 return mach;
42}
43
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000044static struct snd_soc_acpi_codecs bxt_codecs = {
45 .num_codecs = 1,
46 .codecs = {"MX98357A"}
47};
48
49struct snd_soc_acpi_mach snd_soc_acpi_intel_bxt_machines[] = {
50 {
51 .id = "INT343A",
52 .drv_name = "bxt_alc298s_i2s",
53 .fw_filename = "intel/dsp_fw_bxtn.bin",
David Brazdil0f672f62019-12-10 10:32:29 +000054 .sof_fw_filename = "sof-apl.ri",
55 .sof_tplg_filename = "sof-apl-rt298.tplg",
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000056 },
57 {
58 .id = "DLGS7219",
59 .drv_name = "bxt_da7219_max98357a",
60 .fw_filename = "intel/dsp_fw_bxtn.bin",
61 .machine_quirk = snd_soc_acpi_codec_list,
62 .quirk_data = &bxt_codecs,
David Brazdil0f672f62019-12-10 10:32:29 +000063 .sof_fw_filename = "sof-apl.ri",
64 .sof_tplg_filename = "sof-apl-da7219.tplg",
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000065 },
66 {
67 .id = "104C5122",
68 .drv_name = "bxt-pcm512x",
David Brazdil0f672f62019-12-10 10:32:29 +000069 .sof_fw_filename = "sof-apl.ri",
70 .sof_tplg_filename = "sof-apl-pcm512x.tplg",
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000071 },
72 {
73 .id = "1AEC8804",
74 .drv_name = "bxt-wm8804",
David Brazdil0f672f62019-12-10 10:32:29 +000075 .sof_fw_filename = "sof-apl.ri",
76 .sof_tplg_filename = "sof-apl-wm8804.tplg",
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000077 },
78 {
79 .id = "INT34C3",
80 .drv_name = "bxt_tdf8532",
David Brazdil0f672f62019-12-10 10:32:29 +000081 .machine_quirk = apl_quirk,
82 .sof_fw_filename = "sof-apl.ri",
83 .sof_tplg_filename = "sof-apl-tdf8532.tplg",
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000084 },
85 {},
86};
87EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_bxt_machines);
88
89MODULE_LICENSE("GPL v2");
90MODULE_DESCRIPTION("Intel Common ACPI Match module");