diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-06-02 12:59:11 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-06-02 22:25:46 -0700 |
commit | fcc09a2b7d1d63ada5900bdc0a3206c748f7cbdd (patch) | |
tree | d842170f0949feafbe71064a13c678f77ef3f7ce | |
parent | 4b680119cc1de2dda7c0b625c4fea1d1e964189a (diff) | |
download | chrome-ec-fcc09a2b7d1d63ada5900bdc0a3206c748f7cbdd.tar.gz |
usb_charger: Support inverted 5V_EN GPIO polarity
Kevin uses inverted polarity (low = enable 5V output), so add a new CONFIG
to support this.
BUG=chrome-os-partner:53777
BRANCH=None
TEST=Manual on Kevin. Enable USB charger tasks, verify that VBUS is
properly detected on no-battery case.
Change-Id: Ifb3e5fa9db1973d9826435712711f0cb0fd1d3a5
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/349260
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | common/usb_charger.c | 10 | ||||
-rw-r--r-- | include/config.h | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/common/usb_charger.c b/common/usb_charger.c index 67dd612e36..a6b580072b 100644 --- a/common/usb_charger.c +++ b/common/usb_charger.c @@ -38,13 +38,19 @@ static void update_vbus_supplier(int port, int vbus_level) } } +#ifdef CONFIG_USB_PD_5V_EN_ACTIVE_LOW +#define USB_5V_EN(port) !gpio_get_level(GPIO_USB_C##port##_5V_EN_L) +#else +#define USB_5V_EN(port) gpio_get_level(GPIO_USB_C##port##_5V_EN) +#endif + int usb_charger_port_is_sourcing_vbus(int port) { if (port == 0) - return gpio_get_level(GPIO_USB_C0_5V_EN); + return USB_5V_EN(0); #if CONFIG_USB_PD_PORT_COUNT >= 2 else if (port == 1) - return gpio_get_level(GPIO_USB_C1_5V_EN); + return USB_5V_EN(1); #endif /* Not a valid port */ return 0; diff --git a/include/config.h b/include/config.h index a0caa9d5c3..32f4214a12 100644 --- a/include/config.h +++ b/include/config.h @@ -1834,6 +1834,12 @@ /* Define if this board can act as a dual-role PD port (source and sink) */ #undef CONFIG_USB_PD_DUAL_ROLE +/* + * Define if VBUS source GPIOs (GPIO_USB_C*_5V_EN) are active-low (and named + * (..._L) rather than default active-high. + */ +#undef CONFIG_USB_PD_5V_EN_ACTIVE_LOW + /* Dynamic USB PD source capability */ #undef CONFIG_USB_PD_DYNAMIC_SRC_CAP |