1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
2 //
3 // This file is provided under a dual BSD/GPLv2 license.  When using or
4 // redistributing this file, you may do so under either license.
5 //
6 // Copyright(c) 2024 Intel Corporation.
7 //
8 
9 #include <linux/module.h>
10 #include <linux/pci.h>
11 #include <sound/soc-acpi.h>
12 #include <sound/soc-acpi-intel-match.h>
13 #include <sound/sof.h>
14 #include "../ops.h"
15 #include "../sof-pci-dev.h"
16 
17 /* platform specific devices */
18 #include "hda.h"
19 #include "mtl.h"
20 
21 static const struct sof_dev_desc ptl_desc = {
22 	.use_acpi_target_states	= true,
23 	.machines               = snd_soc_acpi_intel_ptl_machines,
24 	.alt_machines		= snd_soc_acpi_intel_ptl_sdw_machines,
25 	.resindex_lpe_base      = 0,
26 	.resindex_pcicfg_base   = -1,
27 	.resindex_imr_base      = -1,
28 	.irqindex_host_ipc      = -1,
29 	.chip_info		= &ptl_chip_info,
30 	.ipc_supported_mask	= BIT(SOF_IPC_TYPE_4),
31 	.ipc_default		= SOF_IPC_TYPE_4,
32 	.dspless_mode_supported	= true,
33 	.default_fw_path = {
34 		[SOF_IPC_TYPE_4] = "intel/sof-ipc4/ptl",
35 	},
36 	.default_lib_path = {
37 		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-lib/ptl",
38 	},
39 	.default_tplg_path = {
40 		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-tplg",
41 	},
42 	.default_fw_filename = {
43 		[SOF_IPC_TYPE_4] = "sof-ptl.ri",
44 	},
45 	.nocodec_tplg_filename = "sof-ptl-nocodec.tplg",
46 	.ops = &sof_lnl_ops,
47 	.ops_init = sof_lnl_ops_init,
48 };
49 
50 /* PCI IDs */
51 static const struct pci_device_id sof_pci_ids[] = {
52 	{ PCI_DEVICE_DATA(INTEL, HDA_PTL, &ptl_desc) }, /* PTL */
53 	{ 0, }
54 };
55 MODULE_DEVICE_TABLE(pci, sof_pci_ids);
56 
57 /* pci_driver definition */
58 static struct pci_driver snd_sof_pci_intel_ptl_driver = {
59 	.name = "sof-audio-pci-intel-ptl",
60 	.id_table = sof_pci_ids,
61 	.probe = hda_pci_intel_probe,
62 	.remove = sof_pci_remove,
63 	.shutdown = sof_pci_shutdown,
64 	.driver = {
65 		.pm = &sof_pci_pm,
66 	},
67 };
68 module_pci_driver(snd_sof_pci_intel_ptl_driver);
69 
70 MODULE_LICENSE("Dual BSD/GPL");
71 MODULE_DESCRIPTION("SOF support for PantherLake platforms");
72 MODULE_IMPORT_NS(SND_SOC_SOF_INTEL_HDA_GENERIC);
73 MODULE_IMPORT_NS(SND_SOC_SOF_INTEL_HDA_COMMON);
74 MODULE_IMPORT_NS(SND_SOC_SOF_INTEL_LNL);
75 MODULE_IMPORT_NS(SND_SOC_SOF_INTEL_MTL);
76 MODULE_IMPORT_NS(SND_SOC_SOF_HDA_MLINK);
77 MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV);
78