From 9bfa601e1fc7a730267acbd74c652b29ff3ec6e3 Mon Sep 17 00:00:00 2001 From: Eric Yilun Lin Date: Tue, 18 Jan 2022 11:35:24 +0800 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3397146 Auto-Submit: Eric Yilun Lin Tested-by: Eric Yilun Lin Commit-Queue: Eric Yilun Lin Reviewed-by: Rong Chang --- zephyr/projects/corsola/prj_kingler.conf | 2 +- zephyr/projects/corsola/src/kingler/usbc_config.c | 25 +++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'zephyr/projects') 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; +} -- cgit v1.2.1