From ba0af6544fd8bf1023f83a1a5fcd234f39f395d8 Mon Sep 17 00:00:00 2001 From: Philip Chen Date: Tue, 6 Feb 2018 19:10:12 -0800 Subject: scarlet: Enable BC 1.2 The CLs supporting BC 1.2 with rt946x have been merged. It's time to enable BC 1.2 on Scarlet! BUG=b:65446459 BRANCH=none TEST=Charge Scarlet rev4 with SDP (500mA), DCP (1500mA), PD charger, and Type-C charger (3000mA). Change-Id: Ia3c7a700586bc15d94c4ef104fbd5afc8be9b0af Signed-off-by: Philip Chen Reviewed-on: https://chromium-review.googlesource.com/905934 Commit-Ready: Philip Chen Tested-by: Philip Chen Reviewed-by: Aseda Aboagye --- board/scarlet/board.c | 13 +++++++++++++ board/scarlet/board.h | 2 ++ board/scarlet/ec.tasklist | 1 + board/scarlet/gpio.inc | 4 ++-- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/board/scarlet/board.c b/board/scarlet/board.c index 797d828e83..8b0dc686bd 100644 --- a/board/scarlet/board.c +++ b/board/scarlet/board.c @@ -238,6 +238,9 @@ static void board_init(void) /* Enable TCPC alert interrupts */ gpio_enable_interrupt(GPIO_USB_C0_PD_INT_L); + /* Enable charger interrupts */ + gpio_enable_interrupt(GPIO_CHARGER_INT_L); + /* Enable reboot / shutdown control inputs from AP */ gpio_enable_interrupt(GPIO_WARM_RESET_REQ); gpio_enable_interrupt(GPIO_AP_OVERTEMP); @@ -462,3 +465,13 @@ int tablet_get_mode(void) /* Always in tablet mode */ return 1; } + +void usb_charger_set_switches(int port, enum usb_switch setting) +{ + /* + * There is no USB2 switch anywhere on this board. But based + * on the discussion in b:65446459, RK3399's USB PHY is powered + * off when USB charging port detection is going on, so things + * should mostly work without a USB2 switch. + */ +} diff --git a/board/scarlet/board.h b/board/scarlet/board.h index 578f62d8f7..1ebd1e7eb2 100644 --- a/board/scarlet/board.h +++ b/board/scarlet/board.h @@ -78,6 +78,7 @@ #define CONFIG_CHARGER_PROFILE_OVERRIDE #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_OTG +#define CONFIG_USB_CHARGER #define CONFIG_USB_MUX_VIRTUAL /* Increase tx buffer size, as we'd like to stream EC log to AP. */ @@ -113,6 +114,7 @@ #define CONFIG_USB_PD_PORT_COUNT 1 #define CONFIG_USB_PD_TCPM_FUSB302 #define CONFIG_USB_PD_VBUS_DETECT_TCPC +#define CONFIG_USB_PD_5V_CHARGER_CTRL #define ADC_VBUS -1 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_VCONN diff --git a/board/scarlet/ec.tasklist b/board/scarlet/ec.tasklist index d2e4584fb3..384ae42993 100644 --- a/board/scarlet/ec.tasklist +++ b/board/scarlet/ec.tasklist @@ -19,6 +19,7 @@ #define CONFIG_TASK_LIST \ TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE) \ TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(PDCMD, pd_command_task, NULL, LARGER_TASK_STACK_SIZE) \ diff --git a/board/scarlet/gpio.inc b/board/scarlet/gpio.inc index 6a84791a4b..bfede671a8 100644 --- a/board/scarlet/gpio.inc +++ b/board/scarlet/gpio.inc @@ -34,6 +34,8 @@ GPIO_INT(ACCEL_INT_L, PIN(D, 14), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt) GPIO_INT(SYNC_INT, PIN(A, 12), GPIO_INT_RISING | GPIO_PULL_DOWN, sync_interrupt) +GPIO_INT(CHARGER_INT_L, PIN(E, 6), GPIO_INT_FALLING | GPIO_PULL_UP, + rt946x_interrupt) /* Voltage rails control pins */ GPIO(PP1800_S0_EN, PIN(D, 11), GPIO_OUT_LOW) @@ -71,8 +73,6 @@ GPIO(BAT_LED_RED, PIN(E, 13), GPIO_ODR_HIGH) GPIO(WP_L, PIN(E, 5), GPIO_INPUT) /* TODO(philipchen): Add an interrupt handler once CCD is fully developed. */ GPIO(CCD_MODE_ODL, PIN(C, 5), GPIO_INPUT | GPIO_PULL_UP) -/* TODO(b:63772957): Add an interrupt handler for charger rt946x */ -GPIO(CHARGER_INT_L, PIN(E, 6), GPIO_INPUT | GPIO_PULL_UP) /* Non-INT power signal pin */ GPIO(AP_CORE_PG, PIN(D, 7), GPIO_INPUT | GPIO_PULL_UP) /* Battery ID strap pin */ -- cgit v1.2.1