.. | .. |
---|
1 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|
2 | 2 | /* |
---|
3 | | - * Thunderbolt Cactus Ridge driver - NHI driver |
---|
| 3 | + * Thunderbolt driver - NHI driver |
---|
4 | 4 | * |
---|
5 | 5 | * Copyright (c) 2014 Andreas Noever <andreas.noever@gmail.com> |
---|
| 6 | + * Copyright (C) 2018, Intel Corporation |
---|
6 | 7 | */ |
---|
7 | 8 | |
---|
8 | 9 | #ifndef DSL3510_H_ |
---|
.. | .. |
---|
29 | 30 | int nhi_mailbox_cmd(struct tb_nhi *nhi, enum nhi_mailbox_cmd cmd, u32 data); |
---|
30 | 31 | enum nhi_fw_mode nhi_mailbox_mode(struct tb_nhi *nhi); |
---|
31 | 32 | |
---|
| 33 | +/** |
---|
| 34 | + * struct tb_nhi_ops - NHI specific optional operations |
---|
| 35 | + * @init: NHI specific initialization |
---|
| 36 | + * @suspend_noirq: NHI specific suspend_noirq hook |
---|
| 37 | + * @resume_noirq: NHI specific resume_noirq hook |
---|
| 38 | + * @runtime_suspend: NHI specific runtime_suspend hook |
---|
| 39 | + * @runtime_resume: NHI specific runtime_resume hook |
---|
| 40 | + * @shutdown: NHI specific shutdown |
---|
| 41 | + */ |
---|
| 42 | +struct tb_nhi_ops { |
---|
| 43 | + int (*init)(struct tb_nhi *nhi); |
---|
| 44 | + int (*suspend_noirq)(struct tb_nhi *nhi, bool wakeup); |
---|
| 45 | + int (*resume_noirq)(struct tb_nhi *nhi); |
---|
| 46 | + int (*runtime_suspend)(struct tb_nhi *nhi); |
---|
| 47 | + int (*runtime_resume)(struct tb_nhi *nhi); |
---|
| 48 | + void (*shutdown)(struct tb_nhi *nhi); |
---|
| 49 | +}; |
---|
| 50 | + |
---|
| 51 | +extern const struct tb_nhi_ops icl_nhi_ops; |
---|
| 52 | + |
---|
32 | 53 | /* |
---|
33 | 54 | * PCI IDs used in this driver from Win Ridge forward. There is no |
---|
34 | 55 | * need for the PCI quirk anymore as we will use ICM also on Apple |
---|
35 | 56 | * hardware. |
---|
36 | 57 | */ |
---|
| 58 | +#define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_2C_NHI 0x1134 |
---|
| 59 | +#define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_4C_NHI 0x1137 |
---|
37 | 60 | #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_NHI 0x157d |
---|
38 | 61 | #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_BRIDGE 0x157e |
---|
39 | 62 | #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_NHI 0x15bf |
---|
.. | .. |
---|
50 | 73 | #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_BRIDGE 0x15ea |
---|
51 | 74 | #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_NHI 0x15eb |
---|
52 | 75 | #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_BRIDGE 0x15ef |
---|
| 76 | +#define PCI_DEVICE_ID_INTEL_ICL_NHI1 0x8a0d |
---|
| 77 | +#define PCI_DEVICE_ID_INTEL_ICL_NHI0 0x8a17 |
---|
| 78 | +#define PCI_DEVICE_ID_INTEL_TGL_NHI0 0x9a1b |
---|
| 79 | +#define PCI_DEVICE_ID_INTEL_TGL_NHI1 0x9a1d |
---|
| 80 | +#define PCI_DEVICE_ID_INTEL_TGL_H_NHI0 0x9a1f |
---|
| 81 | +#define PCI_DEVICE_ID_INTEL_TGL_H_NHI1 0x9a21 |
---|
| 82 | + |
---|
| 83 | +#define PCI_CLASS_SERIAL_USB_USB4 0x0c0340 |
---|
53 | 84 | |
---|
54 | 85 | #endif |
---|