diff options
author | Matt Wang <matt_wang@compal.corp-partner.google.com> | 2022-10-13 14:48:56 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-10-19 02:48:03 +0000 |
commit | 2fdea49d045132306210ac4932a7a5971ad9113e (patch) | |
tree | 3a95c74faada0c18e67081986289da509a9e49ee | |
parent | d9b9eeb3b6bbdd69173f3544dcd709e34696b735 (diff) | |
download | chrome-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.c | 7 | ||||
-rw-r--r-- | driver/tcpm/nct38xx.c | 1 | ||||
-rw-r--r-- | include/driver/tcpm/tcpm.h | 11 | ||||
-rw-r--r-- | include/usb_pd_tcpm.h | 9 |
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; |