blob: fd0c33de4a59d761c5b4c720b9f816a51df27df6 [file] [log] [blame]
Furquan Shaikh23e88132020-10-08 23:44:20 -07001/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <acpi/acpi_device.h>
4#include <device/device.h>
5#include <device/pci.h>
6#include <device/pci_ids.h>
7
8static const char *cnvi_wifi_acpi_name(const struct device *dev)
9{
10 return "CNVW";
11}
12
13static struct device_operations cnvi_wifi_ops = {
14 .read_resources = pci_dev_read_resources,
15 .set_resources = pci_dev_set_resources,
16 .enable_resources = pci_dev_enable_resources,
17 .ops_pci = &pci_dev_ops_pci,
18 .scan_bus = scan_static_bus,
19 .acpi_name = cnvi_wifi_acpi_name,
20 .acpi_fill_ssdt = acpi_device_write_pci_dev,
21};
22
23static const unsigned short wifi_pci_device_ids[] = {
Felix Singer43b7f412022-03-07 04:34:52 +010024 PCI_DID_INTEL_CML_LP_CNVI_WIFI,
25 PCI_DID_INTEL_CML_H_CNVI_WIFI,
26 PCI_DID_INTEL_CNL_LP_CNVI_WIFI,
27 PCI_DID_INTEL_CNL_H_CNVI_WIFI,
28 PCI_DID_INTEL_GLK_CNVI_WIFI,
29 PCI_DID_INTEL_ICL_CNVI_WIFI,
30 PCI_DID_INTEL_JSL_CNVI_WIFI_0,
31 PCI_DID_INTEL_JSL_CNVI_WIFI_1,
32 PCI_DID_INTEL_JSL_CNVI_WIFI_2,
33 PCI_DID_INTEL_JSL_CNVI_WIFI_3,
34 PCI_DID_INTEL_TGL_CNVI_WIFI_0,
35 PCI_DID_INTEL_TGL_CNVI_WIFI_1,
36 PCI_DID_INTEL_TGL_CNVI_WIFI_2,
37 PCI_DID_INTEL_TGL_CNVI_WIFI_3,
38 PCI_DID_INTEL_TGL_H_CNVI_WIFI_0,
39 PCI_DID_INTEL_TGL_H_CNVI_WIFI_1,
40 PCI_DID_INTEL_TGL_H_CNVI_WIFI_2,
41 PCI_DID_INTEL_TGL_H_CNVI_WIFI_3,
42 PCI_DID_INTEL_ADL_N_CNVI_WIFI_0,
43 PCI_DID_INTEL_ADL_N_CNVI_WIFI_1,
44 PCI_DID_INTEL_ADL_N_CNVI_WIFI_2,
45 PCI_DID_INTEL_ADL_N_CNVI_WIFI_3,
Furquan Shaikh23e88132020-10-08 23:44:20 -070046 0
47};
48
49static const struct pci_driver pch_cnvi_wifi __pci_driver = {
50 .ops = &cnvi_wifi_ops,
Felix Singer43b7f412022-03-07 04:34:52 +010051 .vendor = PCI_VID_INTEL,
Furquan Shaikh23e88132020-10-08 23:44:20 -070052 .devices = wifi_pci_device_ids,
53};
54
55static const char *cnvi_bt_acpi_name(const struct device *dev)
56{
57 return "CNVB";
58}
59
60static struct device_operations cnvi_bt_ops = {
61 .read_resources = pci_dev_read_resources,
62 .set_resources = pci_dev_set_resources,
63 .enable_resources = pci_dev_enable_resources,
64 .ops_pci = &pci_dev_ops_pci,
65 .scan_bus = scan_static_bus,
66 .acpi_name = cnvi_bt_acpi_name,
67 .acpi_fill_ssdt = acpi_device_write_pci_dev,
68};
69
70static const unsigned short bt_pci_device_ids[] = {
Felix Singer43b7f412022-03-07 04:34:52 +010071 PCI_DID_INTEL_TGL_CNVI_BT_0,
72 PCI_DID_INTEL_TGL_CNVI_BT_1,
73 PCI_DID_INTEL_TGL_CNVI_BT_2,
74 PCI_DID_INTEL_TGL_CNVI_BT_3,
75 PCI_DID_INTEL_TGL_H_CNVI_BT_0,
76 PCI_DID_INTEL_TGL_H_CNVI_BT_1,
77 PCI_DID_INTEL_TGL_H_CNVI_BT_2,
Furquan Shaikh23e88132020-10-08 23:44:20 -070078 0
79};
80
81static const struct pci_driver pch_cnvi_bt __pci_driver = {
82 .ops = &cnvi_bt_ops,
Felix Singer43b7f412022-03-07 04:34:52 +010083 .vendor = PCI_VID_INTEL,
Furquan Shaikh23e88132020-10-08 23:44:20 -070084 .devices = bt_pci_device_ids,
85};