diff options
Diffstat (limited to 'include/usb_tc_sm.h')
-rw-r--r-- | include/usb_tc_sm.h | 397 |
1 files changed, 0 insertions, 397 deletions
diff --git a/include/usb_tc_sm.h b/include/usb_tc_sm.h deleted file mode 100644 index 71b895b78f..0000000000 --- a/include/usb_tc_sm.h +++ /dev/null @@ -1,397 +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. - */ - -/* USB Type-C module */ - -#ifndef __CROS_EC_USB_TC_H -#define __CROS_EC_USB_TC_H - -#include "usb_sm.h" -#include "usb_pd.h" -#include "usb_pd_tcpm.h" - -enum try_src_override_t { - TRY_SRC_OVERRIDE_OFF, - TRY_SRC_OVERRIDE_ON, - TRY_SRC_NO_OVERRIDE -}; - -/* - * Type C supply voltage (mV) - * - * This is the maximum voltage a sink can request - * while charging. - */ -#define TYPE_C_VOLTAGE 5000 /* mV */ - -/* - * Type C default sink current (mA) - * - * This is the maximum current a sink can draw if charging - * while in the Audio Accessory State. - */ -#define TYPE_C_AUDIO_ACC_CURRENT 500 /* mA */ - -/** - * Returns true if TypeC State machine is in attached source state. - * - * @param port USB-C port number - * @return 1 if in attached source state, else 0 - */ -int tc_is_attached_src(int port); - -/** - * Returns true if TypeC State machine is in attached sink state. - * - * @param port USB-C port number - * @return 1 if in attached source state, else 0 - */ -int tc_is_attached_snk(int port); - -/** - * Get cable plug setting. This should be constant per build. This replaces - * the power role bit in PD header for SOP' and SOP" packets. - * - * @param port USB-C port number - * @return PD cable plug setting - */ -enum pd_cable_plug tc_get_cable_plug(int port); - -/** - * Get current polarity - * - * @param port USB-C port number - * @return 0 for CC1 as primary, 1 for CC2 as primary - */ -uint8_t tc_get_polarity(int port); - -/** - * Get Power Deliever communication state. If disabled, both protocol and policy - * engine are disabled and should not run. - * - * @param port USB-C port number - * @return 0 if pd is disabled, 1 is pd is enabled - */ -uint8_t tc_get_pd_enabled(int port); - -/** - * Set the power role - * - * @param port USB-C port number - * @param role power role - */ -void tc_set_power_role(int port, enum pd_power_role role); - -/** - * Set the data role - * - * @param port USB-C port number - * @param role data role - */ -void tc_set_data_role(int port, enum pd_data_role role); - -/** - * Sets the USB Mux depending on current data role - * Mux is connected except when: - * 1) PD is disconnected - * 2) Current data role is UFP and we only support DFP - * - * @param port USB-C port number - */ -void set_usb_mux_with_current_data_role(int port); - -/** - * Policy Engine informs the Type-C state machine if the port partner - * is dualrole power. - * - * @param port USB_C port number - * @param en 1 if port partner is dualrole power, else 0 - */ -void tc_partner_dr_power(int port, int en); - -/** - * Policy Engine informs the Type-C state machine if the port partner - * has unconstrained power - * - * @param port USB_C port number - * @param en 1 if port partner has unconstrained power, else 0 - */ -void tc_partner_unconstrainedpower(int port, int en); - -/** - * Policy Engine informs the Type-C state machine if the port partner - * is USB comms. - * - * @param port USB_C port number - * @param en 1 if port partner is USB comms, else 0 - */ -void tc_partner_usb_comm(int port, int en); - -/** - * Policy Engine informs the Type-C state machine if the port partner - * is dualrole data. - * - * @param port USB_C port number - * @param en 1 if port partner is dualrole data, else 0 - */ -void tc_partner_dr_data(int port, int en); - -/** - * Policy Engine informs the Type-C state machine if the port partner - * had a previous pd connection - * - * @param port USB_C port number - * @param en 1 if port partner had a previous pd connection, else 0 - */ -void tc_pd_connection(int port, int en); - -/** - * Initiates a Power Role Swap from Attached.SRC to Attached.SNK. This function - * has no effect if the current Type-C state is not Attached.SRC. - * - * @param port USB_C port number - */ -void tc_prs_src_snk_assert_rd(int port); - -/** - * Initiates a Power Role Swap from Attached.SNK to Attached.SRC. This function - * has no effect if the current Type-C state is not Attached.SNK. - * - * @param port USB_C port number - */ -void tc_prs_snk_src_assert_rp(int port); - -/** - * Informs the Type-C State Machine that a Power Role Swap is starting. - * This function is called from the Policy Engine. - * - * @parm port USB_C port number - */ -void tc_request_power_swap(int port); - -/** - * Informs the Type-C State Machine that a Power Role Swap is complete. - * This function is called from the Policy Engine. - * - * @param port USB_C port number - * @param success swap completed normally - */ -void tc_pr_swap_complete(int port, bool success); - -/** - * Instructs the Attached.SNK to stop drawing power. This function is called - * from the Policy Engine and only has effect if the current Type-C state - * Attached.SNK. - * - * @param port USB_C port number - */ -void tc_snk_power_off(int port); - -/** - * Instructs the Attached.SRC to stop supplying power. The function has - * no effect if the current Type-C state is not Attached.SRC. - * - * @param port USB_C port number - */ -void tc_src_power_off(int port); - -/** - * Instructs the Attached.SRC to start supplying power. The function has - * no effect if the current Type-C state is not Attached.SRC. - * - * @param port USB_C port number - */ -int tc_src_power_on(int port); - -/** - * Tests if a VCONN Swap is possible. - * - * @param port USB_C port number - * @return 1 if vconn swap is possible, else 0 - */ -int tc_check_vconn_swap(int port); - -/** - * Checks if VCONN is being sourced. - * - * @param port USB_C port number - * @return 1 if vconn is being sourced, 0 if it's not. - */ -int tc_is_vconn_src(int port); - -/** - * Instructs the Attached.SRC or Attached.SNK to start sourcing VCONN. - * This function is called from the Policy Engine and only has effect - * if the current Type-C state Attached.SRC or Attached.SNK. - * - * @param port USB_C port number - */ -void pd_request_vconn_swap_on(int port); - -/** - * Instructs the Attached.SRC or Attached.SNK to stop sourcing VCONN. - * This function is called from the Policy Engine and only has effect - * if the current Type-C state Attached.SRC or Attached.SNK. - * - * @param port USB_C port number - */ -void pd_request_vconn_swap_off(int port); - -/** - * 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 0 if cc1 is connected, else 1 for cc2 - */ -enum tcpc_cc_polarity get_snk_polarity(enum tcpc_cc_voltage_status cc1, - enum tcpc_cc_voltage_status cc2); - -/** - * Called by the state machine framework to initialize the - * TypeC state machine - * - * @param port USB-C port number - */ -void tc_state_init(int port); - -/** - * Called by the state machine framework to handle events - * that affect the state machine as a whole - * - * @param port USB-C port number - * @param evt event - */ -void tc_event_check(int port, int evt); - -/** - * Runs the TypeC layer statemachine - * - * @param port USB-C port number - */ -void tc_run(const int port); - -/** - * Sets the debug level for the TC layer - * - * @param level debug level - */ -void tc_set_debug_level(enum debug_level level); - -/** - * Start error recovery - * - * @param port USB-C port number - */ -void tc_start_error_recovery(int port); - -/** - * Hard Reset the TypeC port - * - * @param port USB-C port number - */ -void tc_hard_reset_request(int port); - -/** - * Hard Reset is complete for the TypeC port - * - * @param port USB-C port number - */ -void tc_hard_reset_complete(int port); - -/** - * Start the state machine event loop - * - * @param port USB-C port number - */ -void tc_start_event_loop(int port); - -/** - * Pauses the state machine event loop - * - * @param port USB-C port number - */ -void tc_pause_event_loop(int port); - -/** - * Determine if the state machine event loop is paused - * - * @param port USB-C port number - * @return true if paused, else false - */ -bool tc_event_loop_is_paused(int port); - -/** - * Allow system to override the control of TrySrc - * - * @param en TRY_SRC_OVERRIDE_OFF - Force TrySrc OFF - * TRY_SRC_OVERRIDE_ON - Force TrySrc ON - * TRY_SRC_NO_OVERRIDE - Allow state machine to control TrySrc - */ -void tc_try_src_override(enum try_src_override_t ov); - -/** - * Get state of try_src_override - * - * @return TRY_SRC_OVERRIDE_OFF - TrySrc is forced OFF - * TRY_SRC_OVERRIDE_ON - TrySrc is forced ON - * TRY_SRC_NO_OVERRIDE - TypeC state machine controls TrySrc - */ -enum try_src_override_t tc_get_try_src_override(void); - -/** - * Returns the name of the current typeC state - * - * @param port USB-C port number - * @return name of current typeC state - */ -const char *tc_get_current_state(int port); - -/** - * Returns the flag mask of the typeC state machine - * - * @param port USB-C port number - * @return flag mask of the typeC state machine - */ -uint32_t tc_get_flags(int port); - -/** - * USB retimer firmware update set run flag - * Setting this flag indicates firmware update operations can be - * processed unconditionally. - * - * @param port USB-C port number - */ -void tc_usb_firmware_fw_update_run(int port); - -/** - * USB retimer firmware update set limited run flag - * Setting this flag indicates firmware update operations can be - * processed under limitation: PD task has to be suspended. - * - * @param port USB-C port number - */ -void tc_usb_firmware_fw_update_limited_run(int port); - -#ifdef CONFIG_USB_CTVPD - -/** - * Resets the charge-through support timer. This can be - * called many times but the support timer will only - * reset once, while in the Attached.SNK state. - * - * @param port USB-C port number - */ -void tc_reset_support_timer(int port); - -#else - -/** - * - */ -void tc_ctvpd_detected(int port); -#endif /* CONFIG_USB_CTVPD */ -#endif /* __CROS_EC_USB_TC_H */ - |