From 06da274d74afc02e4d65cb9e843aa809ffea9931 Mon Sep 17 00:00:00 2001 From: elthanhuang Date: Thu, 16 Aug 2018 20:15:46 +0800 Subject: Fleex: Enable adc vbus sensing Enable adc vbus sensing ADC CH9 read real USB_PD_PORT_ANX7447 input voltage ADC CH4 read real USB_PD_PORT_PS8751 input voltage BUG=b:112576391 BRANCH=none TEST=Excute "ectool usbpdpower" to check SNK Charger PD voltage. Change-Id: Ia7ef58905219e0392e4ca4fba4694c144741b0a8 Signed-off-by: elthanhuang Reviewed-on: https://chromium-review.googlesource.com/1177528 Commit-Ready: Elthan Huang Tested-by: Elthan Huang Reviewed-by: Jett Rink --- board/fleex/board.c | 14 ++++++++++++++ board/fleex/board.h | 6 ++++++ 2 files changed, 20 insertions(+) (limited to 'board') diff --git a/board/fleex/board.c b/board/fleex/board.c index ab770aa8ad..9a794c518a 100644 --- a/board/fleex/board.c +++ b/board/fleex/board.c @@ -45,6 +45,9 @@ #define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ## args) #define CPRINTFUSB(format, args...) cprintf(CC_USBCHARGE, format, ## args) +#define USB_PD_PORT_ANX7447 0 +#define USB_PD_PORT_PS8751 1 + static void tcpc_alert_event(enum gpio_signal signal) { if ((signal == GPIO_USB_C1_MUX_INT_ODL) && @@ -82,9 +85,20 @@ const struct adc_t adc_channels[] = { "TEMP_AMB", NPCX_ADC_CH0, ADC_MAX_VOLT, ADC_READ_MAX+1, 0}, [ADC_TEMP_SENSOR_CHARGER] = { "TEMP_CHARGER", NPCX_ADC_CH1, ADC_MAX_VOLT, ADC_READ_MAX+1, 0}, + [ADC_VBUS_C0] = {"VBUS_C0", NPCX_ADC_CH9, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0}, + [ADC_VBUS_C1] = {"VBUS_C1", NPCX_ADC_CH4, ADC_MAX_VOLT*10, ADC_READ_MAX+1, 0}, }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); +enum adc_channel board_get_vbus_adc(int port) +{ + if (port == USB_PD_PORT_ANX7447) + return ADC_VBUS_C0; + if (port == USB_PD_PORT_PS8751) + return ADC_VBUS_C1; + return ADC_VBUS_C0; +} + const struct temp_sensor_t temp_sensors[] = { [TEMP_SENSOR_BATTERY] = {.name = "Battery", .type = TEMP_SENSOR_TYPE_BATTERY, diff --git a/board/fleex/board.h b/board/fleex/board.h index 40a620296e..1d3dee6fd5 100644 --- a/board/fleex/board.h +++ b/board/fleex/board.h @@ -28,6 +28,10 @@ /* Sensors without hardware FIFO are in forced mode */ #define CONFIG_ACCEL_FORCE_MODE_MASK (1 << LID_ACCEL) +/* USB PD */ +#define CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT +#undef CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT + /* Volume button */ #define CONFIG_VOLUME_BUTTONS #define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL @@ -65,6 +69,8 @@ enum adc_channel { ADC_TEMP_SENSOR_AMB, /* ADC0 */ ADC_TEMP_SENSOR_CHARGER, /* ADC1 */ + ADC_VBUS_C1, /* ADC4 */ + ADC_VBUS_C0, /* ADC9 */ ADC_CH_COUNT }; -- cgit v1.2.1