File Index
Files and directories
Sign in
FILE

pci-ptl.c

File preview with syntax highlighting.

linux-6.19.14/sound/soc/sof/intel/pci-ptl.c C
  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 "ptl.h"
 20
 21/* PantherLake ops */
 22static struct snd_sof_dsp_ops sof_ptl_ops;
 23
 24static int sof_ptl_ops_init(struct snd_sof_dev *sdev)
 25{
 26	return sof_ptl_set_ops(sdev, &sof_ptl_ops);
 27}
 28
 29static const struct sof_dev_desc ptl_desc = {
 30	.use_acpi_target_states	= true,
 31	.machines               = snd_soc_acpi_intel_ptl_machines,
 32	.alt_machines		= snd_soc_acpi_intel_ptl_sdw_machines,
 33	.resindex_lpe_base      = 0,
 34	.resindex_pcicfg_base   = -1,
 35	.resindex_imr_base      = -1,
 36	.irqindex_host_ipc      = -1,
 37	.chip_info		= &ptl_chip_info,
 38	.ipc_supported_mask	= BIT(SOF_IPC_TYPE_4),
 39	.ipc_default		= SOF_IPC_TYPE_4,
 40	.dspless_mode_supported	= true,
 41	.default_fw_path = {
 42		[SOF_IPC_TYPE_4] = "intel/sof-ipc4/ptl",
 43	},
 44	.default_lib_path = {
 45		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-lib/ptl",
 46	},
 47	.default_tplg_path = {
 48		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-tplg",
 49	},
 50	.default_fw_filename = {
 51		[SOF_IPC_TYPE_4] = "sof-ptl.ri",
 52	},
 53	.nocodec_tplg_filename = "sof-ptl-nocodec.tplg",
 54	.ops = &sof_ptl_ops,
 55	.ops_init = sof_ptl_ops_init,
 56};
 57
 58static const struct sof_dev_desc wcl_desc = {
 59	.use_acpi_target_states	= true,
 60	.machines               = snd_soc_acpi_intel_ptl_machines,
 61	.alt_machines		= snd_soc_acpi_intel_ptl_sdw_machines,
 62	.resindex_lpe_base      = 0,
 63	.resindex_pcicfg_base   = -1,
 64	.resindex_imr_base      = -1,
 65	.irqindex_host_ipc      = -1,
 66	.chip_info		= &wcl_chip_info,
 67	.ipc_supported_mask	= BIT(SOF_IPC_TYPE_4),
 68	.ipc_default		= SOF_IPC_TYPE_4,
 69	.dspless_mode_supported	= true,
 70	.default_fw_path = {
 71		[SOF_IPC_TYPE_4] = "intel/sof-ipc4/wcl",
 72	},
 73	.default_lib_path = {
 74		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-lib/wcl",
 75	},
 76	.default_tplg_path = {
 77		[SOF_IPC_TYPE_4] = "intel/sof-ipc4-tplg",
 78	},
 79	.default_fw_filename = {
 80		[SOF_IPC_TYPE_4] = "sof-wcl.ri",
 81	},
 82	.nocodec_tplg_filename = "sof-ptl-nocodec.tplg",
 83	.ops = &sof_ptl_ops,
 84	.ops_init = sof_ptl_ops_init,
 85};
 86
 87/* PCI IDs */
 88static const struct pci_device_id sof_pci_ids[] = {
 89	{ PCI_DEVICE_DATA(INTEL, HDA_PTL, &ptl_desc) }, /* PTL */
 90	{ PCI_DEVICE_DATA(INTEL, HDA_PTL_H, &ptl_desc) }, /* PTL-H */
 91	{ PCI_DEVICE_DATA(INTEL, HDA_WCL, &wcl_desc) }, /* WCL */
 92	{ 0, }
 93};
 94MODULE_DEVICE_TABLE(pci, sof_pci_ids);
 95
 96/* pci_driver definition */
 97static struct pci_driver snd_sof_pci_intel_ptl_driver = {
 98	.name = "sof-audio-pci-intel-ptl",
 99	.id_table = sof_pci_ids,
100	.probe = hda_pci_intel_probe,
101	.remove = sof_pci_remove,
102	.shutdown = sof_pci_shutdown,
103	.driver = {
104		.pm = pm_ptr(&sof_pci_pm),
105	},
106};
107module_pci_driver(snd_sof_pci_intel_ptl_driver);
108
109MODULE_LICENSE("Dual BSD/GPL");
110MODULE_DESCRIPTION("SOF support for PantherLake platforms");
111MODULE_IMPORT_NS("SND_SOC_SOF_INTEL_HDA_GENERIC");
112MODULE_IMPORT_NS("SND_SOC_SOF_INTEL_HDA_COMMON");
113MODULE_IMPORT_NS("SND_SOC_SOF_PCI_DEV");
~/ Read-only file preview.