diff options
author | Sam Hurst <shurst@google.com> | 2018-09-13 09:27:08 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-04-08 22:30:19 -0700 |
commit | 0fe6147a9d8d9feef5049aa6c6c4a6ad30d12b26 (patch) | |
tree | 05d4509bcfe68a248ec3fa58168f3de2536c2d9c /include/usb_pe_sm.h | |
parent | e097feb8b2db20cd2435a483517356defa222db1 (diff) | |
download | chrome-ec-0fe6147a9d8d9feef5049aa6c6c4a6ad30d12b26.tar.gz |
chocodile_vpdmcu: Firmware for chocodile mcu
Implement Chocodile Charge-Through Vconn Powered firmware for mcu
using new Type-C/PD State machine stack.
BUG=b:115626873
BRANCH=none
TEST=manual
Charge-Through was tested on an Atlas running a DRP USB-C/PD state
machine with CTUnattached.SNK and CTAttached.SNK states.
Signed-off-by: Sam Hurst <shurst@chromium.org>
Change-Id: I847f1bcd2fc3ce41e66edd133a10c943d5e8c819
Reviewed-on: https://chromium-review.googlesource.com/1225250
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Sam Hurst <shurst@google.com>
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Diffstat (limited to 'include/usb_pe_sm.h')
-rw-r--r-- | include/usb_pe_sm.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/include/usb_pe_sm.h b/include/usb_pe_sm.h new file mode 100644 index 0000000000..a8fd59b08c --- /dev/null +++ b/include/usb_pe_sm.h @@ -0,0 +1,79 @@ +/* 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 Policy Engine module */ + +#ifndef __CROS_EC_USB_PE_H +#define __CROS_EC_USB_PE_H + +enum pe_error { + ERR_RCH_CHUNKED, + ERR_RCH_MSG_REC, + ERR_TCH_CHUNKED, + ERR_TCH_XMIT, +}; + +/** + * Initialize the Policy Engine State Machine + * + * @param port USB-C port number + */ +void pe_init(int port); + +/** + * Runs the Policy Engine State Machine + * + * @param port USB-C port number + * @param evt system event, ie: PD_EVENT_RX + * @param en 0 to disable the machine, 1 to enable the machine + */ +void policy_engine(int port, int evt, int en); + +/** + * Informs the Policy Engine that a message was successfully sent + * + * @param port USB-C port number + */ +void pe_message_sent(int port); + +/** + * Informs the Policy Engine of an error. + * + * @param port USB-C port number + * @parm e error + */ +void pe_report_error(int port, enum pe_error e); + +/** + * Informs the Policy Engine that a message has been received + * + * @param port USB-C port number + * @parm e error + */ +void pe_pass_up_message(int port); + +/** + * Informs the Policy Engine that a hard reset was received. + * + * @param port USB-C port number + */ +void pe_got_hard_reset(int port); + +/** + * Informs the Policy Engine that a soft reset was received. + * + * @param port USB-C port number + */ +void pe_got_soft_reset(int port); + +/** + * Informs the Policy Engine that a hard reset was sent. + * + * @param port USB-C port number + */ +void pe_hard_reset_sent(int port); + +#endif /* __CROS_EC_USB_PE_H */ + |