summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTino Liu <tino.liu@quanta.corp-partner.google.com>2018-09-05 10:40:06 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-09-11 10:02:10 -0700
commit170a177c7a840a5074e073c80d872b967f37c161 (patch)
treee2ca5768f4cc9431343694e131909931a5098290
parentfce5adebd020a14443b4c9a3ff4d6817fde353f7 (diff)
downloadchrome-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>
-rw-r--r--board/bobba/board.c18
-rw-r--r--board/bobba/board.h6
-rw-r--r--board/bobba/gpio.inc2
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 */