Zephyr Project API
4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
tcpci.h
Go to the documentation of this file.
1
/*
2
* Copyright 2024 Google LLC
3
* SPDX-License-Identifier: Apache-2.0
4
*/
5
6
#ifndef ZEPHYR_INCLUDE_USB_C_TCPCI_H_
7
#define ZEPHYR_INCLUDE_USB_C_TCPCI_H_
8
19
21
#define TCPC_REG_VENDOR_ID 0x0
22
24
#define TCPC_REG_PRODUCT_ID 0x2
25
27
#define TCPC_REG_BCD_DEV 0x4
28
30
#define TCPC_REG_TC_REV 0x6
32
#define TCPC_REG_TC_REV_MAJOR_MASK GENMASK(7, 4)
34
#define TCPC_REG_TC_REV_MAJOR(reg) (((reg) & TCPC_REG_TC_REV_MAJOR_MASK) >> 4)
36
#define TCPC_REG_TC_REV_MINOR_MASK GENMASK(3, 0)
38
#define TCPC_REG_TC_REV_MINOR(reg) ((reg) & TCPC_REG_TC_REV_MINOR_MASK)
39
41
#define TCPC_REG_PD_REV 0x8
43
#define TCPC_REG_PD_REV_REV_MAJOR_MASK GENMASK(15, 12)
45
#define TCPC_REG_PD_REV_REV_MAJOR(reg) (((reg) & TCPC_REG_PD_REV_REV_MAJOR_MASK) >> 12)
47
#define TCPC_REG_PD_REV_REV_MINOR_MASK GENMASK(11, 8)
49
#define TCPC_REG_PD_REV_REV_MINOR(reg) (((reg) & TCPC_REG_PD_REV_REV_MINOR_MASK) >> 8)
51
#define TCPC_REG_PD_REV_VER_MAJOR_MASK GENMASK(7, 4)
53
#define TCPC_REG_PD_REV_VER_MAJOR(reg) (((reg) & TCPC_REG_PD_REV_VER_MAJOR_MASK) >> 4)
55
#define TCPC_REG_PD_REV_VER_MINOR_MASK GENMASK(3, 0)
57
#define TCPC_REG_PD_REV_VER_MINOR(reg) ((reg) & TCPC_REG_PD_REV_VER_MINOR_MASK)
58
60
#define TCPC_REG_PD_INT_REV 0xa
62
#define TCPC_REG_PD_INT_REV_REV_MAJOR_MASK GENMASK(15, 12)
64
#define TCPC_REG_PD_INT_REV_REV_MAJOR(reg) (((reg) & TCPC_REG_PD_INT_REV_REV_MAJOR_MASK) >> 12)
66
#define TCPC_REG_PD_INT_REV_REV_MINOR_MASK GENMASK(11, 8)
68
#define TCPC_REG_PD_INT_REV_REV_MINOR(reg) (((reg) & TCPC_REG_PD_INT_REV_REV_MINOR_MASK) >> 8)
70
#define TCPC_REG_PD_INT_REV_VER_MAJOR_MASK GENMASK(7, 4)
72
#define TCPC_REG_PD_INT_REV_VER_MAJOR(reg) (((reg) & TCPC_REG_PD_INT_REV_VER_MAJOR_MASK) >> 4)
74
#define TCPC_REG_PD_INT_REV_VER_MINOR_MASK GENMASK(3, 0)
76
#define TCPC_REG_PD_INT_REV_VER_MINOR(reg) ((reg) & TCPC_REG_PD_INT_REV_VER_MINOR_MASK)
77
79
#define TCPC_REG_ALERT 0x10
81
#define TCPC_REG_ALERT_NONE 0x0000
83
#define TCPC_REG_ALERT_MASK_ALL 0xffff
85
#define TCPC_REG_ALERT_VENDOR_DEF BIT(15)
87
#define TCPC_REG_ALERT_ALERT_EXT BIT(14)
89
#define TCPC_REG_ALERT_EXT_STATUS BIT(13)
91
#define TCPC_REG_ALERT_RX_BEGINNING BIT(12)
93
#define TCPC_REG_ALERT_VBUS_DISCNCT BIT(11)
95
#define TCPC_REG_ALERT_RX_BUF_OVF BIT(10)
97
#define TCPC_REG_ALERT_FAULT BIT(9)
99
#define TCPC_REG_ALERT_V_ALARM_LO BIT(8)
101
#define TCPC_REG_ALERT_V_ALARM_HI BIT(7)
103
#define TCPC_REG_ALERT_TX_SUCCESS BIT(6)
105
#define TCPC_REG_ALERT_TX_DISCARDED BIT(5)
107
#define TCPC_REG_ALERT_TX_FAILED BIT(4)
109
#define TCPC_REG_ALERT_RX_HARD_RST BIT(3)
111
#define TCPC_REG_ALERT_RX_STATUS BIT(2)
113
#define TCPC_REG_ALERT_POWER_STATUS BIT(1)
115
#define TCPC_REG_ALERT_CC_STATUS BIT(0)
117
#define TCPC_REG_ALERT_TX_COMPLETE \
118
(TCPC_REG_ALERT_TX_SUCCESS | TCPC_REG_ALERT_TX_DISCARDED | TCPC_REG_ALERT_TX_FAILED)
119
124
#define TCPC_REG_ALERT_MASK 0x12
125
131
#define TCPC_REG_POWER_STATUS_MASK 0x14
132
138
#define TCPC_REG_FAULT_STATUS_MASK 0x15
139
145
#define TCPC_REG_EXT_STATUS_MASK 0x16
146
152
#define TCPC_REG_ALERT_EXT_MASK 0x17
153
155
#define TCPC_REG_CONFIG_STD_OUTPUT 0x18
157
#define TCPC_REG_CONFIG_STD_OUTPUT_HIGH_Z BIT(7)
159
#define TCPC_REG_CONFIG_STD_OUTPUT_DBG_ACC_CONN_N BIT(6)
161
#define TCPC_REG_CONFIG_STD_OUTPUT_AUDIO_CONN_N BIT(5)
163
#define TCPC_REG_CONFIG_STD_OUTPUT_ACTIVE_CABLE BIT(4)
165
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_MASK (3 << 2)
167
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_NONE (0 << 2)
169
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_USB (1 << 2)
171
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_DP (2 << 2)
173
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_USB_DP (3 << 2)
175
#define TCPC_REG_CONFIG_STD_OUTPUT_CONN_PRESENT BIT(1)
177
#define TCPC_REG_CONFIG_STD_OUTPUT_CONNECTOR_FLIPPED BIT(0)
178
180
#define TCPC_REG_TCPC_CTRL 0x19
182
#define TCPC_REG_TCPC_CTRL_SMBUS_PEC BIT(7)
184
#define TCPC_REG_TCPC_CTRL_EN_LOOK4CONNECTION_ALERT BIT(6)
186
#define TCPC_REG_TCPC_CTRL_WATCHDOG_TIMER BIT(5)
188
#define TCPC_REG_TCPC_CTRL_DEBUG_ACC_CONTROL BIT(4)
190
#define TCPC_REG_TCPC_CTRL_CLOCK_STRETCH_MASK GENMASK(3, 2)
192
#define TCPC_REG_TCPC_CTRL_CLOCK_STRETCH_DISABLED 0
194
#define TCPC_REG_TCPC_CTRL_CLOCK_STRETCH_EN_ALWAYS (2 << 2)
196
#define TCPC_REG_TCPC_CTRL_CLOCK_STRETCH_EN_NO_ALERT (3 << 2)
198
#define TCPC_REG_TCPC_CTRL_BIST_TEST_MODE BIT(1)
200
#define TCPC_REG_TCPC_CTRL_PLUG_ORIENTATION BIT(0)
201
203
#define TCPC_REG_ROLE_CTRL 0x1a
205
#define TCPC_REG_ROLE_CTRL_DRP_MASK BIT(6)
207
#define TCPC_REG_ROLE_CTRL_RP_MASK GENMASK(5, 4)
209
#define TCPC_REG_ROLE_CTRL_CC2_MASK GENMASK(3, 2)
211
#define TCPC_REG_ROLE_CTRL_CC1_MASK GENMASK(1, 0)
213
#define TCPC_REG_ROLE_CTRL_SET(drp, rp, cc1, cc2) \
214
((((drp) << 6) & TCPC_REG_ROLE_CTRL_DRP_MASK) | \
215
(((rp) << 4) & TCPC_REG_ROLE_CTRL_RP_MASK) | \
216
(((cc2) << 2) & TCPC_REG_ROLE_CTRL_CC2_MASK) | ((cc1) & TCPC_REG_ROLE_CTRL_CC1_MASK))
217
218
#define TCPC_REG_ROLE_CTRL_DRP(reg) (((reg) & TCPC_REG_ROLE_CTRL_DRP_MASK) >> 6)
220
#define TCPC_REG_ROLE_CTRL_RP(reg) (((reg) & TCPC_REG_ROLE_CTRL_RP_MASK) >> 4)
222
#define TCPC_REG_ROLE_CTRL_CC2(reg) (((reg) & TCPC_REG_ROLE_CTRL_CC2_MASK) >> 2)
224
#define TCPC_REG_ROLE_CTRL_CC1(reg) ((reg) & TCPC_REG_ROLE_CTRL_CC1_MASK)
225
227
#define TCPC_REG_FAULT_CTRL 0x1b
229
#define TCPC_REG_FAULT_CTRL_VBUS_FORCE_OFF BIT(4)
231
#define TCPC_REG_FAULT_CTRL_VBUS_DISCHARGE_FAULT BIT(3)
233
#define TCPC_REG_FAULT_CTRL_VBUS_OCP_FAULT_DIS BIT(2)
235
#define TCPC_REG_FAULT_CTRL_VBUS_OVP_FAULT_DIS BIT(1)
237
#define TCPC_REG_FAULT_CTRL_VCONN_OCP_FAULT_DIS BIT(0)
238
240
#define TCPC_REG_POWER_CTRL 0x1c
242
#define TCPC_REG_POWER_CTRL_FRS_ENABLE BIT(7)
244
#define TCPC_REG_POWER_CTRL_VBUS_VOL_MONITOR_DIS BIT(6)
246
#define TCPC_REG_POWER_CTRL_VOLT_ALARM_DIS BIT(5)
248
#define TCPC_REG_POWER_CTRL_AUTO_DISCHARGE_DISCONNECT BIT(4)
250
#define TCPC_REG_POWER_CTRL_BLEED_DISCHARGE BIT(3)
252
#define TCPC_REG_POWER_CTRL_FORCE_DISCHARGE BIT(2)
259
#define TCPC_REG_POWER_CTRL_VCONN_SUPP BIT(1)
261
#define TCPC_REG_POWER_CTRL_VCONN_EN BIT(0)
262
264
#define TCPC_REG_CC_STATUS 0x1d
266
#define TCPC_REG_CC_STATUS_LOOK4CONNECTION BIT(5)
268
#define TCPC_REG_CC_STATUS_CONNECT_RESULT BIT(4)
270
#define TCPC_REG_CC_STATUS_CC2_STATE_MASK GENMASK(3, 2)
276
#define TCPC_REG_CC_STATUS_CC2_STATE(reg) (((reg) & TCPC_REG_CC_STATUS_CC2_STATE_MASK) >> 2)
278
#define TCPC_REG_CC_STATUS_CC1_STATE_MASK GENMASK(1, 0)
280
#define TCPC_REG_CC_STATUS_CC1_STATE(reg) ((reg) & TCPC_REG_CC_STATUS_CC1_STATE_MASK)
281
283
#define TCPC_REG_POWER_STATUS 0x1e
285
#define TCPC_REG_POWER_STATUS_DEBUG_ACC_CON BIT(7)
287
#define TCPC_REG_POWER_STATUS_UNINIT BIT(6)
289
#define TCPC_REG_POWER_STATUS_SOURCING_HV BIT(5)
291
#define TCPC_REG_POWER_STATUS_SOURCING_VBUS BIT(4)
293
#define TCPC_REG_POWER_STATUS_VBUS_DET BIT(3)
298
#define TCPC_REG_POWER_STATUS_VBUS_PRES BIT(2)
300
#define TCPC_REG_POWER_STATUS_VCONN_PRES BIT(1)
302
#define TCPC_REG_POWER_STATUS_SINKING_VBUS BIT(0)
303
305
#define TCPC_REG_FAULT_STATUS 0x1f
307
#define TCPC_REG_FAULT_STATUS_ALL_REGS_RESET BIT(7)
309
#define TCPC_REG_FAULT_STATUS_FORCE_OFF_VBUS BIT(6)
311
#define TCPC_REG_FAULT_STATUS_AUTO_DISCHARGE_FAIL BIT(5)
313
#define TCPC_REG_FAULT_STATUS_FORCE_DISCHARGE_FAIL BIT(4)
315
#define TCPC_REG_FAULT_STATUS_VBUS_OVER_CURRENT BIT(3)
317
#define TCPC_REG_FAULT_STATUS_VBUS_OVER_VOLTAGE BIT(2)
319
#define TCPC_REG_FAULT_STATUS_VCONN_OVER_CURRENT BIT(1)
321
#define TCPC_REG_FAULT_STATUS_I2C_INTERFACE_ERR BIT(0)
322
324
#define TCPC_REG_EXT_STATUS 0x20
326
#define TCPC_REG_EXT_STATUS_SAFE0V BIT(0)
327
329
#define TCPC_REG_ALERT_EXT 0x21
331
#define TCPC_REG_ALERT_EXT_TIMER_EXPIRED BIT(2)
333
#define TCPC_REG_ALERT_EXT_SRC_FRS BIT(1)
335
#define TCPC_REG_ALERT_EXT_SNK_FRS BIT(0)
336
338
#define TCPC_REG_COMMAND 0x23
340
#define TCPC_REG_COMMAND_WAKE_I2C 0x11
342
#define TCPC_REG_COMMAND_DISABLE_VBUS_DETECT 0x22
344
#define TCPC_REG_COMMAND_ENABLE_VBUS_DETECT 0x33
346
#define TCPC_REG_COMMAND_SNK_CTRL_LOW 0x44
348
#define TCPC_REG_COMMAND_SNK_CTRL_HIGH 0x55
350
#define TCPC_REG_COMMAND_SRC_CTRL_LOW 0x66
352
#define TCPC_REG_COMMAND_SRC_CTRL_DEF 0x77
354
#define TCPC_REG_COMMAND_SRC_CTRL_HV 0x88
356
#define TCPC_REG_COMMAND_LOOK4CONNECTION 0x99
361
#define TCPC_REG_COMMAND_RX_ONE_MORE 0xAA
366
#define TCPC_REG_COMMAND_SEND_FRS_SIGNAL 0xCC
368
#define TCPC_REG_COMMAND_RESET_TRANSMIT_BUF 0xDD
373
#define TCPC_REG_COMMAND_RESET_RECEIVE_BUF 0xEE
375
#define TCPC_REG_COMMAND_I2CIDLE 0xFF
376
378
#define TCPC_REG_DEV_CAP_1 0x24
380
#define TCPC_REG_DEV_CAP_1_VBUS_NONDEFAULT_TARGET BIT(15)
382
#define TCPC_REG_DEV_CAP_1_VBUS_OCP_REPORTING BIT(14)
384
#define TCPC_REG_DEV_CAP_1_VBUS_OVP_REPORTING BIT(13)
386
#define TCPC_REG_DEV_CAP_1_BLEED_DISCHARGE BIT(12)
388
#define TCPC_REG_DEV_CAP_1_FORCE_DISCHARGE BIT(11)
393
#define TCPC_REG_DEV_CAP_1_VBUS_MEASURE_ALARM_CAPABLE BIT(10)
395
#define TCPC_REG_DEV_CAP_1_SRC_RESISTOR_MASK GENMASK(9, 8)
401
#define TCPC_REG_DEV_CAP_1_SRC_RESISTOR(reg) \
402
(((reg) & TCPC_REG_DEV_CAP_1_SRC_RESISTOR_MASK) >> 8)
403
404
#define TCPC_REG_DEV_CAP_1_SRC_RESISTOR_RP_DEF 0
406
#define TCPC_REG_DEV_CAP_1_SRC_RESISTOR_RP_1P5_DEF 1
408
#define TCPC_REG_DEV_CAP_1_SRC_RESISTOR_RP_3P0_1P5_DEF 2
410
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_MASK GENMASK(7, 5)
412
#define TCPC_REG_DEV_CAP_1_POWER_ROLE(reg) \
413
(((reg) & TCPC_REG_DEV_CAP_1_POWER_ROLE_MASK) >> 5)
414
415
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_SRC_OR_SNK 0
417
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_SRC 1
419
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_SNK 2
421
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_SNK_ACC 3
423
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_DRP 4
425
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_SRC_SNK_DRP_ADPT_CBL 5
427
#define TCPC_REG_DEV_CAP_1_POWER_ROLE_SRC_SNK_DRP 6
429
#define TCPC_REG_DEV_CAP_1_ALL_SOP_STAR_MSGS_SUPPORTED BIT(4)
431
#define TCPC_REG_DEV_CAP_1_SOURCE_VCONN BIT(3)
433
#define TCPC_REG_DEV_CAP_1_SINK_VBUS BIT(2)
438
#define TCPC_REG_DEV_CAP_1_SOURCE_HV_VBUS BIT(1)
440
#define TCPC_REG_DEV_CAP_1_SOURCE_VBUS BIT(0)
441
443
#define TCPC_REG_DEV_CAP_2 0x26
445
#define TCPC_REG_DEV_CAP_2_CAP_3_SUPPORTED BIT(15)
447
#define TCPC_REG_DEV_CAP_2_MSG_DISABLE_DISCONNECT BIT(14)
449
#define TCPC_REG_DEV_CAP_2_GENERIC_TIMER BIT(13)
456
#define TCPC_REG_DEV_CAP_2_LONG_MSG BIT(12)
458
#define TCPC_REG_DEV_CAP_2_SMBUS_PEC BIT(11)
460
#define TCPC_REG_DEV_CAP_2_SRC_FRS BIT(10)
462
#define TCPC_REG_DEV_CAP_2_SNK_FRS BIT(9)
464
#define TCPC_REG_DEV_CAP_2_WATCHDOG_TIMER BIT(8)
470
#define TCPC_REG_DEV_CAP_2_SNK_DISC_DET BIT(7)
475
#define TCPC_REG_DEV_CAP_2_STOP_DISCHARGE_THRESH BIT(6)
477
#define TCPC_REG_DEV_CAP_2_VBUS_VOLTAGE_ALARM_MASK GENMASK(5, 4)
479
#define TCPC_REG_DEV_CAP_2_VBUS_VOLTAGE_ALARM(reg) \
480
(((reg) & TCPC_REG_DEV_CAP_2_VBUS_VOLTAGE_ALARM_MASK) >> 4)
481
482
#define TCPC_REG_DEV_CAP_2_VBUS_VOLTAGE_ALARM_25MV 0
484
#define TCPC_REG_DEV_CAP_2_VBUS_VOLTAGE_ALARM_50MV 1
486
#define TCPC_REG_DEV_CAP_2_VBUS_VOLTAGE_ALARM_100MV 2
488
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_MASK GENMASK(3, 1)
490
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED(reg) \
491
(((reg) & TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_MASK) >> 1)
492
493
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_1_0W 0
495
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_1_5W 1
497
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_2_0W 2
499
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_3_0W 3
501
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_4_0W 4
503
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_5_0W 5
505
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_6_0W 6
507
#define TCPC_REG_DEV_CAP_2_VCONN_POWER_SUPPORTED_EXTERNAL 7
509
#define TCPC_REG_DEV_CAP_2_VCONN_OVC_FAULT BIT(0)
510
512
#define TCPC_REG_STD_INPUT_CAP 0x28
514
#define TCPC_REG_STD_INPUT_CAP_SRC_FRS_MASK GENMASK(4, 3)
516
#define TCPC_REG_STD_INPUT_CAP_SRC_FRS(reg) (((reg) & TCPC_REG_STD_INPUT_CAP_SRC_FRS_MASK) >> 3)
518
#define TCPC_REG_STD_INTPU_CAP_SRC_FRS_NONE 0
520
#define TCPC_REG_STD_INTPU_CAP_SRC_FRS_INPUT 1
522
#define TCPC_REG_STD_INTPU_CAP_SRC_FRS_BOTH 2
524
#define TCPC_REG_STD_INPUT_CAP_EXT_OVP BIT(2)
526
#define TCPC_REG_STD_INPUT_CAP_EXT_OCP BIT(1)
528
#define TCPC_REG_STD_INPUT_CAP_FORCE_OFF_VBUS BIT(0)
529
531
#define TCPC_REG_STD_OUTPUT_CAP 0x29
533
#define TCPC_REG_STD_OUTPUT_CAP_SNK_DISC_DET BIT(7)
535
#define TCPC_REG_STD_OUTPUT_CAP_DBG_ACCESSORY BIT(6)
537
#define TCPC_REG_STD_OUTPUT_CAP_VBUS_PRESENT_MON BIT(5)
539
#define TCPC_REG_STD_OUTPUT_CAP_AUDIO_ACCESSORY BIT(4)
541
#define TCPC_REG_STD_OUTPUT_CAP_ACTIVE_CABLE BIT(3)
543
#define TCPC_REG_STD_OUTPUT_CAP_MUX_CFG_CTRL BIT(2)
545
#define TCPC_REG_STD_OUTPUT_CAP_CONN_PRESENT BIT(1)
547
#define TCPC_REG_STD_OUTPUT_CAP_CONN_ORIENTATION BIT(0)
548
550
#define TCPC_REG_CONFIG_EXT_1 0x2A
556
#define TCPC_REG_CONFIG_EXT_1_FRS_SNK_DIR BIT(1)
563
#define TCPC_REG_CONFIG_EXT_1_STD_IN_SRC_FRS BIT(0)
564
570
#define TCPC_REG_GENERIC_TIMER 0x2c
571
573
#define TCPC_REG_MSG_HDR_INFO 0x2e
575
#define TCPC_REG_MSG_HDR_INFO_CABLE_PLUG BIT(4)
577
#define TCPC_REG_MSG_HDR_INFO_DATA_ROLE_MASK BIT(3)
579
#define TCPC_REG_MSG_HDR_INFO_DATA_ROLE(reg) (((reg) & TCPC_REG_MSG_HDR_INFO_DATA_ROLE_MASK) >> 3)
581
#define TCPC_REG_MSG_HDR_INFO_DATA_ROLE_UFP 0
583
#define TCPC_REG_MSG_HDR_INFO_DATA_ROLE_DFP 1
585
#define TCPC_REG_MSG_HDR_INFO_PD_REV_MASK GENMASK(2, 1)
587
#define TCPC_REG_MSG_HDR_INFO_PD_REV(reg) (((reg) & TCPC_REG_MSG_HDR_INFO_PD_REV_MASK) >> 1)
589
#define TCPC_REG_MSG_HDR_INFO_PD_REV_1_0 0
591
#define TCPC_REG_MSG_HDR_INFO_PD_REV_2_0 1
593
#define TCPC_REG_MSG_HDR_INFO_PD_REV_3_0 2
595
#define TCPC_REG_MSG_HDR_INFO_POWER_ROLE_MASK BIT(0)
597
#define TCPC_REG_MSG_HDR_INFO_POWER_ROLE(reg) ((reg) & TCPC_REG_MSG_HDR_INFO_POWER_ROLE_MASK)
599
#define TCPC_REG_MSG_HDR_INFO_POWER_ROLE_SNK 0
601
#define TCPC_REG_MSG_HDR_INFO_POWER_ROLE_SRC 1
606
#define TCPC_REG_MSG_HDR_INFO_SET(pd_rev_type, drole, prole) \
607
((drole) << 3 | (pd_rev_type << 1) | (prole))
608
609
#define TCPC_REG_MSG_HDR_INFO_ROLES_MASK (TCPC_REG_MSG_HDR_INFO_SET(3, 1, 1))
610
612
#define TCPC_REG_RX_DETECT 0x2f
620
#define TCPC_REG_RX_DETECT_MSG_DISABLE_DISCONNECT BIT(7)
622
#define TCPC_REG_RX_DETECT_CABLE_RST BIT(6)
624
#define TCPC_REG_RX_DETECT_HRST BIT(5)
626
#define TCPC_REG_RX_DETECT_SOPPP_DBG BIT(4)
628
#define TCPC_REG_RX_DETECT_SOPP_DBG BIT(3)
630
#define TCPC_REG_RX_DETECT_SOPPP BIT(2)
632
#define TCPC_REG_RX_DETECT_SOPP BIT(1)
634
#define TCPC_REG_RX_DETECT_SOP BIT(0)
636
#define TCPC_REG_RX_DETECT_SOP_HRST_MASK (TCPC_REG_RX_DETECT_SOP | TCPC_REG_RX_DETECT_HRST)
638
#define TCPC_REG_RX_DETECT_SOP_SOPP_SOPPP_HRST_MASK \
639
(TCPC_REG_RX_DETECT_SOP | TCPC_REG_RX_DETECT_SOPP | TCPC_REG_RX_DETECT_SOPPP | \
640
TCPC_REG_RX_DETECT_HRST)
641
648
#define TCPC_REG_RX_BUFFER 0x30
649
651
#define TCPC_REG_TRANSMIT 0x50
653
#define TCPC_REG_TRANSMIT_SET_WITH_RETRY(retries, type) ((retries) << 4 | (type))
655
#define TCPC_REG_TRANSMIT_SET_WITHOUT_RETRY(type) (type)
657
#define TCPC_REG_TRANSMIT_TYPE_SOP 0
659
#define TCPC_REG_TRANSMIT_TYPE_SOPP 1
661
#define TCPC_REG_TRANSMIT_TYPE_SOPPP 2
663
#define TCPC_REG_TRANSMIT_TYPE_SOP_DBG_P 3
665
#define TCPC_REG_TRANSMIT_TYPE_SOP_DBG_PP 4
667
#define TCPC_REG_TRANSMIT_TYPE_HRST 5
669
#define TCPC_REG_TRANSMIT_TYPE_CABLE_RST 6
671
#define TCPC_REG_TRANSMIT_TYPE_BIST 7
672
680
#define TCPC_REG_TX_BUFFER 0x51
681
683
#define TCPC_REG_VBUS_VOLTAGE 0x70
685
#define TCPC_REG_VBUS_VOLTAGE_MEASUREMENT_MASK GENMASK(9, 0)
687
#define TCPC_REG_VBUS_VOLTAGE_MEASUREMENT(reg) ((reg) & TCPC_REG_VBUS_VOLTAGE_MEASUREMENT_MASK)
689
#define TCPC_REG_VBUS_VOLTAGE_SCALE_FACTOR_MASK GENMASK(11, 10)
691
#define TCPC_REG_VBUS_VOLTAGE_SCALE(reg) \
692
(1 << (((reg) & TCPC_REG_VBUS_VOLTAGE_SCALE_FACTOR_MASK) >> 10))
693
694
#define TCPC_REG_VBUS_VOLTAGE_LSB 25
699
#define TCPC_REG_VBUS_VOLTAGE_VBUS(x) \
700
(TCPC_REG_VBUS_VOLTAGE_SCALE(x) * TCPC_REG_VBUS_VOLTAGE_MEASUREMENT(x) * \
701
TCPC_REG_VBUS_VOLTAGE_LSB)
702
704
#define TCPC_REG_VBUS_SINK_DISCONNECT_THRESH 0x72
711
#define TCPC_REG_VBUS_SINK_DISCONNECT_THRESH_LSB 25
713
#define TCPC_REG_VBUS_SINK_DISCONNECT_THRESH_MASK GENMASK(11, 0)
715
#define TCPC_REG_VBUS_SINK_DISCONNECT_THRESH_DEFAULT 0x008C
/* 3.5 V */
716
718
#define TCPC_REG_VBUS_STOP_DISCHARGE_THRESH 0x74
725
#define TCPC_REG_VBUS_STOP_DISCHARGE_THRESH_LSB 25
727
#define TCPC_REG_VBUS_STOP_DISCHARGE_THRESH_MASK GENMASK(11, 0)
729
#define TCPC_REG_VBUS_STOP_DISCHARGE_THRESH_DEFAULT 0x0020
/* 0.8 V */
730
732
#define TCPC_REG_VBUS_VOLTAGE_ALARM_HI_CFG 0x76
739
#define TCPC_REG_VBUS_VOLTAGE_ALARM_HI_CFG_LSB 25
741
#define TCPC_REG_VBUS_VOLTAGE_ALARM_HI_CFG_MASK GENMASK(11, 0)
742
744
#define TCPC_REG_VBUS_VOLTAGE_ALARM_LO_CFG 0x78
751
#define TCPC_REG_VBUS_VOLTAGE_ALARM_LO_CFG_LSB 25
753
#define TCPC_REG_VBUS_VOLTAGE_ALARM_LO_CFG_MASK GENMASK(11, 0)
754
761
#define TCPC_REG_VBUS_NONDEFAULT_TARGET 0x7a
768
#define TCPC_REG_VBUS_NONDEFAULT_TARGET_LSB 20
769
771
#define TCPC_REG_DEV_CAP_3 0x7c
773
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_MASK GENMASK(2, 0)
775
#define TCPC_REG_DEV_CAP_3_VBUS_MAX(reg) ((reg) & TCPC_REG_DEV_CAP_3_VBUS_MAX_MASK)
777
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_5V 0
779
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_9V 1
781
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_15V 2
783
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_20V 3
785
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_28V 4
787
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_36V 5
789
#define TCPC_REG_DEV_CAP_3_VBUS_MAX_48V 6
790
791
#endif
/* ZEPHYR_INCLUDE_USB_C_TCPCI_H_ */
include
zephyr
usb_c
tcpci.h
Generated on
for Zephyr Project API by
1.16.1