diff options
author | Diana Z <dzigterman@chromium.org> | 2021-06-10 14:35:55 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-17 18:07:36 +0000 |
commit | 889ce584d36a7a4f271340c9edf6a7d49c104585 (patch) | |
tree | e0026372b03f05a2f2ac88b692db4ecaf280d811 /baseboard | |
parent | b322426aa510b4c2fa9edcbc8a6e51939180f2a0 (diff) | |
download | chrome-ec-889ce584d36a7a4f271340c9edf6a7d49c104585.tar.gz |
Guybrush: Notify NCT38xx driver after resets
Add a notification to the NCT38xx driver once a port has been reset.
Also make the port reset function knowledgable about the parameters it
needs so it can be more easily used elsewhere.
BRANCH=None
BUG=b:183660105
TEST=make -j buildall
Signed-off-by: Diana Z <dzigterman@chromium.org>
Change-Id: I2ac1cf50d8a82129f4a930b4984b9f2edac83b11
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2953876
Reviewed-by: Rob Barnes <robbarnes@google.com>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'baseboard')
-rw-r--r-- | baseboard/guybrush/baseboard.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c index 3163079698..9ba2876cff 100644 --- a/baseboard/guybrush/baseboard.c +++ b/baseboard/guybrush/baseboard.c @@ -692,28 +692,34 @@ void tcpc_alert_event(enum gpio_signal signal) schedule_deferred_pd_interrupt(port); } -static void reset_pd_port(int port, enum gpio_signal reset_gpio_l, - int hold_delay, int post_delay) +static void reset_nct38xx_port(int port) { + enum gpio_signal reset_gpio_l; + + if (port == USBC_PORT_C0) + reset_gpio_l = GPIO_USB_C0_TCPC_RST_L; + else if (port == USBC_PORT_C1) + reset_gpio_l = GPIO_USB_C1_TCPC_RST_L; + else + /* Invalid port: do nothing */ + return; + gpio_set_level(reset_gpio_l, 0); - msleep(hold_delay); + msleep(NCT38XX_RESET_HOLD_DELAY_MS); gpio_set_level(reset_gpio_l, 1); - if (post_delay) - msleep(post_delay); + nct38xx_reset_notify(port); + if (NCT38XX_RESET_POST_DELAY_MS != 0) + msleep(NCT38XX_RESET_POST_DELAY_MS); } void board_reset_pd_mcu(void) { /* Reset TCPC0 */ - reset_pd_port(USBC_PORT_C0, GPIO_USB_C0_TCPC_RST_L, - NCT38XX_RESET_HOLD_DELAY_MS, - NCT38XX_RESET_POST_DELAY_MS); + reset_nct38xx_port(USBC_PORT_C0); /* Reset TCPC1 */ - reset_pd_port(USBC_PORT_C1, GPIO_USB_C1_TCPC_RST_L, - NCT38XX_RESET_HOLD_DELAY_MS, - NCT38XX_RESET_POST_DELAY_MS); + reset_nct38xx_port(USBC_PORT_C1); } uint16_t tcpc_get_alert_status(void) |