xref: /openbmc/linux/drivers/thunderbolt/nhi.h (revision 28efb0046512e8a13ed9f9bdf0d68d10bbfbe9cf)
1 /*
2  * Thunderbolt Cactus Ridge driver - NHI driver
3  *
4  * Copyright (c) 2014 Andreas Noever <andreas.noever@gmail.com>
5  */
6 
7 #ifndef DSL3510_H_
8 #define DSL3510_H_
9 
10 #include <linux/thunderbolt.h>
11 
12 enum nhi_fw_mode {
13 	NHI_FW_SAFE_MODE,
14 	NHI_FW_AUTH_MODE,
15 	NHI_FW_EP_MODE,
16 	NHI_FW_CM_MODE,
17 };
18 
19 enum nhi_mailbox_cmd {
20 	NHI_MAILBOX_SAVE_DEVS = 0x05,
21 	NHI_MAILBOX_DISCONNECT_PCIE_PATHS = 0x06,
22 	NHI_MAILBOX_DRV_UNLOADS = 0x07,
23 	NHI_MAILBOX_DISCONNECT_PA = 0x10,
24 	NHI_MAILBOX_DISCONNECT_PB = 0x11,
25 	NHI_MAILBOX_ALLOW_ALL_DEVS = 0x23,
26 };
27 
28 int nhi_mailbox_cmd(struct tb_nhi *nhi, enum nhi_mailbox_cmd cmd, u32 data);
29 enum nhi_fw_mode nhi_mailbox_mode(struct tb_nhi *nhi);
30 
31 /*
32  * PCI IDs used in this driver from Win Ridge forward. There is no
33  * need for the PCI quirk anymore as we will use ICM also on Apple
34  * hardware.
35  */
36 #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_NHI            0x157d
37 #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_BRIDGE         0x157e
38 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_NHI		0x15bf
39 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_BRIDGE	0x15c0
40 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_NHI	0x15d2
41 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_BRIDGE	0x15d3
42 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_NHI	0x15d9
43 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_BRIDGE	0x15da
44 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_USBONLY_NHI	0x15dc
45 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_USBONLY_NHI	0x15dd
46 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_USBONLY_NHI	0x15de
47 
48 #endif
49