linux/sound/soc/sof/intel/pci-cnl.c
<<
>>
Prefs
   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) 2018 Intel Corporation. All rights reserved.
   7//
   8// Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
   9//
  10
  11#include <linux/module.h>
  12#include <linux/pci.h>
  13#include <sound/soc-acpi.h>
  14#include <sound/soc-acpi-intel-match.h>
  15#include <sound/sof.h>
  16#include "../ops.h"
  17#include "../sof-pci-dev.h"
  18
  19/* platform specific devices */
  20#include "hda.h"
  21
  22static const struct sof_dev_desc cnl_desc = {
  23        .machines               = snd_soc_acpi_intel_cnl_machines,
  24        .alt_machines           = snd_soc_acpi_intel_cnl_sdw_machines,
  25        .use_acpi_target_states = true,
  26        .resindex_lpe_base      = 0,
  27        .resindex_pcicfg_base   = -1,
  28        .resindex_imr_base      = -1,
  29        .irqindex_host_ipc      = -1,
  30        .resindex_dma_base      = -1,
  31        .chip_info = &cnl_chip_info,
  32        .default_fw_path = "intel/sof",
  33        .default_tplg_path = "intel/sof-tplg",
  34        .default_fw_filename = "sof-cnl.ri",
  35        .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
  36        .ops = &sof_cnl_ops,
  37};
  38
  39static const struct sof_dev_desc cfl_desc = {
  40        .machines               = snd_soc_acpi_intel_cfl_machines,
  41        .alt_machines           = snd_soc_acpi_intel_cfl_sdw_machines,
  42        .use_acpi_target_states = true,
  43        .resindex_lpe_base      = 0,
  44        .resindex_pcicfg_base   = -1,
  45        .resindex_imr_base      = -1,
  46        .irqindex_host_ipc      = -1,
  47        .resindex_dma_base      = -1,
  48        .chip_info = &cnl_chip_info,
  49        .default_fw_path = "intel/sof",
  50        .default_tplg_path = "intel/sof-tplg",
  51        .default_fw_filename = "sof-cfl.ri",
  52        .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
  53        .ops = &sof_cnl_ops,
  54};
  55
  56static const struct sof_dev_desc cml_desc = {
  57        .machines               = snd_soc_acpi_intel_cml_machines,
  58        .alt_machines           = snd_soc_acpi_intel_cml_sdw_machines,
  59        .use_acpi_target_states = true,
  60        .resindex_lpe_base      = 0,
  61        .resindex_pcicfg_base   = -1,
  62        .resindex_imr_base      = -1,
  63        .irqindex_host_ipc      = -1,
  64        .resindex_dma_base      = -1,
  65        .chip_info = &cnl_chip_info,
  66        .default_fw_path = "intel/sof",
  67        .default_tplg_path = "intel/sof-tplg",
  68        .default_fw_filename = "sof-cml.ri",
  69        .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
  70        .ops = &sof_cnl_ops,
  71};
  72
  73/* PCI IDs */
  74static const struct pci_device_id sof_pci_ids[] = {
  75        { PCI_DEVICE(0x8086, 0x9dc8), /* CNL-LP */
  76                .driver_data = (unsigned long)&cnl_desc},
  77        { PCI_DEVICE(0x8086, 0xa348), /* CNL-H */
  78                .driver_data = (unsigned long)&cfl_desc},
  79        { PCI_DEVICE(0x8086, 0x02c8), /* CML-LP */
  80                .driver_data = (unsigned long)&cml_desc},
  81        { PCI_DEVICE(0x8086, 0x06c8), /* CML-H */
  82                .driver_data = (unsigned long)&cml_desc},
  83        { PCI_DEVICE(0x8086, 0xa3f0), /* CML-S */
  84                .driver_data = (unsigned long)&cml_desc},
  85        { 0, }
  86};
  87MODULE_DEVICE_TABLE(pci, sof_pci_ids);
  88
  89/* pci_driver definition */
  90static struct pci_driver snd_sof_pci_intel_cnl_driver = {
  91        .name = "sof-audio-pci-intel-cnl",
  92        .id_table = sof_pci_ids,
  93        .probe = hda_pci_intel_probe,
  94        .remove = sof_pci_remove,
  95        .shutdown = sof_pci_shutdown,
  96        .driver = {
  97                .pm = &sof_pci_pm,
  98        },
  99};
 100module_pci_driver(snd_sof_pci_intel_cnl_driver);
 101
 102MODULE_LICENSE("Dual BSD/GPL");
 103MODULE_IMPORT_NS(SND_SOC_SOF_INTEL_HDA_COMMON);
 104MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV);
 105