summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Yilun Lin <yllin@chromium.org>2022-01-18 11:35:24 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-04-28 07:12:36 +0000
commit9bfa601e1fc7a730267acbd74c652b29ff3ec6e3 (patch)
tree871fbc1f5b40866aaa0ec808d288b8e3fcab7dcf
parentfa68a7b18dc88304a49f922554c0adbb6a994190 (diff)
downloadchrome-ec-9bfa601e1fc7a730267acbd74c652b29ff3ec6e3.tar.gz
zephyr: kingler: enable PD_VBUS_MEASURE
kingler has two VBUS ADC from TCPC: C0: ANX3447 VBUS ADC C1: RT1718S VBUS ADC BUG=b:203739613 TEST=vbus reading is correct. BRANCH=none Change-Id: I99b8b0098446f4ee271ba79cd67d2f30f3b86663 Signed-off-by: Eric Yilun Lin <yllin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3397146 Auto-Submit: Eric Yilun Lin <yllin@google.com> Tested-by: Eric Yilun Lin <yllin@google.com> Commit-Queue: Eric Yilun Lin <yllin@google.com> Reviewed-by: Rong Chang <rongchang@chromium.org>
-rw-r--r--zephyr/projects/corsola/prj_kingler.conf2
-rw-r--r--zephyr/projects/corsola/src/kingler/usbc_config.c25
2 files changed, 24 insertions, 3 deletions
diff --git a/zephyr/projects/corsola/prj_kingler.conf b/zephyr/projects/corsola/prj_kingler.conf
index fd28664a57..8901cd10d4 100644
--- a/zephyr/projects/corsola/prj_kingler.conf
+++ b/zephyr/projects/corsola/prj_kingler.conf
@@ -124,7 +124,7 @@ CONFIG_PLATFORM_EC_USB_PD_DEBUG_LEVEL=2
CONFIG_PLATFORM_EC_USB_PD_TCPM_ANX7447=y
CONFIG_PLATFORM_EC_USB_PD_TCPM_RT1718S=y
CONFIG_PLATFORM_EC_USB_PD_VBUS_DETECT_TCPC=y
-CONFIG_PLATFORM_EC_USB_PD_VBUS_MEASURE_NOT_PRESENT=y
+CONFIG_PLATFORM_EC_USB_PD_VBUS_MEASURE_BY_BOARD=y
# External power
CONFIG_PLATFORM_EC_BACKLIGHT_LID=n
diff --git a/zephyr/projects/corsola/src/kingler/usbc_config.c b/zephyr/projects/corsola/src/kingler/usbc_config.c
index 1b688ca828..8521013e98 100644
--- a/zephyr/projects/corsola/src/kingler/usbc_config.c
+++ b/zephyr/projects/corsola/src/kingler/usbc_config.c
@@ -44,7 +44,7 @@ struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
.drv = &anx7447_tcpm_drv,
/* Alert is active-low, open-drain */
- .flags = TCPC_FLAGS_ALERT_OD,
+ .flags = TCPC_FLAGS_ALERT_OD | TCPC_FLAGS_VBUS_MONITOR,
},
[USBC_PORT_C1] = {
.bus_type = EC_BUS_TYPE_I2C,
@@ -54,7 +54,7 @@ struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
.drv = &rt1718s_tcpm_drv,
/* Alert is active-low, open-drain */
- .flags = TCPC_FLAGS_ALERT_OD,
+ .flags = TCPC_FLAGS_ALERT_OD | TCPC_FLAGS_VBUS_MONITOR,
}
};
@@ -356,3 +356,24 @@ void bc12_interrupt(enum gpio_signal signal)
{
task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12);
}
+
+__override int board_get_vbus_voltage(int port)
+{
+ int voltage = 0;
+ int rv;
+
+ switch (port) {
+ case USBC_PORT_C0:
+ rv = tcpc_config[USBC_PORT_C0].drv->get_vbus_voltage(port,
+ &voltage);
+ if (rv)
+ return 0;
+ break;
+ case USBC_PORT_C1:
+ rt1718s_get_adc(port, RT1718S_ADC_VBUS1, &voltage);
+ break;
+ default:
+ return 0;
+ }
+ return voltage;
+}