1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * soc-acpi-intel-kbl-match.c - tables and support for KBL ACPI enumeration.
4 *
5 * Copyright (c) 2018, Intel Corporation.
6 *
7 */
8
9#include <sound/soc-acpi.h>
10#include <sound/soc-acpi-intel-match.h>
11#include "../skylake/skl.h"
12
13static struct skl_machine_pdata skl_dmic_data;
14
15static const struct snd_soc_acpi_codecs kbl_codecs = {
16	.num_codecs = 1,
17	.codecs = {"10508825"}
18};
19
20static const struct snd_soc_acpi_codecs kbl_poppy_codecs = {
21	.num_codecs = 1,
22	.codecs = {"10EC5663"}
23};
24
25static const struct snd_soc_acpi_codecs kbl_5663_5514_codecs = {
26	.num_codecs = 2,
27	.codecs = {"10EC5663", "10EC5514"}
28};
29
30static const struct snd_soc_acpi_codecs kbl_7219_98357_codecs = {
31	.num_codecs = 1,
32	.codecs = {"MX98357A"}
33};
34
35static const struct snd_soc_acpi_codecs kbl_7219_98927_codecs = {
36	.num_codecs = 1,
37	.codecs = {"MX98927"}
38};
39
40static const struct snd_soc_acpi_codecs kbl_7219_98373_codecs = {
41	.num_codecs = 1,
42	.codecs = {"MX98373"}
43};
44
45struct snd_soc_acpi_mach snd_soc_acpi_intel_kbl_machines[] = {
46	{
47		.id = "INT343A",
48		.drv_name = "kbl_alc286s_i2s",
49		.fw_filename = "intel/dsp_fw_kbl.bin",
50	},
51	{
52		.id = "INT343B",
53		.drv_name = "kbl_n88l25_s4567",
54		.fw_filename = "intel/dsp_fw_kbl.bin",
55		.machine_quirk = snd_soc_acpi_codec_list,
56		.quirk_data = &kbl_codecs,
57		.pdata = &skl_dmic_data,
58	},
59	{
60		.id = "MX98357A",
61		.drv_name = "kbl_n88l25_m98357a",
62		.fw_filename = "intel/dsp_fw_kbl.bin",
63		.machine_quirk = snd_soc_acpi_codec_list,
64		.quirk_data = &kbl_codecs,
65		.pdata = &skl_dmic_data,
66	},
67	{
68		.id = "MX98927",
69		.drv_name = "kbl_r5514_5663_max",
70		.fw_filename = "intel/dsp_fw_kbl.bin",
71		.machine_quirk = snd_soc_acpi_codec_list,
72		.quirk_data = &kbl_5663_5514_codecs,
73		.pdata = &skl_dmic_data,
74	},
75	{
76		.id = "MX98927",
77		.drv_name = "kbl_rt5663_m98927",
78		.fw_filename = "intel/dsp_fw_kbl.bin",
79		.machine_quirk = snd_soc_acpi_codec_list,
80		.quirk_data = &kbl_poppy_codecs,
81		.pdata = &skl_dmic_data,
82	},
83	{
84		.id = "10EC5663",
85		.drv_name = "kbl_rt5663",
86		.fw_filename = "intel/dsp_fw_kbl.bin",
87	},
88	{
89		.id = "DLGS7219",
90		.drv_name = "kbl_da7219_mx98357a",
91		.fw_filename = "intel/dsp_fw_kbl.bin",
92		.machine_quirk = snd_soc_acpi_codec_list,
93		.quirk_data = &kbl_7219_98357_codecs,
94		.pdata = &skl_dmic_data,
95	},
96	{
97		.id = "DLGS7219",
98		.drv_name = "kbl_da7219_max98927",
99		.fw_filename = "intel/dsp_fw_kbl.bin",
100		.machine_quirk = snd_soc_acpi_codec_list,
101		.quirk_data = &kbl_7219_98927_codecs,
102		.pdata = &skl_dmic_data
103	},
104	{
105		.id = "10EC5660",
106		.drv_name = "kbl_rt5660",
107		.fw_filename = "intel/dsp_fw_kbl.bin",
108	},
109	{
110		.id = "10EC3277",
111		.drv_name = "kbl_rt5660",
112		.fw_filename = "intel/dsp_fw_kbl.bin",
113	},
114	{
115		.id = "DLGS7219",
116		.drv_name = "kbl_da7219_mx98373",
117		.fw_filename = "intel/dsp_fw_kbl.bin",
118		.machine_quirk = snd_soc_acpi_codec_list,
119		.quirk_data = &kbl_7219_98373_codecs,
120		.pdata = &skl_dmic_data
121	},
122	{
123		.id = "MX98373",
124		.drv_name = "kbl_max98373",
125		.fw_filename = "intel/dsp_fw_kbl.bin",
126		.pdata = &skl_dmic_data
127	},
128	{},
129};
130EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_kbl_machines);
131