diff options
author | Tino Liu <tino.liu@quanta.corp-partner.google.com> | 2018-09-05 10:40:06 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-11 10:02:10 -0700 |
commit | 170a177c7a840a5074e073c80d872b967f37c161 (patch) | |
tree | e2ca5768f4cc9431343694e131909931a5098290 /board | |
parent | fce5adebd020a14443b4c9a3ff4d6817fde353f7 (diff) | |
download | chrome-ec-170a177c7a840a5074e073c80d872b967f37c161.tar.gz |
Bobba: Add support to read adapter voltage data
Add support to read motherboard's adapter voltage data via ADC9.
Add support to read sub-board's adapter voltage data via ADC4.
BUG=b:112870300
BRANCH=none
TEST=check log output of `ectool usbpdpower` for 4 cases are all correct
case1. Adapter plugged in only port0 (motherboard):
Port 0: SNK Charger PD 14987mV
Port 1: Disconnected
case2. Adapter plugged in only port1 (sub-board):
Port 0: Disconnected
Port 1: SNK Charger PD 14740mV
case3. Adapter plugged in both two ports (port0 first, then port1):
Port 0: SNK Charger PD 15042mV
Port 1: SNK (not charging) Charger PD 5000mV
case4. Adapter plugged in both two ports (port1 first, then port0):
Port 0: SNK (not charging) Charger Unknown 5000mV
Port 1: SNK Charger PD 14740mV
Change-Id: Ia1202a26f452c13864b4f8340e5f0c671fc74f7d
Signed-off-by: Tino Liu <tino.liu@quanta.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/1206110
Reviewed-by: Justin TerAvest <teravest@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/bobba/board.c | 18 | ||||
-rw-r--r-- | board/bobba/board.h | 6 | ||||
-rw-r--r-- | board/bobba/gpio.inc | 2 |
3 files changed, 26 insertions, 0 deletions
diff --git a/board/bobba/board.c b/board/bobba/board.c index 687fb60911..9b0bc42ebf 100644 --- a/board/bobba/board.c +++ b/board/bobba/board.c @@ -44,6 +44,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 uint8_t sku_id; static void ppc_interrupt(enum gpio_signal signal) @@ -71,9 +74,24 @@ 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}, + /* Vbus sensing (1/10 voltage divider). */ + [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; + CPRINTSUSB("Unknown vbus adc port id: %d", port); + 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/bobba/board.h b/board/bobba/board.h index ddc2481cbc..d790afc516 100644 --- a/board/bobba/board.h +++ b/board/bobba/board.h @@ -33,6 +33,10 @@ /* Sensors without hardware FIFO are in forced mode */ #define CONFIG_ACCEL_FORCE_MODE_MASK (1 << LID_ACCEL) +/* USB PD */ +#undef CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT +#define CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT + #define CONFIG_VOLUME_BUTTONS #define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL #define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL @@ -65,6 +69,8 @@ enum adc_channel { ADC_TEMP_SENSOR_AMB, /* ADC0 */ ADC_TEMP_SENSOR_CHARGER, /* ADC1 */ + ADC_VBUS_C0, /* ADC9 */ + ADC_VBUS_C1, /* ADC4 */ ADC_CH_COUNT }; diff --git a/board/bobba/gpio.inc b/board/bobba/gpio.inc index 7cfb5e897b..8ec5bacf85 100644 --- a/board/bobba/gpio.inc +++ b/board/bobba/gpio.inc @@ -141,4 +141,6 @@ ALTERNATE(PIN_MASK(D, 0x03), 0, MODULE_I2C, 0) /* I2C3 */ ALTERNATE(PIN_MASK(F, 0x0C), 0, MODULE_I2C, 0) /* I2C4 */ ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* 1.8V I2C7 */ ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */ +ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4 */ +ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9 */ ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */ |