blob: 5509df22b9800f9c68df19aa1c5104ea49e16f66 [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[] = {
Subrata Banika3acac12022-09-14 18:15:20 -070024 PCI_DID_INTEL_MTL_CNVI_WIFI_0,
25 PCI_DID_INTEL_MTL_CNVI_WIFI_1,
26 PCI_DID_INTEL_MTL_CNVI_WIFI_2,
27 PCI_DID_INTEL_MTL_CNVI_WIFI_3,
Felix Singer43b7f412022-03-07 04:34:52 +010028 PCI_DID_INTEL_CML_LP_CNVI_WIFI,
29 PCI_DID_INTEL_CML_H_CNVI_WIFI,
30 PCI_DID_INTEL_CNL_LP_CNVI_WIFI,
31 PCI_DID_INTEL_CNL_H_CNVI_WIFI,
32 PCI_DID_INTEL_GLK_CNVI_WIFI,
Felix Singer43b7f412022-03-07 04:34:52 +010033 PCI_DID_INTEL_JSL_CNVI_WIFI_0,
34 PCI_DID_INTEL_JSL_CNVI_WIFI_1,
35 PCI_DID_INTEL_JSL_CNVI_WIFI_2,
36 PCI_DID_INTEL_JSL_CNVI_WIFI_3,
37 PCI_DID_INTEL_TGL_CNVI_WIFI_0,
38 PCI_DID_INTEL_TGL_CNVI_WIFI_1,
39 PCI_DID_INTEL_TGL_CNVI_WIFI_2,
40 PCI_DID_INTEL_TGL_CNVI_WIFI_3,
41 PCI_DID_INTEL_TGL_H_CNVI_WIFI_0,
42 PCI_DID_INTEL_TGL_H_CNVI_WIFI_1,
43 PCI_DID_INTEL_TGL_H_CNVI_WIFI_2,
44 PCI_DID_INTEL_TGL_H_CNVI_WIFI_3,
Kapil Porwal843699e2022-12-07 16:09:32 +053045 PCI_DID_INTEL_ADL_P_CNVI_WIFI_0,
46 PCI_DID_INTEL_ADL_P_CNVI_WIFI_1,
Kapil Porwal0dd44942022-12-19 09:18:39 +053047 PCI_DID_INTEL_ADL_P_CNVI_WIFI_2,
48 PCI_DID_INTEL_ADL_P_CNVI_WIFI_3,
Kapil Porwal843699e2022-12-07 16:09:32 +053049 PCI_DID_INTEL_ADL_S_CNVI_WIFI_0,
Kapil Porwal0dd44942022-12-19 09:18:39 +053050 PCI_DID_INTEL_ADL_S_CNVI_WIFI_1,
51 PCI_DID_INTEL_ADL_S_CNVI_WIFI_2,
52 PCI_DID_INTEL_ADL_S_CNVI_WIFI_3,
Felix Singer43b7f412022-03-07 04:34:52 +010053 PCI_DID_INTEL_ADL_N_CNVI_WIFI_0,
54 PCI_DID_INTEL_ADL_N_CNVI_WIFI_1,
55 PCI_DID_INTEL_ADL_N_CNVI_WIFI_2,
56 PCI_DID_INTEL_ADL_N_CNVI_WIFI_3,
Furquan Shaikh23e88132020-10-08 23:44:20 -070057 0
58};
59
60static const struct pci_driver pch_cnvi_wifi __pci_driver = {
61 .ops = &cnvi_wifi_ops,
Felix Singer43b7f412022-03-07 04:34:52 +010062 .vendor = PCI_VID_INTEL,
Furquan Shaikh23e88132020-10-08 23:44:20 -070063 .devices = wifi_pci_device_ids,
64};
65
66static const char *cnvi_bt_acpi_name(const struct device *dev)
67{
68 return "CNVB";
69}
70
71static struct device_operations cnvi_bt_ops = {
72 .read_resources = pci_dev_read_resources,
73 .set_resources = pci_dev_set_resources,
74 .enable_resources = pci_dev_enable_resources,
75 .ops_pci = &pci_dev_ops_pci,
76 .scan_bus = scan_static_bus,
77 .acpi_name = cnvi_bt_acpi_name,
78 .acpi_fill_ssdt = acpi_device_write_pci_dev,
79};
80
81static const unsigned short bt_pci_device_ids[] = {
Felix Singer43b7f412022-03-07 04:34:52 +010082 PCI_DID_INTEL_TGL_CNVI_BT_0,
83 PCI_DID_INTEL_TGL_CNVI_BT_1,
84 PCI_DID_INTEL_TGL_CNVI_BT_2,
85 PCI_DID_INTEL_TGL_CNVI_BT_3,
86 PCI_DID_INTEL_TGL_H_CNVI_BT_0,
87 PCI_DID_INTEL_TGL_H_CNVI_BT_1,
88 PCI_DID_INTEL_TGL_H_CNVI_BT_2,
Furquan Shaikh23e88132020-10-08 23:44:20 -070089 0
90};
91
92static const struct pci_driver pch_cnvi_bt __pci_driver = {
93 .ops = &cnvi_bt_ops,
Felix Singer43b7f412022-03-07 04:34:52 +010094 .vendor = PCI_VID_INTEL,
Furquan Shaikh23e88132020-10-08 23:44:20 -070095 .devices = bt_pci_device_ids,
96};