diff options
author | Ben Chen <ben.chen2@quanta.corp-partner.google.com> | 2020-06-16 19:44:30 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-17 01:50:55 +0000 |
commit | ab8e6063f5e235638addbe4f19c59c4d35b322a0 (patch) | |
tree | 4bf8133bc87a84d9bbc01550ce6bc5b2f8243195 | |
parent | c446ada8c44c05691f3913f827871cf89e65bd32 (diff) | |
download | chrome-ec-ab8e6063f5e235638addbe4f19c59c4d35b322a0.tar.gz |
Bobba: support PPC syv682x by function check
Support SYV682x PPC config in function check, that
Board version is 5 and PPC ID pin is High status.
BUG=b:154772847, b:156711950
BRANCH=octopus
TEST=Check setup ppc syv682x by board id and PPC ID pin
Change-Id: I47561e81ce8e92b497e7e47f6decb00a798d8dc4
Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2247960
Tested-by: David Huang <david.huang@quanta.corp-partner.google.com>
Commit-Queue: Marco Chen <marcochen@chromium.org>
Reviewed-by: Marco Chen <marcochen@chromium.org>
-rw-r--r-- | board/bobba/board.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/board/bobba/board.c b/board/bobba/board.c index 0c785c6664..c1f069f775 100644 --- a/board/bobba/board.c +++ b/board/bobba/board.c @@ -34,6 +34,7 @@ #include "motion_sense.h" #include "power.h" #include "power_button.h" +#include "stdbool.h" #include "switch.h" #include "system.h" #include "tablet_mode.h" @@ -71,22 +72,32 @@ const int keyboard_factory_scan_pins[][2] = { const int keyboard_factory_scan_pins_used = ARRAY_SIZE(keyboard_factory_scan_pins); -static void ppc_interrupt(enum gpio_signal signal) +/* Check PPC ID Pin and Board ver to decide which one ppc is used. */ +static bool support_syv_ppc(void) { uint32_t board_version = 0; if (cbi_get_board_version(&board_version) != EC_SUCCESS) CPRINTSUSB("Get board version failed."); + + if ((board_version == 5) && (gpio_get_level(GPIO_PPC_ID))) + return true; + + return false; +} + +static void ppc_interrupt(enum gpio_signal signal) +{ switch (signal) { case GPIO_USB_PD_C0_INT_ODL: - if ((board_version == 5) && (gpio_get_level(GPIO_PPC_ID))) + if (support_syv_ppc()) syv682x_interrupt(0); else nx20p348x_interrupt(0); break; case GPIO_USB_PD_C1_INT_ODL: - if ((board_version == 5) && (gpio_get_level(GPIO_PPC_ID))) + if (support_syv_ppc()) syv682x_interrupt(1); else nx20p348x_interrupt(1); @@ -437,7 +448,7 @@ const struct ppc_config_t ppc_syv682x_port1 = { static void board_setup_ppc(void) { - if (gpio_get_level(GPIO_PPC_ID)) { + if (support_syv_ppc()) { memcpy(&ppc_chips[USB_PD_PORT_TCPC_0], &ppc_syv682x_port0, sizeof(struct ppc_config_t)); |