xref: /openbmc/linux/sound/soc/sof/intel/pci-tgl.c (revision 9eb2b4ca)
18d4ba1beSPierre-Louis Bossart // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
28d4ba1beSPierre-Louis Bossart //
38d4ba1beSPierre-Louis Bossart // This file is provided under a dual BSD/GPLv2 license.  When using or
48d4ba1beSPierre-Louis Bossart // redistributing this file, you may do so under either license.
58d4ba1beSPierre-Louis Bossart //
68d4ba1beSPierre-Louis Bossart // Copyright(c) 2018-2021 Intel Corporation. All rights reserved.
78d4ba1beSPierre-Louis Bossart //
88d4ba1beSPierre-Louis Bossart // Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
98d4ba1beSPierre-Louis Bossart //
108d4ba1beSPierre-Louis Bossart 
118d4ba1beSPierre-Louis Bossart #include <linux/module.h>
128d4ba1beSPierre-Louis Bossart #include <linux/pci.h>
138d4ba1beSPierre-Louis Bossart #include <sound/soc-acpi.h>
148d4ba1beSPierre-Louis Bossart #include <sound/soc-acpi-intel-match.h>
158d4ba1beSPierre-Louis Bossart #include <sound/sof.h>
168d4ba1beSPierre-Louis Bossart #include "../ops.h"
178d4ba1beSPierre-Louis Bossart #include "../sof-pci-dev.h"
188d4ba1beSPierre-Louis Bossart 
198d4ba1beSPierre-Louis Bossart /* platform specific devices */
208d4ba1beSPierre-Louis Bossart #include "hda.h"
218d4ba1beSPierre-Louis Bossart 
228d4ba1beSPierre-Louis Bossart static const struct sof_dev_desc tgl_desc = {
238d4ba1beSPierre-Louis Bossart 	.machines               = snd_soc_acpi_intel_tgl_machines,
248d4ba1beSPierre-Louis Bossart 	.alt_machines		= snd_soc_acpi_intel_tgl_sdw_machines,
258d4ba1beSPierre-Louis Bossart 	.use_acpi_target_states	= true,
268d4ba1beSPierre-Louis Bossart 	.resindex_lpe_base      = 0,
278d4ba1beSPierre-Louis Bossart 	.resindex_pcicfg_base   = -1,
288d4ba1beSPierre-Louis Bossart 	.resindex_imr_base      = -1,
298d4ba1beSPierre-Louis Bossart 	.irqindex_host_ipc      = -1,
308d4ba1beSPierre-Louis Bossart 	.chip_info = &tgl_chip_info,
310cf8ff05SPierre-Louis Bossart 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
320cf8ff05SPierre-Louis Bossart 	.ipc_default		= SOF_IPC,
33a3757915SPierre-Louis Bossart 	.default_fw_path = {
34a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof",
350cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs/tgl",
36a3757915SPierre-Louis Bossart 	},
37cd6f2a2eSPeter Ujfalusi 	.default_lib_path = {
38cd6f2a2eSPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/tgl",
39cd6f2a2eSPeter Ujfalusi 	},
40a3757915SPierre-Louis Bossart 	.default_tplg_path = {
41a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof-tplg",
420cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
43a3757915SPierre-Louis Bossart 	},
44a97abb3cSPierre-Louis Bossart 	.default_fw_filename = {
45a97abb3cSPierre-Louis Bossart 		[SOF_IPC] = "sof-tgl.ri",
46a97abb3cSPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
47a97abb3cSPierre-Louis Bossart 	},
488d4ba1beSPierre-Louis Bossart 	.nocodec_tplg_filename = "sof-tgl-nocodec.tplg",
498d4ba1beSPierre-Louis Bossart 	.ops = &sof_tgl_ops,
5037e809d5SPierre-Louis Bossart 	.ops_init = sof_tgl_ops_init,
51*9eb2b4caSRanjani Sridharan 	.ops_free = hda_ops_free,
528d4ba1beSPierre-Louis Bossart };
538d4ba1beSPierre-Louis Bossart 
548d4ba1beSPierre-Louis Bossart static const struct sof_dev_desc tglh_desc = {
558d4ba1beSPierre-Louis Bossart 	.machines               = snd_soc_acpi_intel_tgl_machines,
568d4ba1beSPierre-Louis Bossart 	.alt_machines		= snd_soc_acpi_intel_tgl_sdw_machines,
571b988997SLibin Yang 	.use_acpi_target_states	= true,
588d4ba1beSPierre-Louis Bossart 	.resindex_lpe_base      = 0,
598d4ba1beSPierre-Louis Bossart 	.resindex_pcicfg_base   = -1,
608d4ba1beSPierre-Louis Bossart 	.resindex_imr_base      = -1,
618d4ba1beSPierre-Louis Bossart 	.irqindex_host_ipc      = -1,
628d4ba1beSPierre-Louis Bossart 	.chip_info = &tglh_chip_info,
630cf8ff05SPierre-Louis Bossart 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
640cf8ff05SPierre-Louis Bossart 	.ipc_default		= SOF_IPC,
65a3757915SPierre-Louis Bossart 	.default_fw_path = {
66a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof",
670cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs/tgl-h",
68a3757915SPierre-Louis Bossart 	},
69cd6f2a2eSPeter Ujfalusi 	.default_lib_path = {
70cd6f2a2eSPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/tgl-h",
71cd6f2a2eSPeter Ujfalusi 	},
72a3757915SPierre-Louis Bossart 	.default_tplg_path = {
73a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof-tplg",
740cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
75a3757915SPierre-Louis Bossart 	},
76a97abb3cSPierre-Louis Bossart 	.default_fw_filename = {
77a97abb3cSPierre-Louis Bossart 		[SOF_IPC] = "sof-tgl-h.ri",
78a97abb3cSPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
79a97abb3cSPierre-Louis Bossart 	},
808d4ba1beSPierre-Louis Bossart 	.nocodec_tplg_filename = "sof-tgl-nocodec.tplg",
818d4ba1beSPierre-Louis Bossart 	.ops = &sof_tgl_ops,
8237e809d5SPierre-Louis Bossart 	.ops_init = sof_tgl_ops_init,
831da51943SRanjani Sridharan 	.ops_free = hda_ops_free,
848d4ba1beSPierre-Louis Bossart };
858d4ba1beSPierre-Louis Bossart 
868d4ba1beSPierre-Louis Bossart static const struct sof_dev_desc ehl_desc = {
878d4ba1beSPierre-Louis Bossart 	.machines               = snd_soc_acpi_intel_ehl_machines,
888d4ba1beSPierre-Louis Bossart 	.use_acpi_target_states	= true,
898d4ba1beSPierre-Louis Bossart 	.resindex_lpe_base      = 0,
908d4ba1beSPierre-Louis Bossart 	.resindex_pcicfg_base   = -1,
918d4ba1beSPierre-Louis Bossart 	.resindex_imr_base      = -1,
928d4ba1beSPierre-Louis Bossart 	.irqindex_host_ipc      = -1,
938d4ba1beSPierre-Louis Bossart 	.chip_info = &ehl_chip_info,
940cf8ff05SPierre-Louis Bossart 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
950cf8ff05SPierre-Louis Bossart 	.ipc_default		= SOF_IPC,
96a3757915SPierre-Louis Bossart 	.default_fw_path = {
97a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof",
980cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs/ehl",
99a3757915SPierre-Louis Bossart 	},
100cd6f2a2eSPeter Ujfalusi 	.default_lib_path = {
101cd6f2a2eSPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/ehl",
102cd6f2a2eSPeter Ujfalusi 	},
103a3757915SPierre-Louis Bossart 	.default_tplg_path = {
104a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof-tplg",
1050cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
106a3757915SPierre-Louis Bossart 	},
107a97abb3cSPierre-Louis Bossart 	.default_fw_filename = {
108a97abb3cSPierre-Louis Bossart 		[SOF_IPC] = "sof-ehl.ri",
109a97abb3cSPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
110a97abb3cSPierre-Louis Bossart 	},
1118d4ba1beSPierre-Louis Bossart 	.nocodec_tplg_filename = "sof-ehl-nocodec.tplg",
1123c429f86SLibin Yang 	.ops = &sof_tgl_ops,
11337e809d5SPierre-Louis Bossart 	.ops_init = sof_tgl_ops_init,
114*9eb2b4caSRanjani Sridharan 	.ops_free = hda_ops_free,
1158d4ba1beSPierre-Louis Bossart };
1168d4ba1beSPierre-Louis Bossart 
1178d4ba1beSPierre-Louis Bossart static const struct sof_dev_desc adls_desc = {
1188d4ba1beSPierre-Louis Bossart 	.machines               = snd_soc_acpi_intel_adl_machines,
1198d4ba1beSPierre-Louis Bossart 	.alt_machines           = snd_soc_acpi_intel_adl_sdw_machines,
1201b988997SLibin Yang 	.use_acpi_target_states	= true,
1218d4ba1beSPierre-Louis Bossart 	.resindex_lpe_base      = 0,
1228d4ba1beSPierre-Louis Bossart 	.resindex_pcicfg_base   = -1,
1238d4ba1beSPierre-Louis Bossart 	.resindex_imr_base      = -1,
1248d4ba1beSPierre-Louis Bossart 	.irqindex_host_ipc      = -1,
1258d4ba1beSPierre-Louis Bossart 	.chip_info = &adls_chip_info,
1260cf8ff05SPierre-Louis Bossart 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
1270cf8ff05SPierre-Louis Bossart 	.ipc_default		= SOF_IPC,
128a3757915SPierre-Louis Bossart 	.default_fw_path = {
129a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof",
1300cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs/adl-s",
131a3757915SPierre-Louis Bossart 	},
132cd6f2a2eSPeter Ujfalusi 	.default_lib_path = {
133cd6f2a2eSPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/adl-s",
134cd6f2a2eSPeter Ujfalusi 	},
135a3757915SPierre-Louis Bossart 	.default_tplg_path = {
136a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof-tplg",
1370cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
138a3757915SPierre-Louis Bossart 	},
139a97abb3cSPierre-Louis Bossart 	.default_fw_filename = {
140a97abb3cSPierre-Louis Bossart 		[SOF_IPC] = "sof-adl-s.ri",
141a97abb3cSPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
142a97abb3cSPierre-Louis Bossart 	},
1438d4ba1beSPierre-Louis Bossart 	.nocodec_tplg_filename = "sof-adl-nocodec.tplg",
1448d4ba1beSPierre-Louis Bossart 	.ops = &sof_tgl_ops,
14537e809d5SPierre-Louis Bossart 	.ops_init = sof_tgl_ops_init,
146*9eb2b4caSRanjani Sridharan 	.ops_free = hda_ops_free,
1478d4ba1beSPierre-Louis Bossart };
1488d4ba1beSPierre-Louis Bossart 
1494ad03f89SSathya Prakash M R static const struct sof_dev_desc adl_desc = {
1504ad03f89SSathya Prakash M R 	.machines               = snd_soc_acpi_intel_adl_machines,
1514ad03f89SSathya Prakash M R 	.alt_machines           = snd_soc_acpi_intel_adl_sdw_machines,
152aa21548eSSathya Prakash M R 	.use_acpi_target_states = true,
1534ad03f89SSathya Prakash M R 	.resindex_lpe_base      = 0,
1544ad03f89SSathya Prakash M R 	.resindex_pcicfg_base   = -1,
1554ad03f89SSathya Prakash M R 	.resindex_imr_base      = -1,
1564ad03f89SSathya Prakash M R 	.irqindex_host_ipc      = -1,
1574ad03f89SSathya Prakash M R 	.chip_info = &tgl_chip_info,
1580cf8ff05SPierre-Louis Bossart 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
1590cf8ff05SPierre-Louis Bossart 	.ipc_default		= SOF_IPC,
160a3757915SPierre-Louis Bossart 	.default_fw_path = {
161a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof",
1620cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs/adl",
163a3757915SPierre-Louis Bossart 	},
164cd6f2a2eSPeter Ujfalusi 	.default_lib_path = {
165cd6f2a2eSPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/adl",
166cd6f2a2eSPeter Ujfalusi 	},
167a3757915SPierre-Louis Bossart 	.default_tplg_path = {
168a3757915SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof-tplg",
1690cf8ff05SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
170a3757915SPierre-Louis Bossart 	},
171a97abb3cSPierre-Louis Bossart 	.default_fw_filename = {
172a97abb3cSPierre-Louis Bossart 		[SOF_IPC] = "sof-adl.ri",
173a97abb3cSPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
174a97abb3cSPierre-Louis Bossart 	},
1754ad03f89SSathya Prakash M R 	.nocodec_tplg_filename = "sof-adl-nocodec.tplg",
1764ad03f89SSathya Prakash M R 	.ops = &sof_tgl_ops,
17737e809d5SPierre-Louis Bossart 	.ops_init = sof_tgl_ops_init,
178*9eb2b4caSRanjani Sridharan 	.ops_free = hda_ops_free,
1794ad03f89SSathya Prakash M R };
1804ad03f89SSathya Prakash M R 
18105de5cf6SPierre-Louis Bossart static const struct sof_dev_desc adl_n_desc = {
18205de5cf6SPierre-Louis Bossart 	.machines               = snd_soc_acpi_intel_adl_machines,
18305de5cf6SPierre-Louis Bossart 	.alt_machines           = snd_soc_acpi_intel_adl_sdw_machines,
18405de5cf6SPierre-Louis Bossart 	.use_acpi_target_states = true,
18505de5cf6SPierre-Louis Bossart 	.resindex_lpe_base      = 0,
18605de5cf6SPierre-Louis Bossart 	.resindex_pcicfg_base   = -1,
18705de5cf6SPierre-Louis Bossart 	.resindex_imr_base      = -1,
18805de5cf6SPierre-Louis Bossart 	.irqindex_host_ipc      = -1,
18905de5cf6SPierre-Louis Bossart 	.chip_info = &tgl_chip_info,
19005de5cf6SPierre-Louis Bossart 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
19105de5cf6SPierre-Louis Bossart 	.ipc_default		= SOF_IPC,
19205de5cf6SPierre-Louis Bossart 	.default_fw_path = {
19305de5cf6SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof",
19405de5cf6SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs/adl-n",
19505de5cf6SPierre-Louis Bossart 	},
19625bbc0c5SPeter Ujfalusi 	.default_lib_path = {
19725bbc0c5SPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/adl-n",
19825bbc0c5SPeter Ujfalusi 	},
19905de5cf6SPierre-Louis Bossart 	.default_tplg_path = {
20005de5cf6SPierre-Louis Bossart 		[SOF_IPC] = "intel/sof-tplg",
20105de5cf6SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
20205de5cf6SPierre-Louis Bossart 	},
20305de5cf6SPierre-Louis Bossart 	.default_fw_filename = {
20405de5cf6SPierre-Louis Bossart 		[SOF_IPC] = "sof-adl-n.ri",
20505de5cf6SPierre-Louis Bossart 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
20605de5cf6SPierre-Louis Bossart 	},
20705de5cf6SPierre-Louis Bossart 	.nocodec_tplg_filename = "sof-adl-nocodec.tplg",
20805de5cf6SPierre-Louis Bossart 	.ops = &sof_tgl_ops,
20905de5cf6SPierre-Louis Bossart 	.ops_init = sof_tgl_ops_init,
210*9eb2b4caSRanjani Sridharan 	.ops_free = hda_ops_free,
21105de5cf6SPierre-Louis Bossart };
21205de5cf6SPierre-Louis Bossart 
21363d375b9SKai Vehmanen static const struct sof_dev_desc rpls_desc = {
21463d375b9SKai Vehmanen 	.machines               = snd_soc_acpi_intel_rpl_machines,
21563d375b9SKai Vehmanen 	.alt_machines           = snd_soc_acpi_intel_rpl_sdw_machines,
21663d375b9SKai Vehmanen 	.use_acpi_target_states	= true,
21763d375b9SKai Vehmanen 	.resindex_lpe_base      = 0,
21863d375b9SKai Vehmanen 	.resindex_pcicfg_base   = -1,
21963d375b9SKai Vehmanen 	.resindex_imr_base      = -1,
22063d375b9SKai Vehmanen 	.irqindex_host_ipc      = -1,
22163d375b9SKai Vehmanen 	.chip_info = &adls_chip_info,
22263d375b9SKai Vehmanen 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
22363d375b9SKai Vehmanen 	.ipc_default		= SOF_IPC,
22463d375b9SKai Vehmanen 	.default_fw_path = {
22563d375b9SKai Vehmanen 		[SOF_IPC] = "intel/sof",
22663d375b9SKai Vehmanen 		[SOF_INTEL_IPC4] = "intel/avs/rpl-s",
22763d375b9SKai Vehmanen 	},
228cd6f2a2eSPeter Ujfalusi 	.default_lib_path = {
229cd6f2a2eSPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/rpl-s",
230cd6f2a2eSPeter Ujfalusi 	},
23163d375b9SKai Vehmanen 	.default_tplg_path = {
23263d375b9SKai Vehmanen 		[SOF_IPC] = "intel/sof-tplg",
23363d375b9SKai Vehmanen 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
23463d375b9SKai Vehmanen 	},
23563d375b9SKai Vehmanen 	.default_fw_filename = {
23663d375b9SKai Vehmanen 		[SOF_IPC] = "sof-rpl-s.ri",
23763d375b9SKai Vehmanen 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
23863d375b9SKai Vehmanen 	},
23963d375b9SKai Vehmanen 	.nocodec_tplg_filename = "sof-rpl-nocodec.tplg",
24063d375b9SKai Vehmanen 	.ops = &sof_tgl_ops,
24163d375b9SKai Vehmanen 	.ops_init = sof_tgl_ops_init,
24263d375b9SKai Vehmanen };
24363d375b9SKai Vehmanen 
24463d375b9SKai Vehmanen static const struct sof_dev_desc rpl_desc = {
24563d375b9SKai Vehmanen 	.machines               = snd_soc_acpi_intel_rpl_machines,
24663d375b9SKai Vehmanen 	.alt_machines           = snd_soc_acpi_intel_rpl_sdw_machines,
24763d375b9SKai Vehmanen 	.use_acpi_target_states = true,
24863d375b9SKai Vehmanen 	.resindex_lpe_base      = 0,
24963d375b9SKai Vehmanen 	.resindex_pcicfg_base   = -1,
25063d375b9SKai Vehmanen 	.resindex_imr_base      = -1,
25163d375b9SKai Vehmanen 	.irqindex_host_ipc      = -1,
25263d375b9SKai Vehmanen 	.chip_info = &tgl_chip_info,
25363d375b9SKai Vehmanen 	.ipc_supported_mask	= BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4),
25463d375b9SKai Vehmanen 	.ipc_default		= SOF_IPC,
25563d375b9SKai Vehmanen 	.default_fw_path = {
25663d375b9SKai Vehmanen 		[SOF_IPC] = "intel/sof",
25763d375b9SKai Vehmanen 		[SOF_INTEL_IPC4] = "intel/avs/rpl",
25863d375b9SKai Vehmanen 	},
259cd6f2a2eSPeter Ujfalusi 	.default_lib_path = {
260cd6f2a2eSPeter Ujfalusi 		[SOF_INTEL_IPC4] = "intel/avs-lib/rpl",
261cd6f2a2eSPeter Ujfalusi 	},
26263d375b9SKai Vehmanen 	.default_tplg_path = {
26363d375b9SKai Vehmanen 		[SOF_IPC] = "intel/sof-tplg",
26463d375b9SKai Vehmanen 		[SOF_INTEL_IPC4] = "intel/avs-tplg",
26563d375b9SKai Vehmanen 	},
26663d375b9SKai Vehmanen 	.default_fw_filename = {
26763d375b9SKai Vehmanen 		[SOF_IPC] = "sof-rpl.ri",
26863d375b9SKai Vehmanen 		[SOF_INTEL_IPC4] = "dsp_basefw.bin",
26963d375b9SKai Vehmanen 	},
27063d375b9SKai Vehmanen 	.nocodec_tplg_filename = "sof-rpl-nocodec.tplg",
27163d375b9SKai Vehmanen 	.ops = &sof_tgl_ops,
27263d375b9SKai Vehmanen 	.ops_init = sof_tgl_ops_init,
27363d375b9SKai Vehmanen };
27463d375b9SKai Vehmanen 
2758d4ba1beSPierre-Louis Bossart /* PCI IDs */
2768d4ba1beSPierre-Louis Bossart static const struct pci_device_id sof_pci_ids[] = {
2778d4ba1beSPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0xa0c8), /* TGL-LP */
2788d4ba1beSPierre-Louis Bossart 		.driver_data = (unsigned long)&tgl_desc},
2798d4ba1beSPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x43c8), /* TGL-H */
2808d4ba1beSPierre-Louis Bossart 		.driver_data = (unsigned long)&tglh_desc},
2818d4ba1beSPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x4b55), /* EHL */
2828d4ba1beSPierre-Louis Bossart 		.driver_data = (unsigned long)&ehl_desc},
2838d4ba1beSPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x4b58), /* EHL */
2848d4ba1beSPierre-Louis Bossart 		.driver_data = (unsigned long)&ehl_desc},
2858d4ba1beSPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x7ad0), /* ADL-S */
2868d4ba1beSPierre-Louis Bossart 		.driver_data = (unsigned long)&adls_desc},
287d66c57c5SGongjun Song 	{ PCI_DEVICE(0x8086, 0x7a50), /* RPL-S */
28863d375b9SKai Vehmanen 		.driver_data = (unsigned long)&rpls_desc},
2898d4ba1beSPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x51c8), /* ADL-P */
2904ad03f89SSathya Prakash M R 		.driver_data = (unsigned long)&adl_desc},
2916c84dae2SMuralidhar Reddy 	{ PCI_DEVICE(0x8086, 0x51c9), /* ADL-PS */
2926c84dae2SMuralidhar Reddy 		.driver_data = (unsigned long)&adl_desc},
293c2758721SGongjun Song 	{ PCI_DEVICE(0x8086, 0x51ca), /* RPL-P */
29463d375b9SKai Vehmanen 		.driver_data = (unsigned long)&rpl_desc},
295c2758721SGongjun Song 	{ PCI_DEVICE(0x8086, 0x51cb), /* RPL-P */
29663d375b9SKai Vehmanen 		.driver_data = (unsigned long)&rpl_desc},
2971f763d03SKai Vehmanen 	{ PCI_DEVICE(0x8086, 0x51cc), /* ADL-M */
2981f763d03SKai Vehmanen 		.driver_data = (unsigned long)&adl_desc},
2991c9a057eSPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x51cd), /* ADL-P */
3001c9a057eSPierre-Louis Bossart 		.driver_data = (unsigned long)&adl_desc},
301e2f0b927SPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x51ce), /* RPL-M */
302e2f0b927SPierre-Louis Bossart 		.driver_data = (unsigned long)&rpl_desc},
303e2f0b927SPierre-Louis Bossart 	{ PCI_DEVICE(0x8086, 0x51cf), /* RPL-PX */
304e2f0b927SPierre-Louis Bossart 		.driver_data = (unsigned long)&rpl_desc},
305cd57eb3cSKai Vehmanen 	{ PCI_DEVICE(0x8086, 0x54c8), /* ADL-N */
30605de5cf6SPierre-Louis Bossart 		.driver_data = (unsigned long)&adl_n_desc},
3078d4ba1beSPierre-Louis Bossart 	{ 0, }
3088d4ba1beSPierre-Louis Bossart };
3098d4ba1beSPierre-Louis Bossart MODULE_DEVICE_TABLE(pci, sof_pci_ids);
3108d4ba1beSPierre-Louis Bossart 
3118d4ba1beSPierre-Louis Bossart /* pci_driver definition */
3128d4ba1beSPierre-Louis Bossart static struct pci_driver snd_sof_pci_intel_tgl_driver = {
3138d4ba1beSPierre-Louis Bossart 	.name = "sof-audio-pci-intel-tgl",
3148d4ba1beSPierre-Louis Bossart 	.id_table = sof_pci_ids,
315194fe0fcSPierre-Louis Bossart 	.probe = hda_pci_intel_probe,
3168d4ba1beSPierre-Louis Bossart 	.remove = sof_pci_remove,
3178d4ba1beSPierre-Louis Bossart 	.shutdown = sof_pci_shutdown,
3188d4ba1beSPierre-Louis Bossart 	.driver = {
3198d4ba1beSPierre-Louis Bossart 		.pm = &sof_pci_pm,
3208d4ba1beSPierre-Louis Bossart 	},
3218d4ba1beSPierre-Louis Bossart };
3228d4ba1beSPierre-Louis Bossart module_pci_driver(snd_sof_pci_intel_tgl_driver);
3238d4ba1beSPierre-Louis Bossart 
3248d4ba1beSPierre-Louis Bossart MODULE_LICENSE("Dual BSD/GPL");
3258d4ba1beSPierre-Louis Bossart MODULE_IMPORT_NS(SND_SOC_SOF_INTEL_HDA_COMMON);
3268d4ba1beSPierre-Louis Bossart MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV);
327