summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/usb_pd_policy.c15
-rw-r--r--common/usb_pd_protocol.c2
-rw-r--r--include/usb_pd.h18
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