summaryrefslogtreecommitdiff
path: root/driver/tcpm/anx74xx.c
diff options
context:
space:
mode:
authorCaveh Jalali <caveh@google.com>2017-06-20 18:20:00 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-06-28 23:23:41 -0700
commitc74c0785927ab7770143d5ff503b4c0ca9df9ff1 (patch)
treeb2a5632f3fd95609aded847a26d1a29bcd4beb75 /driver/tcpm/anx74xx.c
parent3a4298ef4835b1f75046ede8cace149e05089d1a (diff)
downloadchrome-ec-c74c0785927ab7770143d5ff503b4c0ca9df9ff1.tar.gz
tcpm: add .release driver operation.
similar to the USB_PD_TCPC case, add release/init operations when the pd_task enters/leaves the PD_STATE_SUSPENDED state. one use case for PD_SUSPEND is to get exlusive access to the TCPC for things like firmware update, so the release/init operation is needed to get the TCPC and driver into a good state. updated all tcpm_drv style drivers. for backward compatibility, "old" drivers that may not handle init/release properly simply return EC_ERROR_UNIMPLEMENTED for tcpm_release(). pd_task() uses this as a signal that it should not try to re-init() the driver. TEST=tested in combination with follow-on CLs to do TCPC firmware update on electro. also built for kevin, eve, sand which are some of the other boards using these drivers. "make buildall -j" passes. BRANCH=none BUG=b:35586896 Change-Id: I3d2964a79e710428f7a6e7004d68ab424af85be8 Signed-off-by: Caveh Jalali <caveh@google.com> Reviewed-on: https://chromium-review.googlesource.com/544660 Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'driver/tcpm/anx74xx.c')
-rw-r--r--driver/tcpm/anx74xx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/driver/tcpm/anx74xx.c b/driver/tcpm/anx74xx.c
index 4c3fd41410..461242d79f 100644
--- a/driver/tcpm/anx74xx.c
+++ b/driver/tcpm/anx74xx.c
@@ -1060,8 +1060,14 @@ static int anx74xx_tcpm_init(int port)
return EC_SUCCESS;
}
+static int anx74xx_tcpm_release(int port)
+{
+ return EC_ERROR_UNIMPLEMENTED;
+}
+
const struct tcpm_drv anx74xx_tcpm_drv = {
.init = &anx74xx_tcpm_init,
+ .release = &anx74xx_tcpm_release,
.get_cc = &anx74xx_tcpm_get_cc,
#ifdef CONFIG_USB_PD_VBUS_DETECT_TCPC
.get_vbus_level = &anx74xx_tcpm_get_vbus_level,