summaryrefslogtreecommitdiff
path: root/include/usb_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/usb_common.h')
-rw-r--r--include/usb_common.h285
1 files changed, 0 insertions, 285 deletions
diff --git a/include/usb_common.h b/include/usb_common.h
deleted file mode 100644
index 5fc215798f..0000000000
--- a/include/usb_common.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef __CROS_EC_USB_COMMON_H
-#define __CROS_EC_USB_COMMON_H
-
-/* Functions that are shared between old and new PD stacks */
-#include "usb_pd.h"
-#include "usb_pd_tcpm.h"
-
-enum pd_drp_next_states {
- DRP_TC_DEFAULT,
- DRP_TC_UNATTACHED_SNK,
- DRP_TC_ATTACHED_WAIT_SNK,
- DRP_TC_UNATTACHED_SRC,
- DRP_TC_ATTACHED_WAIT_SRC,
- DRP_TC_DRP_AUTO_TOGGLE
-};
-
-/**
- * Returns the next state to transition to while in the drp auto toggle state.
- *
- * @param drp_sink_time timer for handling TOGGLE_OFF/FORCE_SINK mode when
- * auto-toggle enabled. This is an in/out variable.
- * @param power_role current power role
- * @param drp_state dual role states
- * @param cc1 value of CC1 set by tcpm_get_cc
- * @param cc2 value of CC2 set by tcpm_get_cc
- * @param auto_toggle_supported indicates hardware auto toggle support.
- * Hardware auto toggle support will perform the
- * unattached to attached debouncing before notifying
- * us of a connection.
- *
- */
-enum pd_drp_next_states drp_auto_toggle_next_state(uint64_t *drp_sink_time,
- enum pd_power_role power_role, enum pd_dual_role_states drp_state,
- enum tcpc_cc_voltage_status cc1, enum tcpc_cc_voltage_status cc2,
- bool auto_toggle_supported);
-
-enum pd_pref_type {
- /* prefer voltage larger than or equal to pd_pref_config.mv */
- PD_PREFER_BUCK,
- /* prefer voltage less than or equal to pd_pref_config.mv */
- PD_PREFER_BOOST,
-};
-
-struct pd_pref_config_t {
- /* Preferred PD voltage in mV */
- int mv;
- /* above which percent the battery is in constant voltage stage */
- int cv;
- /* System PLT (minimum consuming) power in mW. */
- int plt_mw;
- /* Preferred PD voltage pick strategy */
- enum pd_pref_type type;
-};
-
-/*
- * This function converts an 8 character ascii string with hex digits, without
- * the 0x prefix, into a signed 32-bit number.
- *
- * @param str pointer to hex string to convert
- * @param val pointer to where the integer version is stored
- * @return EC_SUCCSSS on success else EC_ERROR_INVAL on failure
- */
-int hex8tou32(char *str, uint32_t *val);
-
-/*
- * Flash a USB PD device using the ChromeOS Vendor Defined Command.
- *
- * @param argc number arguments in argv. Must be greater than 3.
- * @param argv [1] is the usb port
- * [2] unused
- * [3] is the command {"erase", "rebooot", "signature",
- * "info", "version", "write"}
- * [4] if command was "write", then this will be the
- * start of the data that will be written.
- * @return EC_SUCCESS on success, else EC_ERROR_PARAM_COUNT or EC_ERROR_PARAM2
- * on failure.
- */
-int remote_flashing(int argc, char **argv);
-
-/*
- * When AP requests to suspend PD traffic on the EC so it can do
- * firmware upgrade (retimer firmware, or TCPC chips firmware),
- * it calls this function to check if power is ready for performing
- * the upgrade.
- * @param port USB-C port number
- * @dreturn true - power is ready
- * false - power is not ready
- */
-bool pd_firmware_upgrade_check_power_readiness(int port);
-
-/* Returns the battery percentage [0-100] of the system. */
-int usb_get_battery_soc(void);
-
-/*
- * Returns type C current limit (mA), potentially with the DTS flag, based upon
- * states of the CC lines on the partner side.
- *
- * @param polarity port polarity
- * @param cc1 value of CC1 set by tcpm_get_cc
- * @param cc2 value of CC2 set by tcpm_get_cc
- * @return current limit (mA) with DTS flag set if appropriate
- */
-typec_current_t usb_get_typec_current_limit(enum tcpc_cc_polarity polarity,
- enum tcpc_cc_voltage_status cc1, enum tcpc_cc_voltage_status cc2);
-
-/**
- * Returns the polarity of a Sink.
- *
- * @param cc1 value of CC1 set by tcpm_get_cc
- * @param cc2 value of CC2 set by tcpm_get_cc
- * @return polarity
- */
-enum tcpc_cc_polarity get_snk_polarity(enum tcpc_cc_voltage_status cc1,
- enum tcpc_cc_voltage_status cc2);
-
-/**
- * Returns the polarity of a Source.
- *
- * @param cc1 value of CC1 set by tcpm_get_cc
- * @param cc2 value of CC2 set by tcpm_get_cc
- * @return polarity
- */
-enum tcpc_cc_polarity get_src_polarity(enum tcpc_cc_voltage_status cc1,
- enum tcpc_cc_voltage_status cc2);
-
-/**
- * Find PDO index that offers the most amount of power and stays within
- * max_mv voltage.
- *
- * @param src_cap_cnt
- * @param src_caps
- * @param max_mv maximum voltage (or -1 if no limit)
- * @param pdo raw pdo corresponding to index, or index 0 on error (output)
- * @return index of PDO within source cap packet
- */
-int pd_find_pdo_index(uint32_t src_cap_cnt, const uint32_t * const src_caps,
- int max_mv, uint32_t *selected_pdo);
-
-/**
- * Extract power information out of a Power Data Object (PDO)
- *
- * @param pdo raw pdo to extract
- * @param ma current of the PDO (output)
- * @param max_mv maximum voltage of the PDO (output)
- * @param min_mv minimum voltage of the PDO (output)
- */
-void pd_extract_pdo_power(uint32_t pdo, uint32_t *ma, uint32_t *max_mv,
- uint32_t *min_mv);
-
-/**
- * Decide which PDO to choose from the source capabilities.
- *
- * @param vpd_vdo VPD VDO
- * @param rdo requested Request Data Object.
- * @param ma selected current limit (stored on success)
- * @param mv selected supply voltage (stored on success)
- * @param port USB-C port number
- */
-void pd_build_request(int32_t vpd_vdo, uint32_t *rdo, uint32_t *ma,
- uint32_t *mv, int port);
-
-/**
- * Notifies a task that is waiting on a system jump, that it's complete.
- */
-void notify_sysjump_ready(void);
-
-/**
- * Set USB MUX with current data role
- *
- * @param port USB-C port number
- */
-void set_usb_mux_with_current_data_role(int port);
-
-/**
- * Check if the mux should be set to enable USB3.1 mode based only on being in a
- * UFP data role. This is mode is required when attached to a port partner that
- * is type-c only, but still needs to enable USB3.1 mode.
- *
- * @param port USB-C port number
- * @return true if USB3 mode should be enabled, false otherwise
- */
-__override_proto bool usb_ufp_check_usb3_enable(int port);
-
-/**
- * Configure the USB MUX in safe mode.
- * Before entering into alternate mode, state of the USB-C MUX needs to be in
- * safe mode.
- * Ref: USB Type-C Cable and Connector Specification
- * Section E.2.2 Alternate Mode Electrical Requirements
- *
- * @param port The PD port number
- */
-void usb_mux_set_safe_mode(int port);
-
-/**
- * Configure the USB MUX in safe mode while exiting an alternate mode.
- * Although the TCSS (virtual mux) has a distinct safe mode state, it
- * needs to be in a disconnected state to properly exit an alternate
- * mode. Therefore, do not treat the virtual mux as a special case, as
- * usb_mux_set_safe_mode does.
- *
- * @param port The PD port number
- */
-void usb_mux_set_safe_mode_exit(int port);
-
-/**
- * Get the PD flags stored in BB Ram
- *
- * @param port USB-C port number
- * @param flags pointer where flags are written to
- * @return EC_SUCCESS on success
- */
-int pd_get_saved_port_flags(int port, uint8_t *flags);
-
-/**
- * Update the flag in BB Ram with the give value
- *
- * @param port USB-C port number
- * @param flag BB Ram flag to update
- * @param do_set value written to the BB Ram flag
- */
-void pd_update_saved_port_flags(int port, uint8_t flag, uint8_t do_set);
-
-/**
- * Build PD alert message
- *
- * @param msg pointer where message is stored
- * @param len pointer where length of message is stored in bytes
- * @param pr current PD power role
- * @return EC_SUCCESS on success else EC_ERROR_INVAL
- */
-int pd_build_alert_msg(uint32_t *msg, uint32_t *len, enum pd_power_role pr);
-
-/**
- * During USB retimer firmware update, process operation
- * requested by AP
- *
- * @param port USB-C port number
- * @param op
- * 0 - USB_RETIMER_FW_UPDATE_QUERY_PORT
- * 1 - USB_RETIMER_FW_UPDATE_SUSPEND_PD
- * 2 - USB_RETIMER_FW_UPDATE_RESUME_PD
- * 3 - USB_RETIMER_FW_UPDATE_GET_MUX
- * 4 - USB_RETIMER_FW_UPDATE_SET_USB
- * 5 - USB_RETIMER_FW_UPDATE_SET_SAFE
- * 6 - USB_RETIMER_FW_UPDATE_SET_TBT
- * 7 - USB_RETIMER_FW_UPDATE_DISCONNECT
- */
-void usb_retimer_fw_update_process_op(int port, int op);
-
-/**
- * Get result of last USB retimer firmware update operation requested
- * by AP. Result is passed to AP via EC_CMD_ACPI_READ.
- *
- * @return Result of last operation. It's
- * which port has retimer if last operation is
- * USB_RETIMER_FW_UPDATE_QUERY_PORT;
- * PD task is enabled or not if last operations are
- * USB_RETIMER_FW_UPDATE_SUSPEND_PD or
- * USB_RETIMER_FW_UPDATE_QUERY_PORT;
- * current mux if last operations are
- * USB_RETIMER_FW_UPDATE_GET_MUX, USB_RETIMER_FW_UPDATE_SET_USB,
- * USB_RETIMER_FW_UPDATE_SET_SAFE, USB_RETIMER_FW_UPDATE_SET_TBT,
- * or USB_RETIMER_FW_UPDATE_DISCONNECT.
- */
-int usb_retimer_fw_update_get_result(void);
-
-/**
- * Process deferred retimer firmware update operations.
- *
- * @param port USB-C port number
- */
-void usb_retimer_fw_update_process_op_cb(int port);
-
-/**
- * Dump SourceCap information.
- *
- * @param port USB-C port number
- */
-void pd_srccaps_dump(int port);
-#endif /* __CROS_EC_USB_COMMON_H */