blob: 18897000b34c719d710b94880ed808ef69274808 [file] [log] [blame]
Subrata Banik41934bf2020-08-08 12:34:25 +05301/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <device/device.h>
4#include <device/pci.h>
5#include <device/pci_ids.h>
6
7static void sata_final(struct device *dev)
8{
9 /* Set Bus Master */
10 pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER);
11}
12
13static struct device_operations sata_ops = {
14 .read_resources = pci_dev_read_resources,
15 .set_resources = pci_dev_set_resources,
16 .enable_resources = pci_dev_enable_resources,
17 .final = sata_final,
18 .ops_pci = &pci_dev_ops_pci,
19};
20
21static const unsigned short pci_device_ids[] = {
22 PCI_DEVICE_ID_INTEL_SPT_U_SATA,
23 PCI_DEVICE_ID_INTEL_SPT_U_Y_PREMIUM_SATA,
24 PCI_DEVICE_ID_INTEL_SPT_KBL_SATA,
25 PCI_DEVICE_ID_INTEL_LWB_SATA_AHCI,
26 PCI_DEVICE_ID_INTEL_LWB_SSATA_AHCI,
27 PCI_DEVICE_ID_INTEL_LWB_SATA_RAID,
28 PCI_DEVICE_ID_INTEL_LWB_SSATA_RAID,
29 PCI_DEVICE_ID_INTEL_LWB_SATA_AHCI_SUPER,
30 PCI_DEVICE_ID_INTEL_LWB_SSATA_AHCI_SUPER,
31 PCI_DEVICE_ID_INTEL_LWB_SATA_RAID_SUPER,
32 PCI_DEVICE_ID_INTEL_LWB_SSATA_RAID_SUPER,
33 PCI_DEVICE_ID_INTEL_LWB_SATA_ALT,
34 PCI_DEVICE_ID_INTEL_LWB_SATA_ALT_RST,
35 PCI_DEVICE_ID_INTEL_LWB_SSATA_ALT,
36 PCI_DEVICE_ID_INTEL_LWB_SSATA_ALT_RST,
37 PCI_DEVICE_ID_INTEL_CNL_SATA,
38 PCI_DEVICE_ID_INTEL_CNL_PREMIUM_SATA,
39 PCI_DEVICE_ID_INTEL_CNP_CMP_COMPAT_SATA,
40 PCI_DEVICE_ID_INTEL_CNP_H_SATA,
41 PCI_DEVICE_ID_INTEL_CNP_LP_SATA,
42 PCI_DEVICE_ID_INTEL_ICP_U_SATA,
43 PCI_DEVICE_ID_INTEL_CMP_SATA,
44 PCI_DEVICE_ID_INTEL_CMP_PREMIUM_SATA,
45 PCI_DEVICE_ID_INTEL_CMP_LP_SATA,
46 PCI_DEVICE_ID_INTEL_CMP_H_SATA,
47 PCI_DEVICE_ID_INTEL_CMP_H_HALO_SATA,
48 PCI_DEVICE_ID_INTEL_CMP_H_PREMIUM_SATA,
49 PCI_DEVICE_ID_INTEL_TGP_LP_SATA,
50 PCI_DEVICE_ID_INTEL_TGP_SATA,
51 PCI_DEVICE_ID_INTEL_TGP_PREMIUM_SATA,
52 PCI_DEVICE_ID_INTEL_TGP_COMPAT_SATA,
53 PCI_DEVICE_ID_INTEL_MCC_AHCI_SATA,
54 PCI_DEVICE_ID_INTEL_JSP_SATA_1,
55 PCI_DEVICE_ID_INTEL_JSP_SATA_2,
56 PCI_DEVICE_ID_INTEL_ADP_P_SATA_1,
57 PCI_DEVICE_ID_INTEL_ADP_P_SATA_2,
58 PCI_DEVICE_ID_INTEL_ADP_P_SATA_3,
59 PCI_DEVICE_ID_INTEL_ADP_P_SATA_4,
60 PCI_DEVICE_ID_INTEL_ADP_P_SATA_5,
61 PCI_DEVICE_ID_INTEL_ADP_P_SATA_6,
62 PCI_DEVICE_ID_INTEL_ADP_S_SATA_1,
63 PCI_DEVICE_ID_INTEL_ADP_S_SATA_2,
64 PCI_DEVICE_ID_INTEL_ADP_S_SATA_3,
65 PCI_DEVICE_ID_INTEL_ADP_S_SATA_4,
66 PCI_DEVICE_ID_INTEL_ADP_S_SATA_5,
67 PCI_DEVICE_ID_INTEL_ADP_S_SATA_6,
68 0
69};
70
71static const struct pci_driver pch_sata __pci_driver = {
72 .ops = &sata_ops,
73 .vendor = PCI_VENDOR_ID_INTEL,
74 .devices = pci_device_ids,
75};