diff options
author | Eric Yilun Lin <yllin@chromium.org> | 2022-01-18 11:35:24 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-04-28 07:12:36 +0000 |
commit | 9bfa601e1fc7a730267acbd74c652b29ff3ec6e3 (patch) | |
tree | 871fbc1f5b40866aaa0ec808d288b8e3fcab7dcf | |
parent | fa68a7b18dc88304a49f922554c0adbb6a994190 (diff) | |
download | chrome-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.conf | 2 | ||||
-rw-r--r-- | zephyr/projects/corsola/src/kingler/usbc_config.c | 25 |
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; +} |