0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef _TB_REGS
0014 #define _TB_REGS
0015
0016 #include <linux/types.h>
0017
0018
0019 #define TB_ROUTE_SHIFT 8
0020
0021
0022
0023
0024
0025
0026 #define TB_MAX_CONFIG_RW_LENGTH 60
0027
0028 enum tb_switch_cap {
0029 TB_SWITCH_CAP_TMU = 0x03,
0030 TB_SWITCH_CAP_VSE = 0x05,
0031 };
0032
0033 enum tb_switch_vse_cap {
0034 TB_VSE_CAP_PLUG_EVENTS = 0x01,
0035 TB_VSE_CAP_TIME2 = 0x03,
0036 TB_VSE_CAP_CP_LP = 0x04,
0037 TB_VSE_CAP_LINK_CONTROLLER = 0x06,
0038 };
0039
0040 enum tb_port_cap {
0041 TB_PORT_CAP_PHY = 0x01,
0042 TB_PORT_CAP_POWER = 0x02,
0043 TB_PORT_CAP_TIME1 = 0x03,
0044 TB_PORT_CAP_ADAP = 0x04,
0045 TB_PORT_CAP_VSE = 0x05,
0046 TB_PORT_CAP_USB4 = 0x06,
0047 };
0048
0049 enum tb_port_state {
0050 TB_PORT_DISABLED = 0,
0051 TB_PORT_CONNECTING = 1,
0052 TB_PORT_UP = 2,
0053 TB_PORT_UNPLUGGED = 7,
0054 };
0055
0056
0057
0058 struct tb_cap_basic {
0059 u8 next;
0060
0061 u8 cap;
0062 } __packed;
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072 struct tb_cap_extended_short {
0073 u8 next;
0074 u8 cap;
0075 u8 vsec_id;
0076 u8 length;
0077 } __packed;
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088 struct tb_cap_extended_long {
0089 u8 zero1;
0090 u8 cap;
0091 u8 vsec_id;
0092 u8 zero2;
0093 u16 next;
0094 u16 length;
0095 } __packed;
0096
0097
0098
0099
0100
0101
0102
0103 struct tb_cap_any {
0104 union {
0105 struct tb_cap_basic basic;
0106 struct tb_cap_extended_short extended_short;
0107 struct tb_cap_extended_long extended_long;
0108 };
0109 } __packed;
0110
0111
0112
0113 struct tb_cap_link_controller {
0114 struct tb_cap_extended_long cap_header;
0115 u32 count:4;
0116 u32 unknown1:4;
0117 u32 base_offset:8;
0118
0119
0120
0121 u32 length:12;
0122 u32 unknown2:4;
0123 } __packed;
0124
0125 struct tb_cap_phy {
0126 struct tb_cap_basic cap_header;
0127 u32 unknown1:16;
0128 u32 unknown2:14;
0129 bool disable:1;
0130 u32 unknown3:11;
0131 enum tb_port_state state:4;
0132 u32 unknown4:2;
0133 } __packed;
0134
0135 struct tb_eeprom_ctl {
0136 bool fl_sk:1;
0137 bool fl_cs:1;
0138 bool fl_di:1;
0139 bool fl_do:1;
0140 bool bit_banging_enable:1;
0141 bool not_present:1;
0142 bool unknown1:1;
0143 bool present:1;
0144 u32 unknown2:24;
0145 } __packed;
0146
0147 struct tb_cap_plug_events {
0148 struct tb_cap_extended_short cap_header;
0149 u32 __unknown1:2;
0150 u32 plug_events:5;
0151 u32 __unknown2:25;
0152 u32 vsc_cs_2;
0153 u32 vsc_cs_3;
0154 struct tb_eeprom_ctl eeprom_ctl;
0155 u32 __unknown5[7];
0156 u32 drom_offset;
0157 } __packed;
0158
0159
0160
0161
0162 struct tb_regs_switch_header {
0163
0164 u16 vendor_id;
0165 u16 device_id;
0166
0167 u32 first_cap_offset:8;
0168 u32 upstream_port_number:6;
0169 u32 max_port_number:6;
0170 u32 depth:3;
0171 u32 __unknown1:1;
0172 u32 revision:8;
0173
0174 u32 route_lo;
0175
0176 u32 route_hi:31;
0177 bool enabled:1;
0178
0179 u32 plug_events_delay:8;
0180
0181
0182
0183
0184 u32 cmuv:8;
0185 u32 __unknown4:8;
0186 u32 thunderbolt_version:8;
0187 } __packed;
0188
0189
0190 #define USB4_VERSION_1_0 0x20
0191
0192 #define ROUTER_CS_1 0x01
0193 #define ROUTER_CS_4 0x04
0194 #define ROUTER_CS_5 0x05
0195 #define ROUTER_CS_5_SLP BIT(0)
0196 #define ROUTER_CS_5_WOP BIT(1)
0197 #define ROUTER_CS_5_WOU BIT(2)
0198 #define ROUTER_CS_5_WOD BIT(3)
0199 #define ROUTER_CS_5_C3S BIT(23)
0200 #define ROUTER_CS_5_PTO BIT(24)
0201 #define ROUTER_CS_5_UTO BIT(25)
0202 #define ROUTER_CS_5_HCO BIT(26)
0203 #define ROUTER_CS_5_CV BIT(31)
0204 #define ROUTER_CS_6 0x06
0205 #define ROUTER_CS_6_SLPR BIT(0)
0206 #define ROUTER_CS_6_TNS BIT(1)
0207 #define ROUTER_CS_6_WOPS BIT(2)
0208 #define ROUTER_CS_6_WOUS BIT(3)
0209 #define ROUTER_CS_6_HCI BIT(18)
0210 #define ROUTER_CS_6_CR BIT(25)
0211 #define ROUTER_CS_7 0x07
0212 #define ROUTER_CS_9 0x09
0213 #define ROUTER_CS_25 0x19
0214 #define ROUTER_CS_26 0x1a
0215 #define ROUTER_CS_26_OPCODE_MASK GENMASK(15, 0)
0216 #define ROUTER_CS_26_STATUS_MASK GENMASK(29, 24)
0217 #define ROUTER_CS_26_STATUS_SHIFT 24
0218 #define ROUTER_CS_26_ONS BIT(30)
0219 #define ROUTER_CS_26_OV BIT(31)
0220
0221
0222 enum usb4_switch_op {
0223 USB4_SWITCH_OP_QUERY_DP_RESOURCE = 0x10,
0224 USB4_SWITCH_OP_ALLOC_DP_RESOURCE = 0x11,
0225 USB4_SWITCH_OP_DEALLOC_DP_RESOURCE = 0x12,
0226 USB4_SWITCH_OP_NVM_WRITE = 0x20,
0227 USB4_SWITCH_OP_NVM_AUTH = 0x21,
0228 USB4_SWITCH_OP_NVM_READ = 0x22,
0229 USB4_SWITCH_OP_NVM_SET_OFFSET = 0x23,
0230 USB4_SWITCH_OP_DROM_READ = 0x24,
0231 USB4_SWITCH_OP_NVM_SECTOR_SIZE = 0x25,
0232 USB4_SWITCH_OP_BUFFER_ALLOC = 0x33,
0233 };
0234
0235
0236 #define TMU_RTR_CS_0 0x00
0237 #define TMU_RTR_CS_0_FREQ_WIND_MASK GENMASK(26, 16)
0238 #define TMU_RTR_CS_0_TD BIT(27)
0239 #define TMU_RTR_CS_0_UCAP BIT(30)
0240 #define TMU_RTR_CS_1 0x01
0241 #define TMU_RTR_CS_1_LOCAL_TIME_NS_MASK GENMASK(31, 16)
0242 #define TMU_RTR_CS_1_LOCAL_TIME_NS_SHIFT 16
0243 #define TMU_RTR_CS_2 0x02
0244 #define TMU_RTR_CS_3 0x03
0245 #define TMU_RTR_CS_3_LOCAL_TIME_NS_MASK GENMASK(15, 0)
0246 #define TMU_RTR_CS_3_TS_PACKET_INTERVAL_MASK GENMASK(31, 16)
0247 #define TMU_RTR_CS_3_TS_PACKET_INTERVAL_SHIFT 16
0248 #define TMU_RTR_CS_15 0xf
0249 #define TMU_RTR_CS_15_FREQ_AVG_MASK GENMASK(5, 0)
0250 #define TMU_RTR_CS_15_DELAY_AVG_MASK GENMASK(11, 6)
0251 #define TMU_RTR_CS_15_OFFSET_AVG_MASK GENMASK(17, 12)
0252 #define TMU_RTR_CS_15_ERROR_AVG_MASK GENMASK(23, 18)
0253 #define TMU_RTR_CS_22 0x16
0254 #define TMU_RTR_CS_24 0x18
0255 #define TMU_RTR_CS_25 0x19
0256
0257 enum tb_port_type {
0258 TB_TYPE_INACTIVE = 0x000000,
0259 TB_TYPE_PORT = 0x000001,
0260 TB_TYPE_NHI = 0x000002,
0261
0262
0263 TB_TYPE_DP_HDMI_IN = 0x0e0101,
0264 TB_TYPE_DP_HDMI_OUT = 0x0e0102,
0265 TB_TYPE_PCIE_DOWN = 0x100101,
0266 TB_TYPE_PCIE_UP = 0x100102,
0267 TB_TYPE_USB3_DOWN = 0x200101,
0268 TB_TYPE_USB3_UP = 0x200102,
0269 };
0270
0271
0272 struct tb_regs_port_header {
0273
0274 u16 vendor_id;
0275 u16 device_id;
0276
0277 u32 first_cap_offset:8;
0278 u32 max_counters:11;
0279 u32 counters_support:1;
0280 u32 __unknown1:4;
0281 u32 revision:8;
0282
0283 enum tb_port_type type:24;
0284 u32 thunderbolt_version:8;
0285
0286 u32 __unknown2:20;
0287 u32 port_number:6;
0288 u32 __unknown3:6;
0289
0290 u32 nfc_credits;
0291
0292 u32 max_in_hop_id:11;
0293 u32 max_out_hop_id:11;
0294 u32 __unknown4:10;
0295
0296 u32 __unknown5;
0297
0298 u32 __unknown6;
0299
0300 } __packed;
0301
0302
0303 #define ADP_CS_4 0x04
0304 #define ADP_CS_4_NFC_BUFFERS_MASK GENMASK(9, 0)
0305 #define ADP_CS_4_TOTAL_BUFFERS_MASK GENMASK(29, 20)
0306 #define ADP_CS_4_TOTAL_BUFFERS_SHIFT 20
0307 #define ADP_CS_4_LCK BIT(31)
0308 #define ADP_CS_5 0x05
0309 #define ADP_CS_5_LCA_MASK GENMASK(28, 22)
0310 #define ADP_CS_5_LCA_SHIFT 22
0311
0312
0313 #define TMU_ADP_CS_3 0x03
0314 #define TMU_ADP_CS_3_UDM BIT(29)
0315 #define TMU_ADP_CS_6 0x06
0316 #define TMU_ADP_CS_6_DTS BIT(1)
0317
0318
0319 #define LANE_ADP_CS_0 0x00
0320 #define LANE_ADP_CS_0_SUPPORTED_SPEED_MASK GENMASK(19, 16)
0321 #define LANE_ADP_CS_0_SUPPORTED_SPEED_SHIFT 16
0322 #define LANE_ADP_CS_0_SUPPORTED_WIDTH_MASK GENMASK(25, 20)
0323 #define LANE_ADP_CS_0_SUPPORTED_WIDTH_SHIFT 20
0324 #define LANE_ADP_CS_0_SUPPORTED_WIDTH_DUAL 0x2
0325 #define LANE_ADP_CS_0_CL0S_SUPPORT BIT(26)
0326 #define LANE_ADP_CS_0_CL1_SUPPORT BIT(27)
0327 #define LANE_ADP_CS_1 0x01
0328 #define LANE_ADP_CS_1_TARGET_SPEED_MASK GENMASK(3, 0)
0329 #define LANE_ADP_CS_1_TARGET_SPEED_GEN3 0xc
0330 #define LANE_ADP_CS_1_TARGET_WIDTH_MASK GENMASK(9, 4)
0331 #define LANE_ADP_CS_1_TARGET_WIDTH_SHIFT 4
0332 #define LANE_ADP_CS_1_TARGET_WIDTH_SINGLE 0x1
0333 #define LANE_ADP_CS_1_TARGET_WIDTH_DUAL 0x3
0334 #define LANE_ADP_CS_1_CL0S_ENABLE BIT(10)
0335 #define LANE_ADP_CS_1_CL1_ENABLE BIT(11)
0336 #define LANE_ADP_CS_1_LD BIT(14)
0337 #define LANE_ADP_CS_1_LB BIT(15)
0338 #define LANE_ADP_CS_1_CURRENT_SPEED_MASK GENMASK(19, 16)
0339 #define LANE_ADP_CS_1_CURRENT_SPEED_SHIFT 16
0340 #define LANE_ADP_CS_1_CURRENT_SPEED_GEN2 0x8
0341 #define LANE_ADP_CS_1_CURRENT_SPEED_GEN3 0x4
0342 #define LANE_ADP_CS_1_CURRENT_WIDTH_MASK GENMASK(25, 20)
0343 #define LANE_ADP_CS_1_CURRENT_WIDTH_SHIFT 20
0344 #define LANE_ADP_CS_1_PMS BIT(30)
0345
0346
0347 #define PORT_CS_1 0x01
0348 #define PORT_CS_1_LENGTH_SHIFT 8
0349 #define PORT_CS_1_TARGET_MASK GENMASK(18, 16)
0350 #define PORT_CS_1_TARGET_SHIFT 16
0351 #define PORT_CS_1_RETIMER_INDEX_SHIFT 20
0352 #define PORT_CS_1_WNR_WRITE BIT(24)
0353 #define PORT_CS_1_NR BIT(25)
0354 #define PORT_CS_1_RC BIT(26)
0355 #define PORT_CS_1_PND BIT(31)
0356 #define PORT_CS_2 0x02
0357 #define PORT_CS_18 0x12
0358 #define PORT_CS_18_BE BIT(8)
0359 #define PORT_CS_18_TCM BIT(9)
0360 #define PORT_CS_18_CPS BIT(10)
0361 #define PORT_CS_18_WOU4S BIT(18)
0362 #define PORT_CS_19 0x13
0363 #define PORT_CS_19_PC BIT(3)
0364 #define PORT_CS_19_PID BIT(4)
0365 #define PORT_CS_19_WOC BIT(16)
0366 #define PORT_CS_19_WOD BIT(17)
0367 #define PORT_CS_19_WOU4 BIT(18)
0368
0369
0370 #define ADP_DP_CS_0 0x00
0371 #define ADP_DP_CS_0_VIDEO_HOPID_MASK GENMASK(26, 16)
0372 #define ADP_DP_CS_0_VIDEO_HOPID_SHIFT 16
0373 #define ADP_DP_CS_0_AE BIT(30)
0374 #define ADP_DP_CS_0_VE BIT(31)
0375 #define ADP_DP_CS_1_AUX_TX_HOPID_MASK GENMASK(10, 0)
0376 #define ADP_DP_CS_1_AUX_RX_HOPID_MASK GENMASK(21, 11)
0377 #define ADP_DP_CS_1_AUX_RX_HOPID_SHIFT 11
0378 #define ADP_DP_CS_2 0x02
0379 #define ADP_DP_CS_2_HDP BIT(6)
0380 #define ADP_DP_CS_3 0x03
0381 #define ADP_DP_CS_3_HDPC BIT(9)
0382 #define DP_LOCAL_CAP 0x04
0383 #define DP_REMOTE_CAP 0x05
0384 #define DP_STATUS_CTRL 0x06
0385 #define DP_STATUS_CTRL_CMHS BIT(25)
0386 #define DP_STATUS_CTRL_UF BIT(26)
0387 #define DP_COMMON_CAP 0x07
0388
0389
0390
0391
0392 #define DP_COMMON_CAP_RATE_MASK GENMASK(11, 8)
0393 #define DP_COMMON_CAP_RATE_SHIFT 8
0394 #define DP_COMMON_CAP_RATE_RBR 0x0
0395 #define DP_COMMON_CAP_RATE_HBR 0x1
0396 #define DP_COMMON_CAP_RATE_HBR2 0x2
0397 #define DP_COMMON_CAP_RATE_HBR3 0x3
0398 #define DP_COMMON_CAP_LANES_MASK GENMASK(14, 12)
0399 #define DP_COMMON_CAP_LANES_SHIFT 12
0400 #define DP_COMMON_CAP_1_LANE 0x0
0401 #define DP_COMMON_CAP_2_LANES 0x1
0402 #define DP_COMMON_CAP_4_LANES 0x2
0403 #define DP_COMMON_CAP_LTTPR_NS BIT(27)
0404 #define DP_COMMON_CAP_DPRX_DONE BIT(31)
0405
0406
0407 #define ADP_PCIE_CS_0 0x00
0408 #define ADP_PCIE_CS_0_PE BIT(31)
0409
0410
0411 #define ADP_USB3_CS_0 0x00
0412 #define ADP_USB3_CS_0_V BIT(30)
0413 #define ADP_USB3_CS_0_PE BIT(31)
0414 #define ADP_USB3_CS_1 0x01
0415 #define ADP_USB3_CS_1_CUBW_MASK GENMASK(11, 0)
0416 #define ADP_USB3_CS_1_CDBW_MASK GENMASK(23, 12)
0417 #define ADP_USB3_CS_1_CDBW_SHIFT 12
0418 #define ADP_USB3_CS_1_HCA BIT(31)
0419 #define ADP_USB3_CS_2 0x02
0420 #define ADP_USB3_CS_2_AUBW_MASK GENMASK(11, 0)
0421 #define ADP_USB3_CS_2_ADBW_MASK GENMASK(23, 12)
0422 #define ADP_USB3_CS_2_ADBW_SHIFT 12
0423 #define ADP_USB3_CS_2_CMR BIT(31)
0424 #define ADP_USB3_CS_3 0x03
0425 #define ADP_USB3_CS_3_SCALE_MASK GENMASK(5, 0)
0426 #define ADP_USB3_CS_4 0x04
0427 #define ADP_USB3_CS_4_ALR_MASK GENMASK(6, 0)
0428 #define ADP_USB3_CS_4_ALR_20G 0x1
0429 #define ADP_USB3_CS_4_ULV BIT(7)
0430 #define ADP_USB3_CS_4_MSLR_MASK GENMASK(18, 12)
0431 #define ADP_USB3_CS_4_MSLR_SHIFT 12
0432 #define ADP_USB3_CS_4_MSLR_20G 0x1
0433
0434
0435 struct tb_regs_hop {
0436
0437 u32 next_hop:11;
0438
0439
0440
0441 u32 out_port:6;
0442 u32 initial_credits:8;
0443 u32 unknown1:6;
0444 bool enable:1;
0445
0446
0447 u32 weight:4;
0448 u32 unknown2:4;
0449 u32 priority:3;
0450 bool drop_packages:1;
0451 u32 counter:11;
0452 bool counter_enable:1;
0453 bool ingress_fc:1;
0454 bool egress_fc:1;
0455 bool ingress_shared_buffer:1;
0456 bool egress_shared_buffer:1;
0457 bool pending:1;
0458 u32 unknown3:3;
0459 } __packed;
0460
0461
0462 #define TB_TIME_VSEC_3_CS_9 0x9
0463 #define TB_TIME_VSEC_3_CS_9_TMU_OBJ_MASK GENMASK(17, 16)
0464 #define TB_TIME_VSEC_3_CS_26 0x1a
0465 #define TB_TIME_VSEC_3_CS_26_TD BIT(22)
0466
0467
0468
0469
0470
0471
0472 #define TMU_ADP_CS_6_DISABLE_TMU_OBJ_MASK GENMASK(3, 2)
0473 #define TMU_ADP_CS_6_DISABLE_TMU_OBJ_CL1 BIT(2)
0474 #define TMU_ADP_CS_6_DISABLE_TMU_OBJ_CL2 BIT(3)
0475
0476
0477 #define TB_PLUG_EVENTS_USB_DISABLE BIT(2)
0478 #define TB_PLUG_EVENTS_CS_1_LANE_DISABLE BIT(3)
0479 #define TB_PLUG_EVENTS_CS_1_DPOUT_DISABLE BIT(4)
0480 #define TB_PLUG_EVENTS_CS_1_LOW_DPIN_DISABLE BIT(5)
0481 #define TB_PLUG_EVENTS_CS_1_HIGH_DPIN_DISABLE BIT(6)
0482
0483 #define TB_PLUG_EVENTS_PCIE_WR_DATA 0x1b
0484 #define TB_PLUG_EVENTS_PCIE_CMD 0x1c
0485 #define TB_PLUG_EVENTS_PCIE_CMD_DW_OFFSET_MASK GENMASK(9, 0)
0486 #define TB_PLUG_EVENTS_PCIE_CMD_BR_SHIFT 10
0487 #define TB_PLUG_EVENTS_PCIE_CMD_BR_MASK GENMASK(17, 10)
0488 #define TB_PLUG_EVENTS_PCIE_CMD_RD_WR_MASK BIT(21)
0489 #define TB_PLUG_EVENTS_PCIE_CMD_WR 0x1
0490 #define TB_PLUG_EVENTS_PCIE_CMD_COMMAND_SHIFT 22
0491 #define TB_PLUG_EVENTS_PCIE_CMD_COMMAND_MASK GENMASK(24, 22)
0492 #define TB_PLUG_EVENTS_PCIE_CMD_COMMAND_VAL 0x2
0493 #define TB_PLUG_EVENTS_PCIE_CMD_REQ_ACK_MASK BIT(30)
0494 #define TB_PLUG_EVENTS_PCIE_CMD_TIMEOUT_MASK BIT(31)
0495 #define TB_PLUG_EVENTS_PCIE_CMD_RD_DATA 0x1d
0496
0497
0498 #define TB_LOW_PWR_C1_CL1 0x1
0499 #define TB_LOW_PWR_C1_CL1_OBJ_MASK GENMASK(4, 1)
0500 #define TB_LOW_PWR_C1_CL2_OBJ_MASK GENMASK(4, 1)
0501 #define TB_LOW_PWR_C1_PORT_A_MASK GENMASK(2, 1)
0502 #define TB_LOW_PWR_C0_PORT_B_MASK GENMASK(4, 3)
0503 #define TB_LOW_PWR_C3_CL1 0x3
0504
0505
0506 #define TB_LC_DESC 0x02
0507 #define TB_LC_DESC_NLC_MASK GENMASK(3, 0)
0508 #define TB_LC_DESC_SIZE_SHIFT 8
0509 #define TB_LC_DESC_SIZE_MASK GENMASK(15, 8)
0510 #define TB_LC_DESC_PORT_SIZE_SHIFT 16
0511 #define TB_LC_DESC_PORT_SIZE_MASK GENMASK(27, 16)
0512 #define TB_LC_FUSE 0x03
0513 #define TB_LC_SNK_ALLOCATION 0x10
0514 #define TB_LC_SNK_ALLOCATION_SNK0_MASK GENMASK(3, 0)
0515 #define TB_LC_SNK_ALLOCATION_SNK0_CM 0x1
0516 #define TB_LC_SNK_ALLOCATION_SNK1_SHIFT 4
0517 #define TB_LC_SNK_ALLOCATION_SNK1_MASK GENMASK(7, 4)
0518 #define TB_LC_SNK_ALLOCATION_SNK1_CM 0x1
0519 #define TB_LC_POWER 0x740
0520
0521
0522 #define TB_LC_CS_42 0x2a
0523 #define TB_LC_CS_42_USB_PLUGGED BIT(31)
0524
0525 #define TB_LC_PORT_ATTR 0x8d
0526 #define TB_LC_PORT_ATTR_BE BIT(12)
0527
0528 #define TB_LC_SX_CTRL 0x96
0529 #define TB_LC_SX_CTRL_WOC BIT(1)
0530 #define TB_LC_SX_CTRL_WOD BIT(2)
0531 #define TB_LC_SX_CTRL_WODPC BIT(3)
0532 #define TB_LC_SX_CTRL_WODPD BIT(4)
0533 #define TB_LC_SX_CTRL_WOU4 BIT(5)
0534 #define TB_LC_SX_CTRL_WOP BIT(6)
0535 #define TB_LC_SX_CTRL_L1C BIT(16)
0536 #define TB_LC_SX_CTRL_L1D BIT(17)
0537 #define TB_LC_SX_CTRL_L2C BIT(20)
0538 #define TB_LC_SX_CTRL_L2D BIT(21)
0539 #define TB_LC_SX_CTRL_SLI BIT(29)
0540 #define TB_LC_SX_CTRL_UPSTREAM BIT(30)
0541 #define TB_LC_SX_CTRL_SLP BIT(31)
0542 #define TB_LC_LINK_ATTR 0x97
0543 #define TB_LC_LINK_ATTR_CPS BIT(18)
0544
0545 #define TB_LC_LINK_REQ 0xad
0546 #define TB_LC_LINK_REQ_XHCI_CONNECT BIT(31)
0547
0548 #endif