thunderbolt: Add support for Intel Maple Ridge
authorMika Westerberg <mika.westerberg@linux.intel.com>
Fri, 31 Jan 2020 16:24:30 +0000 (19:24 +0300)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Mon, 30 Nov 2020 11:39:24 +0000 (14:39 +0300)
Maple Ridge is first discrete USB4 host controller from Intel. It comes
with firmware based connection manager and the flows are similar as used
in Intel Titan Ridge.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/thunderbolt/icm.c
drivers/thunderbolt/nhi.h

index 35935c1..adc7b61 100644 (file)
@@ -2499,6 +2499,17 @@ struct tb *icm_probe(struct tb_nhi *nhi)
                icm->rtd3_veto = icm_icl_rtd3_veto;
                tb->cm_ops = &icm_icl_ops;
                break;
+
+       case PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_4C_NHI:
+               icm->is_supported = icm_tgl_is_supported;
+               icm->get_mode = icm_ar_get_mode;
+               icm->driver_ready = icm_tr_driver_ready;
+               icm->device_connected = icm_tr_device_connected;
+               icm->device_disconnected = icm_tr_device_disconnected;
+               icm->xdomain_connected = icm_tr_xdomain_connected;
+               icm->xdomain_disconnected = icm_tr_xdomain_disconnected;
+               tb->cm_ops = &icm_tr_ops;
+               break;
        }
 
        if (!icm->is_supported || !icm->is_supported(tb)) {
index 80162e4..ffe0531 100644 (file)
@@ -55,6 +55,7 @@ extern const struct tb_nhi_ops icl_nhi_ops;
  * need for the PCI quirk anymore as we will use ICM also on Apple
  * hardware.
  */
+#define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_4C_NHI         0x1137
 #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_NHI            0x157d
 #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_BRIDGE         0x157e
 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_NHI                0x15bf