summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/usb_pd.h2
-rw-r--r--include/usb_pd_vdo.h104
2 files changed, 55 insertions, 51 deletions
diff --git a/include/usb_pd.h b/include/usb_pd.h
index eb3b84359b..67de78a3ac 100644
--- a/include/usb_pd.h
+++ b/include/usb_pd.h
@@ -362,6 +362,8 @@ union disc_ident_ack {
uint32_t raw_value[PDO_MAX_OBJECTS - 1];
};
+BUILD_ASSERT(sizeof(union disc_ident_ack) ==
+ sizeof(uint32_t) * (PDO_MAX_OBJECTS - 1));
/* Discover Identity data - ACK plus discovery state */
struct identity_data {
diff --git a/include/usb_pd_vdo.h b/include/usb_pd_vdo.h
index d43c92d144..2cecec5d84 100644
--- a/include/usb_pd_vdo.h
+++ b/include/usb_pd_vdo.h
@@ -162,18 +162,18 @@ enum usb_vbus_cur {
union passive_cable_vdo_rev30 {
struct {
enum usb_rev30_ss ss: 3;
- uint8_t reserved0 : 2;
+ uint32_t reserved0 : 2;
enum usb_vbus_cur vbus_cur : 2;
- uint8_t reserved1 : 2;
- uint8_t vbus_max : 2;
- uint8_t termination : 2;
- uint8_t latency : 4;
- uint8_t reserved2 : 1;
- uint8_t connector : 2;
- uint8_t reserved3 : 1;
- uint8_t vdo_version : 3;
- uint8_t fw_version : 4;
- uint8_t hw_version : 4;
+ uint32_t reserved1 : 2;
+ uint32_t vbus_max : 2;
+ uint32_t termination : 2;
+ uint32_t latency : 4;
+ uint32_t reserved2 : 1;
+ uint32_t connector : 2;
+ uint32_t reserved3 : 1;
+ uint32_t vdo_version : 3;
+ uint32_t fw_version : 4;
+ uint32_t hw_version : 4;
};
uint32_t raw_value;
};
@@ -246,20 +246,20 @@ union passive_cable_vdo_rev30 {
union active_cable_vdo1_rev30 {
struct {
enum usb_rev30_ss ss: 3;
- uint8_t sop_p_p : 1;
- uint8_t vbus_cable : 1;
+ uint32_t sop_p_p : 1;
+ uint32_t vbus_cable : 1;
enum usb_vbus_cur vbus_cur : 2;
- uint8_t sbu_type : 1;
- uint8_t sbu_support : 1;
- uint8_t vbus_max : 2;
- uint8_t termination : 2;
- uint8_t latency : 4;
- uint8_t reserved0 : 1;
- uint8_t connector : 2;
- uint8_t reserved1 : 1;
- uint8_t vdo_version : 3;
- uint8_t fw_version : 4;
- uint8_t hw_version : 4;
+ uint32_t sbu_type : 1;
+ uint32_t sbu_support : 1;
+ uint32_t vbus_max : 2;
+ uint32_t termination : 2;
+ uint32_t latency : 4;
+ uint32_t reserved0 : 1;
+ uint32_t connector : 2;
+ uint32_t reserved1 : 1;
+ uint32_t vdo_version : 3;
+ uint32_t fw_version : 4;
+ uint32_t hw_version : 4;
};
uint32_t raw_value;
};
@@ -594,20 +594,20 @@ enum usb_rev20_ss {
union passive_cable_vdo_rev20 {
struct {
enum usb_rev20_ss ss: 3;
- uint8_t reserved0 : 1;
- uint8_t vbus_cable : 1;
+ uint32_t reserved0 : 1;
+ uint32_t vbus_cable : 1;
enum usb_vbus_cur vbus_cur : 2;
- uint8_t ssrx2 : 1;
- uint8_t ssrx1 : 1;
- uint8_t sstx2 : 1;
- uint8_t sstx1 : 1;
- uint8_t termination : 2;
- uint8_t latency : 4;
- uint8_t reserved1 : 1;
- uint8_t connector : 2;
- uint8_t reserved2 : 4;
- uint8_t fw_version : 4;
- uint8_t hw_version : 4;
+ uint32_t ssrx2 : 1;
+ uint32_t ssrx1 : 1;
+ uint32_t sstx2 : 1;
+ uint32_t sstx1 : 1;
+ uint32_t termination : 2;
+ uint32_t latency : 4;
+ uint32_t reserved1 : 1;
+ uint32_t connector : 2;
+ uint32_t reserved2 : 4;
+ uint32_t fw_version : 4;
+ uint32_t hw_version : 4;
};
uint32_t raw_value;
};
@@ -677,21 +677,21 @@ union passive_cable_vdo_rev20 {
union active_cable_vdo_rev20 {
struct {
enum usb_rev20_ss ss: 3;
- uint8_t sop_p_p : 1;
- uint8_t vbus_cable : 1;
+ uint32_t sop_p_p : 1;
+ uint32_t vbus_cable : 1;
enum usb_vbus_cur vbus_cur : 2;
- uint8_t ssrx2 : 1;
- uint8_t ssrx1 : 1;
- uint8_t sstx2 : 1;
- uint8_t sstx1 : 1;
- uint8_t termination : 2;
- uint8_t latency : 4;
- uint8_t reserved0 : 1;
- uint8_t connector : 2;
- uint8_t reserved1 : 1;
- uint8_t vdo_version : 3;
- uint8_t fw_version : 4;
- uint8_t hw_version : 4;
+ uint32_t ssrx2 : 1;
+ uint32_t ssrx1 : 1;
+ uint32_t sstx2 : 1;
+ uint32_t sstx1 : 1;
+ uint32_t termination : 2;
+ uint32_t latency : 4;
+ uint32_t reserved0 : 1;
+ uint32_t connector : 2;
+ uint32_t reserved1 : 1;
+ uint32_t vdo_version : 3;
+ uint32_t fw_version : 4;
+ uint32_t hw_version : 4;
};
uint32_t raw_value;
};
@@ -862,11 +862,13 @@ union product_type_vdo1 {
uint32_t raw_value;
};
+BUILD_ASSERT(sizeof(uint32_t) == sizeof(union product_type_vdo1));
union product_type_vdo2 {
union active_cable_vdo2_rev30 a2_rev30;
uint32_t raw_value;
};
+BUILD_ASSERT(sizeof(uint32_t) == sizeof(union product_type_vdo2));
#endif /* __CROS_EC_USB_PD_VDO_H */