diff options
author | Vic Yang <victoryang@chromium.org> | 2014-07-24 15:23:16 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-07-30 05:31:35 +0000 |
commit | 139a9c6880709586e677554643bb1b301da84c77 (patch) | |
tree | dfe70fdd1f7209f3f476ec0a2c48b8d21f612b3e /include | |
parent | 9797f654d935cdd75ede4ef98b762284d54a5da4 (diff) | |
download | chrome-ec-139a9c6880709586e677554643bb1b301da84c77.tar.gz |
Host command for USB PD role and mux control
This allows us to control PD role and type-C mux through ectool.
BUG=None
TEST=Change role/mux on samus using ectool:
$ ./ectool --interface=lpc --dev 1 usbpd 0 usb
-> In EC console, 'typec 0' shows 'Superspeed USB1'
$ ./ectool --interface=lpc --dev 1 usbpd 0 sink
-> In EC console, 'pd 0 state' shows 'force sink'
BRANCH=None
Change-Id: I5b90fb53ea1c30e3bc269c12d61e4398c5dcee6c
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/209956
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/ec_commands.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/ec_commands.h b/include/ec_commands.h index 7233d43bd3..1756a11247 100644 --- a/include/ec_commands.h +++ b/include/ec_commands.h @@ -2500,6 +2500,32 @@ struct ec_response_pd_status { int8_t status; /* currently empty */ } __packed; +/* Set USB type-C port role and muxes */ +#define EC_CMD_USB_PD_CONTROL 0x101 + +enum usb_pd_control_role { + USB_PD_CTRL_ROLE_NO_CHANGE = 0, + USB_PD_CTRL_ROLE_TOGGLE_ON = 1, /* == AUTO */ + USB_PD_CTRL_ROLE_TOGGLE_OFF = 2, + USB_PD_CTRL_ROLE_FORCE_SINK = 3, + USB_PD_CTRL_ROLE_FORCE_SOURCE = 4, +}; + +enum usb_pd_control_mux { + USB_PD_CTRL_MUX_NO_CHANGE = 0, + USB_PD_CTRL_MUX_NONE = 1, + USB_PD_CTRL_MUX_USB = 2, + USB_PD_CTRL_MUX_DP = 3, + USB_PD_CTRL_MUX_DOCK = 4, + USB_PD_CTRL_MUX_AUTO = 5, +}; + +struct ec_params_usb_pd_control { + uint8_t port; + uint8_t role; + uint8_t mux; +} __packed; + /*****************************************************************************/ /* * Passthru commands |