2 * This file is part of the coreboot project.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
15 #include <device/device.h>
16 #include <device/pci.h>
17 #include <device/pci_ids.h>
18 #include <intelblocks/xdci.h>
19 #include <security/vboot/vboot_common.h>
21 __weak
void soc_xdci_init(struct device
*dev
) { /* no-op */ }
23 int xdci_can_enable(void)
25 return vboot_can_enable_udc();
28 static struct device_operations usb_xdci_ops
= {
29 .read_resources
= pci_dev_read_resources
,
30 .set_resources
= pci_dev_set_resources
,
31 .enable_resources
= pci_dev_enable_resources
,
32 .init
= soc_xdci_init
,
33 .ops_pci
= &pci_dev_ops_pci
,
36 static const unsigned short pci_device_ids
[] = {
37 PCI_DEVICE_ID_INTEL_APL_XDCI
,
38 PCI_DEVICE_ID_INTEL_CNL_LP_XDCI
,
39 PCI_DEVICE_ID_INTEL_GLK_XDCI
,
40 PCI_DEVICE_ID_INTEL_SPT_LP_XDCI
,
41 PCI_DEVICE_ID_INTEL_CNP_H_XDCI
,
42 PCI_DEVICE_ID_INTEL_ICP_LP_XDCI
,
43 PCI_DEVICE_ID_INTEL_CMP_LP_XDCI
,
44 PCI_DEVICE_ID_INTEL_CMP_H_XDCI
,
45 PCI_DEVICE_ID_INTEL_TGP_LP_XDCI
,
46 PCI_DEVICE_ID_INTEL_MCC_XDCI
,
47 PCI_DEVICE_ID_INTEL_JSP_XDCI
,
51 static const struct pci_driver pch_usb_xdci __pci_driver
= {
53 .vendor
= PCI_VENDOR_ID_INTEL
,
54 .devices
= pci_device_ids
,