summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Wang <matt_wang@compal.corp-partner.google.com>2022-10-13 14:48:56 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-10-19 02:48:03 +0000
commit2fdea49d045132306210ac4932a7a5971ad9113e (patch)
tree3a95c74faada0c18e67081986289da509a9e49ee
parentd9b9eeb3b6bbdd69173f3544dcd709e34696b735 (diff)
downloadchrome-ec-2fdea49d045132306210ac4932a7a5971ad9113e.tar.gz
tcpc: modify nct38xx and fusb302 get vbus voltage function
Modify nct38xx and fusb3802 get vbus voltage function to use the tcpm_drv API. BUG=b:252974232 BRANCH=none TEST=zmake build skyrim winterhold adlrvp_npcx ass TEST=Winterhold with this function ectool usbpdpower can get the voltage LOW_COVERAGE_REASON=we don't have an NCT emulator yet Signed-off-by: Matt Wang <matt_wang@compal.corp-partner.google.com> Change-Id: Iedd7165aad0c471c60f750cc4b207eef609d2eed Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3951752 Reviewed-by: Diana Z <dzigterman@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Elthan Huang <elthan_huang@compal.corp-partner.google.com>
-rw-r--r--driver/tcpm/fusb302.c7
-rw-r--r--driver/tcpm/nct38xx.c1
-rw-r--r--include/driver/tcpm/tcpm.h11
-rw-r--r--include/usb_pd_tcpm.h9
4 files changed, 17 insertions, 11 deletions
diff --git a/driver/tcpm/fusb302.c b/driver/tcpm/fusb302.c
index 780e5b2cfe..4b4a15c711 100644
--- a/driver/tcpm/fusb302.c
+++ b/driver/tcpm/fusb302.c
@@ -1154,7 +1154,7 @@ static int fusb302_compare_mdac(int port, int mdac)
return status0 & TCPC_REG_STATUS0_COMP;
}
-int tcpc_get_vbus_voltage(int port)
+int fusb302_get_vbus_voltage(int port, int *vbus)
{
int mdac = 0, i;
@@ -1170,7 +1170,9 @@ int tcpc_get_vbus_voltage(int port)
mdac |= BIT(i);
}
- return (mdac + 1) * 420;
+ *vbus = (mdac + 1) * 420;
+
+ return EC_SUCCESS;
}
const struct tcpm_drv fusb302_tcpm_drv = {
@@ -1180,6 +1182,7 @@ const struct tcpm_drv fusb302_tcpm_drv = {
#ifdef CONFIG_USB_PD_VBUS_DETECT_TCPC
.check_vbus_level = &fusb302_tcpm_check_vbus_level,
#endif
+ .get_vbus_voltage = &fusb302_get_vbus_voltage,
.select_rp_value = &fusb302_tcpm_select_rp_value,
.set_cc = &fusb302_tcpm_set_cc,
.set_polarity = &fusb302_tcpm_set_polarity,
diff --git a/driver/tcpm/nct38xx.c b/driver/tcpm/nct38xx.c
index f6184b21e4..e3a9fc04a2 100644
--- a/driver/tcpm/nct38xx.c
+++ b/driver/tcpm/nct38xx.c
@@ -358,6 +358,7 @@ const struct tcpm_drv nct38xx_tcpm_drv = {
#ifdef CONFIG_USB_PD_VBUS_DETECT_TCPC
.check_vbus_level = &tcpci_tcpm_check_vbus_level,
#endif
+ .get_vbus_voltage = &tcpci_get_vbus_voltage,
.select_rp_value = &tcpci_tcpm_select_rp_value,
.set_cc = &nct38xx_tcpm_set_cc,
.set_polarity = &tcpci_tcpm_set_polarity,
diff --git a/include/driver/tcpm/tcpm.h b/include/driver/tcpm/tcpm.h
index 8352423d9d..1ad324bf72 100644
--- a/include/driver/tcpm/tcpm.h
+++ b/include/driver/tcpm/tcpm.h
@@ -300,6 +300,17 @@ static inline int tcpm_set_src_ctrl(int port, int enable)
return EC_ERROR_UNIMPLEMENTED;
}
+static inline int tcpc_get_vbus_voltage(int port)
+{
+ int vbus;
+
+ if (tcpc_config[port].drv->get_vbus_voltage != NULL)
+ tcpc_config[port].drv->get_vbus_voltage(port, &vbus);
+ else
+ return 0;
+ return vbus;
+}
+
static inline void tcpc_alert(int port)
{
tcpc_config[port].drv->tcpc_alert(port);
diff --git a/include/usb_pd_tcpm.h b/include/usb_pd_tcpm.h
index 9a78754a0d..f3f449721e 100644
--- a/include/usb_pd_tcpm.h
+++ b/include/usb_pd_tcpm.h
@@ -644,15 +644,6 @@ int board_tcpc_post_init(int port) __attribute__((weak));
*/
void board_pd_vconn_ctrl(int port, enum usbpd_cc_pin cc_pin, int enabled);
-/**
- * Get the VBUS voltage from TCPC
- *
- * @param port Type-C port number
- *
- * @return VBUS voltage in mV.
- */
-int tcpc_get_vbus_voltage(int port);
-
#ifdef CONFIG_CMD_TCPC_DUMP
struct tcpc_reg_dump_map {
uint8_t addr;