summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2021-06-10 14:35:55 -0600
committerCommit Bot <commit-bot@chromium.org>2021-06-17 18:07:36 +0000
commit889ce584d36a7a4f271340c9edf6a7d49c104585 (patch)
treee0026372b03f05a2f2ac88b692db4ecaf280d811 /baseboard
parentb322426aa510b4c2fa9edcbc8a6e51939180f2a0 (diff)
downloadchrome-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.c28
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)