blob: 1311bcd6b2e8623972dfacba3ed6254c6ab3e32d [file] [log] [blame]
Angel Pons0612b272020-04-05 15:46:56 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Duncan Laurie93142a42018-01-08 17:41:58 -08002
Duncan Laurie93142a42018-01-08 17:41:58 -08003#include <device/device.h>
4#include <device/azalia_device.h>
5#include <device/pci.h>
6#include <device/pci_ids.h>
Duncan Laurie93142a42018-01-08 17:41:58 -08007
8static void hda_init(struct device *dev)
9{
Patrick Rudolph985009a2021-02-16 10:10:53 +010010 if (CONFIG(SOC_INTEL_COMMON_BLOCK_HDA_VERB))
11 azalia_audio_init(dev);
Duncan Laurie93142a42018-01-08 17:41:58 -080012}
13
14static struct device_operations hda_ops = {
Elyes HAOUAS1d191272018-11-27 12:23:48 +010015 .read_resources = pci_dev_read_resources,
16 .set_resources = pci_dev_set_resources,
17 .enable_resources = pci_dev_enable_resources,
Elyes HAOUAS1d191272018-11-27 12:23:48 +010018 .init = hda_init,
Duncan Laurie93142a42018-01-08 17:41:58 -080019 .ops_pci = &pci_dev_ops_pci,
Duncan Laurie10f55a22020-04-29 12:17:54 -070020 .scan_bus = scan_static_bus
Duncan Laurie93142a42018-01-08 17:41:58 -080021};
22
23static const unsigned short pci_device_ids[] = {
Felix Singer43b7f412022-03-07 04:34:52 +010024 PCI_DID_INTEL_SKL_AUDIO,
25 PCI_DID_INTEL_SKL_H_AUDIO,
26 PCI_DID_INTEL_LWB_AUDIO,
27 PCI_DID_INTEL_LWB_AUDIO_SUPER,
28 PCI_DID_INTEL_KBL_AUDIO,
29 PCI_DID_INTEL_CNL_AUDIO,
30 PCI_DID_INTEL_CNP_H_AUDIO,
31 PCI_DID_INTEL_ICL_AUDIO,
32 PCI_DID_INTEL_CMP_AUDIO,
33 PCI_DID_INTEL_CMP_H_AUDIO,
34 PCI_DID_INTEL_BSW_AUDIO,
35 PCI_DID_INTEL_TGL_AUDIO,
36 PCI_DID_INTEL_TGL_H_AUDIO,
37 PCI_DID_INTEL_MCC_AUDIO,
38 PCI_DID_INTEL_JSP_AUDIO,
39 PCI_DID_INTEL_ADP_P_AUDIO,
40 PCI_DID_INTEL_ADP_S_AUDIO_1,
41 PCI_DID_INTEL_ADP_S_AUDIO_2,
42 PCI_DID_INTEL_ADP_S_AUDIO_3,
43 PCI_DID_INTEL_ADP_S_AUDIO_4,
44 PCI_DID_INTEL_ADP_S_AUDIO_5,
45 PCI_DID_INTEL_ADP_S_AUDIO_6,
46 PCI_DID_INTEL_ADP_S_AUDIO_7,
47 PCI_DID_INTEL_ADP_S_AUDIO_8,
48 PCI_DID_INTEL_ADP_M_N_AUDIO_1,
49 PCI_DID_INTEL_ADP_M_N_AUDIO_2,
50 PCI_DID_INTEL_ADP_M_N_AUDIO_3,
51 PCI_DID_INTEL_ADP_M_N_AUDIO_4,
52 PCI_DID_INTEL_ADP_M_N_AUDIO_5,
53 PCI_DID_INTEL_ADP_M_N_AUDIO_6,
54 PCI_DID_INTEL_ADP_M_N_AUDIO_7,
Duncan Laurie93142a42018-01-08 17:41:58 -080055 0
56};
57
58static const struct pci_driver pch_hda __pci_driver = {
59 .ops = &hda_ops,
Felix Singer43b7f412022-03-07 04:34:52 +010060 .vendor = PCI_VID_INTEL,
Duncan Laurie93142a42018-01-08 17:41:58 -080061 .devices = pci_device_ids,
62};