diff options
author | Derek Huang <derek.huang@intel.corp-partner.google.com> | 2021-09-29 16:39:01 +0800 |
---|---|---|
committer | Tim Wawrzynczak <twawrzynczak@chromium.org> | 2021-10-06 22:17:05 +0000 |
commit | f1f9b3d5f5661fda4176b05528b37cb8951785c3 (patch) | |
tree | 17438d58fcd5165a1a0e054291d20b78657b5b10 /src/ec/google/chromeec | |
parent | 89d8260e3f64a0aa9117f5d39a92743146048348 (diff) |
ec/google/chromeec: Update google_chromeec_usb_pd_control()
Add parameter `active_cable` to obtain the cable type
(active or passive) which is needed for USB-C configuration for
some SoCs (at least Intel TGL and ADL), change the function name to
google_chromeec_usb_pd_get_info() for better understanding.
BUG=b:192947843
Signed-off-by: Derek Huang <derek.huang@intel.corp-partner.google.com>
Change-Id: Ie91a3096d49d5dde75e60ab0f2f38152cef720f6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/58057
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/ec/google/chromeec')
-rw-r--r-- | src/ec/google/chromeec/ec.c | 4 | ||||
-rw-r--r-- | src/ec/google/chromeec/ec.h | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c index 29d04119b8..650fd14fec 100644 --- a/src/ec/google/chromeec/ec.c +++ b/src/ec/google/chromeec/ec.c @@ -1477,7 +1477,8 @@ int google_ec_running_ro(void) return (google_chromeec_get_current_image() == EC_IMAGE_RO); } -int google_chromeec_usb_pd_control(int port, bool *ufp, bool *dbg_acc, uint8_t *dp_mode) +int google_chromeec_usb_pd_get_info(int port, bool *ufp, bool *dbg_acc, + bool *active_cable, uint8_t *dp_mode) { struct ec_params_usb_pd_control pd_control = { .port = port, @@ -1501,6 +1502,7 @@ int google_chromeec_usb_pd_control(int port, bool *ufp, bool *dbg_acc, uint8_t * *ufp = (resp.cc_state == PD_CC_DFP_ATTACHED); *dbg_acc = (resp.cc_state == PD_CC_DFP_DEBUG_ACC); + *active_cable = !!(resp.control_flags & USB_PD_CTRL_ACTIVE_CABLE); *dp_mode = resp.dp_mode; return 0; diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h index 743651b0f9..ebb7ae24a1 100644 --- a/src/ec/google/chromeec/ec.h +++ b/src/ec/google/chromeec/ec.h @@ -34,8 +34,8 @@ int google_chromeec_pd_get_amode(uint16_t svid); */ int google_chromeec_usb_get_pd_mux_info(int port, uint8_t *flags); /* Returns data role and type of device connected */ -int google_chromeec_usb_pd_control(int port, bool *ufp, bool *dbg_acc, - uint8_t *dp_mode); +int google_chromeec_usb_pd_get_info(int port, bool *ufp, bool *dbg_acc, + bool *active_cable, uint8_t *dp_mode); int google_chromeec_wait_for_displayport(long timeout); /* Device events */ |