summaryrefslogtreecommitdiff
path: root/board/dalboz/board.c
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-03-17 23:29:25 -0600
committerCommit Bot <commit-bot@chromium.org>2020-03-20 18:14:20 +0000
commit32a40f3a2cfe46607e5d259927aec67c3c7d47ef (patch)
tree85d75c7775b3f17064e22844cfc1786e8212a81f /board/dalboz/board.c
parenteedeace7ae301aca482d6a2f5a2d722e1e0cec31 (diff)
downloadchrome-ec-32a40f3a2cfe46607e5d259927aec67c3c7d47ef.tar.gz
dalboz: select GPIOs based on DB option
BUG=b:150349225 BRANCH=none TEST=none Signed-off-by: Edward Hill <ecgh@chromium.org> Change-Id: I7079d989013e022fb0bc7ffa925f51e6490d864c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2101223 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Paul Ma <magf@bitland.corp-partner.google.com> Tested-by: Paul Ma <magf@bitland.corp-partner.google.com>
Diffstat (limited to 'board/dalboz/board.c')
-rw-r--r--board/dalboz/board.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/board/dalboz/board.c b/board/dalboz/board.c
index e4397b1522..04b8b4ca2a 100644
--- a/board/dalboz/board.c
+++ b/board/dalboz/board.c
@@ -12,6 +12,7 @@
#include "fan.h"
#include "fan_chip.h"
#include "gpio.h"
+#include "hooks.h"
#include "lid_switch.h"
#include "power.h"
#include "power_button.h"
@@ -127,6 +128,40 @@ unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
#endif /* HAS_TASK_MOTIONSENSE */
+/* These IO expander GPIOs vary with DB option. */
+enum gpio_signal IOEX_USB_A1_RETIMER_EN = IOEX_USB_A1_RETIMER_EN_OPT1;
+enum gpio_signal IOEX_USB_A1_CHARGE_EN_DB_L = IOEX_USB_A1_CHARGE_EN_DB_L_OPT1;
+
+static void setup_usb_db(void)
+{
+ if (ec_config_get_usb_db() == DALBOZ_DB_D_OPT2_USBA_HDMI) {
+ ccprints("DB OPT2 HDMI");
+ ioex_config[IOEX_HDMI_PCAL6408].flags = 0;
+ ioex_init(IOEX_HDMI_PCAL6408);
+ IOEX_USB_A1_RETIMER_EN = IOEX_USB_A1_RETIMER_EN_OPT2;
+ IOEX_USB_A1_CHARGE_EN_DB_L = IOEX_USB_A1_CHARGE_EN_DB_L_OPT2;
+ } else {
+ ccprints("DB OPT1 USBC");
+ ioex_config[IOEX_C1_NCT3807].flags = 0;
+ ioex_init(IOEX_C1_NCT3807);
+ IOEX_USB_A1_RETIMER_EN = IOEX_USB_A1_RETIMER_EN_OPT1;
+ IOEX_USB_A1_CHARGE_EN_DB_L = IOEX_USB_A1_CHARGE_EN_DB_L_OPT1;
+ }
+
+ /* Enable PPC interrupts. */
+ gpio_enable_interrupt(GPIO_USB_C0_PPC_FAULT_ODL);
+ gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
+
+ /* Enable TCPC interrupts. */
+ gpio_enable_interrupt(GPIO_USB_C0_TCPC_INT_ODL);
+ gpio_enable_interrupt(GPIO_USB_C1_TCPC_INT_ODL);
+
+ /* Enable BC 1.2 interrupts */
+ gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_ODL);
+ gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_ODL);
+}
+DECLARE_HOOK(HOOK_INIT, setup_usb_db, HOOK_PRIO_INIT_I2C + 2);
+
void board_update_sensor_config_from_sku(void)
{
/* Enable Gyro interrupts */