summaryrefslogtreecommitdiff
path: root/board/flapjack
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2019-05-02 12:09:59 -0700
committerCommit Bot <commit-bot@chromium.org>2019-06-10 21:00:55 +0000
commit2e6849807f2a9c7a1a8f963a90df5fb732ac4f20 (patch)
treeac0751d458ab2728b6f986570323d2eddfe8033c /board/flapjack
parent1d5f1604963d7f4a51b2b4836db5662777a9fe13 (diff)
downloadchrome-ec-2e6849807f2a9c7a1a8f963a90df5fb732ac4f20.tar.gz
Flapjack: Trigger BC12 detection when AC charger is plugged
Currently, when a BC12 charger is plugged while wireless charging is taking place, rt946x does not trigger detection because VBUS is already supplied. This makes charge_manger see a BC12 charger as a WPC supplier. This patch makes EC manually trigger BC12 detection when an AC charger is plugged. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/127228934 BRANCH=none TEST=Start charging on WPC. Connect a BC12 charger. Verify the supplier switches to DCP (1.5A @5V). Change-Id: I8e3439682515bf2241f6756a5386a7ad3ab2e14c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1593742 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'board/flapjack')
-rw-r--r--board/flapjack/board.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/board/flapjack/board.c b/board/flapjack/board.c
index 4efb2f2887..d8ede41890 100644
--- a/board/flapjack/board.c
+++ b/board/flapjack/board.c
@@ -22,6 +22,7 @@
#include "driver/sync.h"
#include "driver/tcpm/mt6370.h"
#include "driver/temp_sensor/tmp432.h"
+#include "driver/wpc/p9221.h"
#include "ec_commands.h"
#include "extpower.h"
#include "gpio.h"
@@ -47,7 +48,6 @@
#include "usb_mux.h"
#include "usb_pd_tcpm.h"
#include "util.h"
-#include "driver/wpc/p9221.h"
#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
@@ -417,6 +417,16 @@ static void board_init(void)
}
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
+#ifdef SECTION_IS_RW
+static void usb_pd_connect(void)
+{
+ /* VBUS from p9221 is already zero as it's disabled by NCP3902 */
+ p9221_notify_vbus_change(0);
+ rt946x_toggle_bc12_detection();
+}
+DECLARE_HOOK(HOOK_USB_PD_CONNECT, usb_pd_connect, HOOK_PRIO_DEFAULT);
+#endif
+
void board_config_pre_init(void)
{
STM32_RCC_AHBENR |= STM32_RCC_HB_DMA1;