summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Lu <Devin.Lu@quantatw.com>2021-08-03 20:27:49 +0800
committerCommit Bot <commit-bot@chromium.org>2021-08-13 05:25:09 +0000
commitc425ace909b134095698dd604eb685cd2f620256 (patch)
treeb5e888f6b7a16e9acbbde5e89b595cc0a9580796
parenta388377c7699bcbca57bb495a0e55ea7543b394d (diff)
downloadchrome-ec-stabilize-14151.B-main.tar.gz
nct38xx: Split after-reset timestabilize-14151.B-main
Split after-reset time for NCT3807 and NCT3808, since the after-reset time is not the same. From the datasheet (section 4.4.2 Reset Timing) as following: * | Min | Max | * ----------------------+-------+-------+ * NCT3807 (single port) | x | 1.5ms | * ----------------------+-------+-------+ * NCT3808 (dual port) | x | 3ms | * ----------------------+-------+-------+ Currently the after-reset time for NCT3807 is zero. Change to 2ms to fit specification as well. BUG=none BRANCH=none TEST=On Redrix. Initial success with NCT3807. TEST=On Dirinboz. Initial success with NCT3807. TEST=make buildall. Signed-off-by: Devin Lu <Devin.Lu@quantatw.com> Change-Id: I1f47f57c0d8955946b1c2522e1a1736739217f41 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3068492 Reviewed-by: caveh jalali <caveh@chromium.org>
-rw-r--r--baseboard/guybrush/baseboard.c4
-rw-r--r--baseboard/mancomb/baseboard.c4
-rw-r--r--baseboard/zork/variant_trembyle.c4
-rw-r--r--board/dalboz/board.c4
-rw-r--r--board/dirinboz/board.c4
-rw-r--r--board/gumboz/board.c4
-rw-r--r--board/redrix/usbc_config.c4
-rw-r--r--board/shuboz/board.c4
-rw-r--r--board/vilboz/board.c4
-rw-r--r--driver/tcpm/nct38xx.h13
10 files changed, 30 insertions, 19 deletions
diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c
index dcf56b1a78..4383598ff6 100644
--- a/baseboard/guybrush/baseboard.c
+++ b/baseboard/guybrush/baseboard.c
@@ -741,8 +741,8 @@ static void reset_nct38xx_port(int port)
msleep(NCT38XX_RESET_HOLD_DELAY_MS);
gpio_set_level(reset_gpio_l, 1);
nct38xx_reset_notify(port);
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
diff --git a/baseboard/mancomb/baseboard.c b/baseboard/mancomb/baseboard.c
index 7a7a2c1e3e..041b2512dd 100644
--- a/baseboard/mancomb/baseboard.c
+++ b/baseboard/mancomb/baseboard.c
@@ -689,12 +689,12 @@ 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);
+ NCT3807_RESET_POST_DELAY_MS);
/* Reset TCPC1 */
reset_pd_port(USBC_PORT_C1, GPIO_USB_C1_TCPC_RST_L,
NCT38XX_RESET_HOLD_DELAY_MS,
- NCT38XX_RESET_POST_DELAY_MS);
+ NCT3807_RESET_POST_DELAY_MS);
}
uint16_t tcpc_get_alert_status(void)
diff --git a/baseboard/zork/variant_trembyle.c b/baseboard/zork/variant_trembyle.c
index bcde458553..b39380db59 100644
--- a/baseboard/zork/variant_trembyle.c
+++ b/baseboard/zork/variant_trembyle.c
@@ -280,8 +280,8 @@ static void reset_nct38xx_port(int port)
msleep(NCT38XX_RESET_HOLD_DELAY_MS);
gpio_set_level(reset_gpio_l, 1);
nct38xx_reset_notify(port);
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
diff --git a/board/dalboz/board.c b/board/dalboz/board.c
index 44015110cf..f049ef55d4 100644
--- a/board/dalboz/board.c
+++ b/board/dalboz/board.c
@@ -463,8 +463,8 @@ static void reset_nct38xx_port(int port)
msleep(NCT38XX_RESET_HOLD_DELAY_MS);
gpio_set_level(reset_gpio_l, 1);
nct38xx_reset_notify(port);
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
diff --git a/board/dirinboz/board.c b/board/dirinboz/board.c
index d7b3446197..36d3d13a04 100644
--- a/board/dirinboz/board.c
+++ b/board/dirinboz/board.c
@@ -384,8 +384,8 @@ static void reset_nct38xx_port(int port)
msleep(NCT38XX_RESET_HOLD_DELAY_MS);
gpio_set_level(reset_gpio_l, 1);
nct38xx_reset_notify(port);
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
diff --git a/board/gumboz/board.c b/board/gumboz/board.c
index b04a09f0f5..ee255ad47b 100644
--- a/board/gumboz/board.c
+++ b/board/gumboz/board.c
@@ -388,8 +388,8 @@ static void reset_nct38xx_port(int port)
msleep(NCT38XX_RESET_HOLD_DELAY_MS);
gpio_set_level(reset_gpio_l, 1);
nct38xx_reset_notify(port);
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
diff --git a/board/redrix/usbc_config.c b/board/redrix/usbc_config.c
index 906147a696..f0f39b6d87 100644
--- a/board/redrix/usbc_config.c
+++ b/board/redrix/usbc_config.c
@@ -197,8 +197,8 @@ void board_reset_pd_mcu(void)
nct38xx_reset_notify(USBC_PORT_C1);
/* wait for chips to come up */
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
static void board_tcpc_init(void)
diff --git a/board/shuboz/board.c b/board/shuboz/board.c
index 114bae6ac8..f5483841dc 100644
--- a/board/shuboz/board.c
+++ b/board/shuboz/board.c
@@ -467,8 +467,8 @@ static void reset_nct38xx_port(int port)
msleep(NCT38XX_RESET_HOLD_DELAY_MS);
gpio_set_level(reset_gpio_l, 1);
nct38xx_reset_notify(port);
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
diff --git a/board/vilboz/board.c b/board/vilboz/board.c
index 8351834b78..d280081e82 100644
--- a/board/vilboz/board.c
+++ b/board/vilboz/board.c
@@ -319,8 +319,8 @@ static void reset_nct38xx_port(int port)
msleep(NCT38XX_RESET_HOLD_DELAY_MS);
gpio_set_level(reset_gpio_l, 1);
nct38xx_reset_notify(port);
- if (NCT38XX_RESET_POST_DELAY_MS != 0)
- msleep(NCT38XX_RESET_POST_DELAY_MS);
+ if (NCT3807_RESET_POST_DELAY_MS != 0)
+ msleep(NCT3807_RESET_POST_DELAY_MS);
}
diff --git a/driver/tcpm/nct38xx.h b/driver/tcpm/nct38xx.h
index f4923b700d..714a2f8d46 100644
--- a/driver/tcpm/nct38xx.h
+++ b/driver/tcpm/nct38xx.h
@@ -75,7 +75,18 @@
#define NCT38XX_REG_VBC_FAULT_CTL_VC_OVP_OFF (1 << 5)
#define NCT38XX_RESET_HOLD_DELAY_MS 1
-#define NCT38XX_RESET_POST_DELAY_MS 0
+
+/*
+ * From the datasheet (section 4.4.2 Reset Timing) as following:
+ * | Min | Max |
+ * ----------------------+-------+-------+
+ * NCT3807 (single port) | x | 1.5ms |
+ * ----------------------+-------+-------+
+ * NCT3808 (dual port) | x | 3ms |
+ * ----------------------+-------+-------+
+ */
+#define NCT3807_RESET_POST_DELAY_MS 2
+#define NCT3808_RESET_POST_DELAY_MS 3
extern const struct tcpm_drv nct38xx_tcpm_drv;