summaryrefslogtreecommitdiff
path: root/include/usb_pd.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/usb_pd.h')
-rw-r--r--include/usb_pd.h44
1 files changed, 41 insertions, 3 deletions
diff --git a/include/usb_pd.h b/include/usb_pd.h
index a5d6bbf34c..436b217a9a 100644
--- a/include/usb_pd.h
+++ b/include/usb_pd.h
@@ -285,6 +285,8 @@ struct svid_mode_data {
int mode_cnt;
/* The discovered mode VDOs */
uint32_t mode_vdo[PDO_MODES];
+ /* State of mode discovery for this SVID */
+ enum pd_discovery_state discovery;
};
struct svdm_amode_fx {
@@ -1696,14 +1698,50 @@ void pd_set_svids_discovery(int port, enum tcpm_transmit_type type,
/**
* Get SVID discovery state for this type and port
*
- * @param port USB-C port number
- * @param type SOP* type to retrieve
- * @return Current discovery state (failed or complete)
+ * @param port USB-C port number
+ * @param type SOP* type to retrieve
+ * @return Current discovery state (failed or complete)
*/
enum pd_discovery_state pd_get_svids_discovery(int port,
enum tcpm_transmit_type type);
/**
+ * Set Modes discovery state for this port, SOP* type, and SVID.
+ *
+ * @param port USB-C port number
+ * @param type SOP* type to set
+ * @param svid SVID to set mode discovery state for
+ * @param disc Discovery state to set (failed or complete)
+ */
+void pd_set_modes_discovery(int port, enum tcpm_transmit_type type,
+ uint16_t svid, enum pd_discovery_state disc);
+
+/**
+ * Get Modes discovery state for this port and SOP* type. Modes discover is
+ * considered complete for a port and type when modes have been discovered for
+ * all discovered SVIDs. Mode discovery is failed if mode discovery for any SVID
+ * failed.
+ *
+ * @param port USB-C port number
+ * @param type SOP* type to retrieve
+ * @return Current discovery state (failed or complete)
+ */
+enum pd_discovery_state pd_get_modes_discovery(int port,
+ enum tcpm_transmit_type type);
+
+/**
+ * Get a pointer to mode data for the next SVID with undiscovered modes. This
+ * data may indicate that discovery failed.
+ *
+ * @param port USB-C port number
+ * @param type SOP* type to retrieve
+ * @return Pointer to the first SVID-mode structure with undiscovered mode;
+ * discovery may be needed or failed; returns NULL if all SVIDs have
+ * discovered modes
+ */
+struct svid_mode_data *pd_get_next_mode(int port, enum tcpm_transmit_type type);
+
+/**
* Return a pointer to the discover identity response structure for this SOP*
* type
*