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