diff options
-rw-r--r-- | common/usb_pd_policy.c | 15 | ||||
-rw-r--r-- | common/usb_pd_protocol.c | 2 | ||||
-rw-r--r-- | include/usb_pd.h | 18 |
3 files changed, 30 insertions, 5 deletions
diff --git a/common/usb_pd_policy.c b/common/usb_pd_policy.c index 9f8b741242..26de109d81 100644 --- a/common/usb_pd_policy.c +++ b/common/usb_pd_policy.c @@ -119,16 +119,23 @@ uint8_t pd_get_src_cap_cnt(int port) return pd_src_cap_cnt[port]; } -void pd_process_source_cap(int port, int cnt, uint32_t *src_caps) +void pd_set_src_caps(int port, int cnt, uint32_t *src_caps) { -#ifdef CONFIG_CHARGE_MANAGER - uint32_t ma, mv, pdo; -#endif int i; pd_src_cap_cnt[port] = cnt; + for (i = 0; i < cnt; i++) pd_src_caps[port][i] = *src_caps++; +} + +void pd_process_source_cap(int port, int cnt, uint32_t *src_caps) +{ +#ifdef CONFIG_CHARGE_MANAGER + uint32_t ma, mv, pdo; +#endif + + pd_set_src_caps(port, cnt, src_caps); #ifdef CONFIG_CHARGE_MANAGER /* Get max power info that we could request */ diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index 973a8240dc..39c072cddc 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -1307,7 +1307,7 @@ static void handle_vdm_request(int port, int cnt, uint32_t *payload) port, PD_VDO_VID(payload[0]), payload[0] & 0xFFFF); } -static __maybe_unused int pd_is_disconnected(int port) +int pd_is_disconnected(int port) { return pd[port].task_state == PD_STATE_SRC_DISCONNECTED #ifdef CONFIG_USB_PD_DUAL_ROLE diff --git a/include/usb_pd.h b/include/usb_pd.h index c2d843863a..00341042e2 100644 --- a/include/usb_pd.h +++ b/include/usb_pd.h @@ -2427,6 +2427,17 @@ const uint32_t * const pd_get_src_caps(int port); */ uint8_t pd_get_src_cap_cnt(int port); + +/** + * Set the source caps list & count + * + * @param port USB-C port number + * @param cnt Source caps count + * @param src_caps Pointer to source caps + * + */ +void pd_set_src_caps(int port, int cnt, uint32_t *src_caps); + /** * Return true if partner port is capable of communication over USB data * lines. @@ -2436,6 +2447,13 @@ uint8_t pd_get_src_cap_cnt(int port); int pd_get_partner_usb_comm_capable(int port); /** + * Return true if PD is in disconnect state + * + * @param port USB-C port number + */ +int pd_is_disconnected(int port); + +/** * Return true if vbus is present on the specified port. * * @param port USB-C port number |