14#ifndef ZEPHYR_INCLUDE_DRIVERS_USBC_USBC_PD_H_
15#define ZEPHYR_INCLUDE_DRIVERS_USBC_USBC_PD_H_
35#define PD_MAX_EXTENDED_MSG_LEGACY_LEN 26
42#define PD_MAX_EXTENDED_MSG_LEN 260
54#define PD_MAX_EXTENDED_MSG_CHUNK_LEN 26
62#define PD_T_TYPEC_SINK_WAIT_CAP_MIN_MS 310
70#define PD_T_TYPEC_SINK_WAIT_CAP_MAX_MS 620
77#define PD_V_SAFE_0V_MAX_MV 800
84#define PD_V_SAFE_5V_MIN_MV 4750
91#define PD_T_SAFE_0V_MAX_MS 650
98#define PD_T_SAFE_5V_MAX_MS 275
106#define PD_CONVERT_BYTES_TO_PD_HEADER_COUNT(c) ((c) >> 2)
113#define PD_CONVERT_PD_HEADER_COUNT_TO_BYTES(c) ((c) << 2)
185#define PD_CONVERT_MA_TO_FIXED_PDO_CURRENT(c) ((c) / 10)
192#define PD_CONVERT_MV_TO_FIXED_PDO_VOLTAGE(v) ((v) / 50)
199#define PD_CONVERT_FIXED_PDO_CURRENT_TO_MA(c) ((c) * 10)
208#define PD_CONVERT_FIXED_PDO_VOLTAGE_TO_MV(v) ((v) * 50)
293#define PD_CONVERT_MA_TO_VARIABLE_PDO_CURRENT(c) ((c) / 10)
300#define PD_CONVERT_MV_TO_VARIABLE_PDO_VOLTAGE(v) ((v) / 50)
307#define PD_CONVERT_VARIABLE_PDO_CURRENT_TO_MA(c) ((c) * 10)
314#define PD_CONVERT_VARIABLE_PDO_VOLTAGE_TO_MV(v) ((v) * 50)
359#define PD_CONVERT_MW_TO_BATTERY_PDO_POWER(c) ((c) / 250)
366#define PD_CONVERT_MV_TO_BATTERY_PDO_VOLTAGE(v) ((v) / 50)
373#define PD_CONVERT_BATTERY_PDO_POWER_TO_MW(c) ((c) * 250)
380#define PD_CONVERT_BATTERY_PDO_VOLTAGE_TO_MV(v) ((v) * 50)
425#define PD_CONVERT_MA_TO_AUGMENTED_PDO_CURRENT(c) ((c) / 50)
432#define PD_CONVERT_MV_TO_AUGMENTED_PDO_VOLTAGE(v) ((v) / 100)
439#define PD_CONVERT_AUGMENTED_PDO_CURRENT_TO_MA(c) ((c) * 50)
446#define PD_CONVERT_AUGMENTED_PDO_VOLTAGE_TO_MV(v) ((v) * 100)
pd_ext_msg_type
Extended message type for REV 3.0 See Table 6-48 Extended Message Types.
Definition: usbc_pd.h:774
pd_frs_type
Fast Role Swap Required for USB Type-C current.
Definition: usbc_pd.h:246
pd_ctrl_msg_type
Control Message type See Table 6-5 Control Message Types.
Definition: usbc_pd.h:686
pd_data_msg_type
Data message type See Table 6-6 Data Message Types.
Definition: usbc_pd.h:744
pd_rev_type
Protocol revision.
Definition: usbc_pd.h:646
#define PD_MAX_EXTENDED_MSG_LEN
Maximum length of an Extended Message in bytes. See Table 6-75 Value Parameters Parameter Name: MaxEx...
Definition: usbc_pd.h:42
pdo_src_type
Power Data Object Source Type Table 6-7 Power Data Object.
Definition: usbc_pd.h:169
pd_packet_type
Power Delivery packet type See USB Type-C Port Controller Interface Specification,...
Definition: usbc_pd.h:660
usbpd_cc_pin
Active PD CC pin.
Definition: usbc_pd.h:812
@ PD_EXT_SECURITY_REQUEST
Definition: usbc_pd.h:792
@ PD_EXT_FIRMWARE_UPDATE_REQUEST
Definition: usbc_pd.h:796
@ PD_EXT_FIRMWARE_UPDATE_RESPONSE
Definition: usbc_pd.h:798
@ PD_EXT_MANUFACTURER_INFO
Definition: usbc_pd.h:790
@ PD_EXT_SOURCE_CAP
Definition: usbc_pd.h:778
@ PD_EXT_GET_BATTERY_STATUS
Definition: usbc_pd.h:784
@ PD_EXT_PPS_STATUS
Definition: usbc_pd.h:800
@ PD_EXT_STATUS
Definition: usbc_pd.h:780
@ PD_EXT_GET_BATTERY_CAP
Definition: usbc_pd.h:782
@ PD_EXT_COUNTRY_INFO
Definition: usbc_pd.h:802
@ PD_EXT_GET_MANUFACTURER_INFO
Definition: usbc_pd.h:788
@ PD_EXT_SECURITY_RESPONSE
Definition: usbc_pd.h:794
@ PD_EXT_COUNTRY_CODES
Definition: usbc_pd.h:804
@ PD_EXT_BATTERY_CAP
Definition: usbc_pd.h:786
@ FRS_DEFAULT_USB_POWER
Definition: usbc_pd.h:250
@ FRS_3P0A_5V
Definition: usbc_pd.h:254
@ FRS_1P5A_5V
Definition: usbc_pd.h:252
@ FRS_NOT_SUPPORTED
Definition: usbc_pd.h:248
@ PD_CTRL_DATA_RESET
Definition: usbc_pd.h:719
@ PD_CTRL_FR_SWAP
Definition: usbc_pd.h:729
@ PD_CTRL_GET_STATUS
Definition: usbc_pd.h:727
@ PD_CTRL_DATA_RESET_COMPLETE
Definition: usbc_pd.h:721
@ PD_CTRL_WAIT
Definition: usbc_pd.h:712
@ PD_CTRL_DR_SWAP
Definition: usbc_pd.h:706
@ PD_CTRL_GOTO_MIN
Definition: usbc_pd.h:692
@ PD_CTRL_ACCEPT
Definition: usbc_pd.h:694
@ PD_CTRL_GET_COUNTRY_CODES
Definition: usbc_pd.h:733
@ PD_CTRL_VCONN_SWAP
Definition: usbc_pd.h:710
@ PD_CTRL_PING
Definition: usbc_pd.h:698
@ PD_CTRL_GET_SOURCE_CAP
Definition: usbc_pd.h:702
@ PD_CTRL_REJECT
Definition: usbc_pd.h:696
@ PD_CTRL_GET_SINK_CAP_EXT
Definition: usbc_pd.h:735
@ PD_CTRL_GET_SINK_CAP
Definition: usbc_pd.h:704
@ PD_CTRL_GET_SOURCE_CAP_EXT
Definition: usbc_pd.h:725
@ PD_CTRL_GET_PPS_STATUS
Definition: usbc_pd.h:731
@ PD_CTRL_NOT_SUPPORTED
Definition: usbc_pd.h:723
@ PD_CTRL_PR_SWAP
Definition: usbc_pd.h:708
@ PD_CTRL_SOFT_RESET
Definition: usbc_pd.h:714
@ PD_CTRL_GOOD_CRC
Definition: usbc_pd.h:690
@ PD_CTRL_PS_RDY
Definition: usbc_pd.h:700
@ PD_DATA_ENTER_USB
Definition: usbc_pd.h:765
@ PD_DATA_SINK_CAP
Definition: usbc_pd.h:754
@ PD_DATA_BIST
Definition: usbc_pd.h:752
@ PD_DATA_ALERT
Definition: usbc_pd.h:758
@ PD_DATA_GET_COUNTRY_INFO
Definition: usbc_pd.h:760
@ PD_DATA_VENDOR_DEF
Definition: usbc_pd.h:767
@ PD_DATA_BATTERY_STATUS
Definition: usbc_pd.h:756
@ PD_DATA_SOURCE_CAP
Definition: usbc_pd.h:748
@ PD_DATA_REQUEST
Definition: usbc_pd.h:750
@ PD_REV10
Definition: usbc_pd.h:648
@ PD_REV20
Definition: usbc_pd.h:650
@ PD_REV30
Definition: usbc_pd.h:652
@ PDO_VARIABLE
Definition: usbc_pd.h:175
@ PDO_BATTERY
Definition: usbc_pd.h:173
@ PDO_FIXED
Definition: usbc_pd.h:171
@ PDO_AUGMENTED
Definition: usbc_pd.h:177
@ PD_PACKET_SOP
Definition: usbc_pd.h:662
@ PD_PACKET_DEBUG_PRIME_PRIME
Definition: usbc_pd.h:670
@ PD_PACKET_CABLE_RESET
Definition: usbc_pd.h:674
@ PD_PACKET_MSG_INVALID
Definition: usbc_pd.h:679
@ PD_PACKET_PRIME_PRIME
Definition: usbc_pd.h:666
@ PD_PACKET_DEBUG_PRIME
Definition: usbc_pd.h:668
@ PD_PACKET_TX_HARD_RESET
Definition: usbc_pd.h:672
@ PD_PACKET_SOP_PRIME
Definition: usbc_pd.h:664
@ PD_PACKET_TX_BIST_MODE_2
Definition: usbc_pd.h:676
@ USBPD_CC_PIN_2
Definition: usbc_pd.h:816
@ USBPD_CC_PIN_1
Definition: usbc_pd.h:814
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Power Delivery message.
Definition: usbc_pd.h:822
uint32_t len
Definition: usbc_pd.h:828
uint8_t data[260]
Definition: usbc_pd.h:830
union pd_header header
Definition: usbc_pd.h:826
enum pd_packet_type type
Definition: usbc_pd.h:824
Create Augmented Supply PDO Sink value See Table 6-17 Programmable Power Supply APDO - Sink.
Definition: usbc_pd.h:485
uint32_t max_current
Definition: usbc_pd.h:488
uint32_t reserved3
Definition: usbc_pd.h:504
uint32_t reserved1
Definition: usbc_pd.h:494
uint32_t reserved0
Definition: usbc_pd.h:490
enum pdo_src_type type
Definition: usbc_pd.h:506
uint32_t min_voltage
Definition: usbc_pd.h:492
uint32_t reserved2
Definition: usbc_pd.h:498
uint32_t raw_value
Definition: usbc_pd.h:509
uint32_t max_voltage
Definition: usbc_pd.h:496
Create Augmented Supply PDO Source value See Table 6-13 Programmable Power Supply APDO - Source.
Definition: usbc_pd.h:452
uint32_t raw_value
Definition: usbc_pd.h:478
enum pdo_src_type type
Definition: usbc_pd.h:475
uint32_t min_voltage
Definition: usbc_pd.h:459
uint32_t max_current
Definition: usbc_pd.h:455
uint32_t reserved3
Definition: usbc_pd.h:473
uint32_t reserved2
Definition: usbc_pd.h:465
uint32_t max_voltage
Definition: usbc_pd.h:463
uint32_t pps_power_limited
Definition: usbc_pd.h:467
uint32_t reserved0
Definition: usbc_pd.h:457
uint32_t reserved1
Definition: usbc_pd.h:461
Create a Battery Supply PDO Sink value See Table 6-16 Battery Supply PDO - Sink.
Definition: usbc_pd.h:405
uint32_t operational_power
Definition: usbc_pd.h:408
uint32_t min_voltage
Definition: usbc_pd.h:410
uint32_t max_voltage
Definition: usbc_pd.h:412
uint32_t raw_value
Definition: usbc_pd.h:417
enum pdo_src_type type
Definition: usbc_pd.h:414
Create a Battery Supply PDO Source value See Table 6-12 Battery Supply PDO - Source.
Definition: usbc_pd.h:386
uint32_t max_power
Definition: usbc_pd.h:389
uint32_t raw_value
Definition: usbc_pd.h:398
uint32_t max_voltage
Definition: usbc_pd.h:393
enum pdo_src_type type
Definition: usbc_pd.h:395
uint32_t min_voltage
Definition: usbc_pd.h:391
Create a Fixed Supply PDO Sink value See Table 6-14 Fixed Supply PDO - Sink.
Definition: usbc_pd.h:261
uint32_t usb_comms_capable
Definition: usbc_pd.h:274
uint32_t reserved0
Definition: usbc_pd.h:268
uint32_t operational_current
Definition: usbc_pd.h:264
uint32_t higher_capability
Definition: usbc_pd.h:278
uint32_t dual_role_data
Definition: usbc_pd.h:272
enum pd_frs_type frs_required
Definition: usbc_pd.h:270
uint32_t dual_role_power
Definition: usbc_pd.h:280
uint32_t unconstrained_power
Definition: usbc_pd.h:276
uint32_t voltage
Definition: usbc_pd.h:266
enum pdo_src_type type
Definition: usbc_pd.h:282
uint32_t raw_value
Definition: usbc_pd.h:285
Create a Fixed Supply PDO Source value See Table 6-9 Fixed Supply PDO - Source.
Definition: usbc_pd.h:214
uint32_t peak_current
Definition: usbc_pd.h:221
uint32_t unchunked_ext_msg_supported
Definition: usbc_pd.h:225
uint32_t usb_suspend_supported
Definition: usbc_pd.h:233
uint32_t voltage
Definition: usbc_pd.h:219
uint32_t reserved0
Definition: usbc_pd.h:223
uint32_t usb_comms_capable
Definition: usbc_pd.h:229
uint32_t dual_role_data
Definition: usbc_pd.h:227
uint32_t max_current
Definition: usbc_pd.h:217
uint32_t raw_value
Definition: usbc_pd.h:240
uint32_t unconstrained_power
Definition: usbc_pd.h:231
enum pdo_src_type type
Definition: usbc_pd.h:237
uint32_t dual_role_power
Definition: usbc_pd.h:235
The Request Data Object (RDO) Shall be returned by the Sink making a request for power....
Definition: usbc_pd.h:517
struct pd_rdo::@159 fixed
Create a Fixed RDO value See Table 6-19 Fixed and Variable Request Data Object.
uint32_t usb_comm_capable
Definition: usbc_pd.h:540
uint32_t min_or_max_operating_current
Definition: usbc_pd.h:530
uint32_t raw_value
Definition: usbc_pd.h:640
uint32_t reserved2
Definition: usbc_pd.h:633
uint32_t operating_power
Definition: usbc_pd.h:592
uint32_t operating_current
Definition: usbc_pd.h:532
uint32_t reserved3
Definition: usbc_pd.h:637
uint32_t reserved1
Definition: usbc_pd.h:548
uint32_t reserved0
Definition: usbc_pd.h:534
uint32_t min_operating_power
Definition: usbc_pd.h:590
struct pd_rdo::@160 variable
Create a Variable RDO value See Table 6-19 Fixed and Variable Request Data Object.
struct pd_rdo::@162 augmented
Create an Augmented RDO value See Table 6-22 Programmable Request Data Object.
struct pd_rdo::@161 battery
Create a Battery RDO value See Table 6-20 Battery Request Data Object.
uint32_t output_voltage
Definition: usbc_pd.h:621
uint32_t giveback
Definition: usbc_pd.h:544
uint32_t unchunked_ext_msg_supported
Definition: usbc_pd.h:536
uint32_t no_usb_suspend
Definition: usbc_pd.h:538
uint32_t cap_mismatch
Definition: usbc_pd.h:542
uint32_t object_pos
Definition: usbc_pd.h:546
Create a Variable Supply PDO Sink value See Table 6-15 Variable Supply (non-Battery) PDO - Sink.
Definition: usbc_pd.h:339
uint32_t raw_value
Definition: usbc_pd.h:351
uint32_t min_voltage
Definition: usbc_pd.h:344
uint32_t operational_current
Definition: usbc_pd.h:342
uint32_t max_voltage
Definition: usbc_pd.h:346
enum pdo_src_type type
Definition: usbc_pd.h:348
Create a Variable Supply PDO Source value See Table 6-11 Variable Supply (non-Battery) PDO - Source.
Definition: usbc_pd.h:320
uint32_t max_voltage
Definition: usbc_pd.h:327
uint32_t min_voltage
Definition: usbc_pd.h:325
uint32_t max_current
Definition: usbc_pd.h:323
enum pdo_src_type type
Definition: usbc_pd.h:329
uint32_t raw_value
Definition: usbc_pd.h:332