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 
13 static struct skl_machine_pdata skl_dmic_data;
14 
15 static struct snd_soc_acpi_codecs kbl_codecs = {
16 	.num_codecs = 1,
17 	.codecs = {"10508825"}
18 };
19 
20 static struct snd_soc_acpi_codecs kbl_poppy_codecs = {
21 	.num_codecs = 1,
22 	.codecs = {"10EC5663"}
23 };
24 
25 static struct snd_soc_acpi_codecs kbl_5663_5514_codecs = {
26 	.num_codecs = 2,
27 	.codecs = {"10EC5663", "10EC5514"}
28 };
29 
30 static struct snd_soc_acpi_codecs kbl_7219_98357_codecs = {
31 	.num_codecs = 1,
32 	.codecs = {"MX98357A"}
33 };
34 
35 static struct snd_soc_acpi_codecs kbl_7219_98927_codecs = {
36 	.num_codecs = 1,
37 	.codecs = {"MX98927"}
38 };
39 
40 static struct snd_soc_acpi_codecs kbl_7219_98373_codecs = {
41 	.num_codecs = 1,
42 	.codecs = {"MX98373"}
43 };
44 
45 struct 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_max98357a",
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_max98373",
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 };
130 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_kbl_machines);
131