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_ */