summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYilun Lin <yllin@google.com>2019-01-18 14:48:15 +0800
committerchrome-bot <chrome-bot@chromium.org>2019-01-23 10:47:33 -0800
commit579719f073c3b526d5801a3b0cc886cc8246821f (patch)
treedf0d02af69195c16641f118a7bb6d963acb22d0c
parent62118f0130fbd11c9f55c98988bede2cbaab7da4 (diff)
downloadchrome-ec-579719f073c3b526d5801a3b0cc886cc8246821f.tar.gz
kukui: Add BOARD_REV 2 configs.
TEST=BOOTBLOCK=... make BOARD=kukui -j flash_ec; and see AP boots. BUG=b:122993147 BRANCH=None Change-Id: I1f76d87aa152ba3c3d7c8697140c7c4769b55d28 Signed-off-by: Yilun Lin <yllin@google.com> Reviewed-on: https://chromium-review.googlesource.com/1420247 Commit-Ready: Yilun Lin <yllin@chromium.org> Tested-by: Yilun Lin <yllin@chromium.org> Reviewed-by: Tony Lin <tonycwlin@google.com> Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
-rw-r--r--board/kukui/board.c6
-rw-r--r--board/kukui/board.h8
-rw-r--r--board/kukui/gpio.inc28
-rw-r--r--power/mt8183.c12
4 files changed, 50 insertions, 4 deletions
diff --git a/board/kukui/board.c b/board/kukui/board.c
index 2b285fb2ef..dd6e3d9337 100644
--- a/board/kukui/board.c
+++ b/board/kukui/board.c
@@ -68,6 +68,12 @@ static void gauge_interrupt(enum gpio_signal signal)
/* ADC channels. Must be in the exactly same order as in enum adc_channel. */
const struct adc_t adc_channels[] = {
[ADC_BOARD_ID] = {"BOARD_ID", 3300, 4096, 0, STM32_AIN(10)},
+#if BOARD_REV >= 2
+ [ADC_EC_SKU_ID] = {"EC_SKU_ID", 3300, 4096, 0, STM32_AIN(8)},
+ [ADC_BATT_ID] = {"BATT_ID", 3300, 4096, 0, STM32_AIN(7)},
+ [ADC_USBC_THERM] = {"USBC_THERM", 3300, 4096, 0, STM32_AIN(14)},
+ [ADC_POGO_ADC_INT_L] = {"POGO_ADC_INT_L", 3300, 4096, 0, STM32_AIN(6)},
+#endif
};
BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
diff --git a/board/kukui/board.h b/board/kukui/board.h
index 9af682589c..c4d099de51 100644
--- a/board/kukui/board.h
+++ b/board/kukui/board.h
@@ -11,7 +11,7 @@
/* board revision */
#define BOARD_REV 1
-#if BOARD_REV < 1 || BOARD_REV > 1
+#if BOARD_REV < 1 || BOARD_REV > 2
#error "Board revision out of range"
#endif
@@ -202,6 +202,12 @@
enum adc_channel {
/* Real ADC channels begin here */
ADC_BOARD_ID = 0,
+#if BOARD_REV >= 2
+ ADC_EC_SKU_ID,
+ ADC_BATT_ID,
+ ADC_POGO_ADC_INT_L,
+ ADC_USBC_THERM,
+#endif
ADC_CH_COUNT
};
diff --git a/board/kukui/gpio.inc b/board/kukui/gpio.inc
index 367c69e9a5..1c090eea42 100644
--- a/board/kukui/gpio.inc
+++ b/board/kukui/gpio.inc
@@ -45,12 +45,19 @@ GPIO_INT(GAUGE_INT_ODL, PIN(C, 9), GPIO_INT_FALLING | GPIO_PULL_UP,
gauge_interrupt)
/* Interrupts not implemented yet */
+#if BOARD_REV < 2
GPIO(ALS_INT_ODL, PIN(A, 6), GPIO_INPUT)
+#elif BOARD_REV >= 2
+/* TODO(b:122993147): It's also an analog input. */
+GPIO(POGO_ADC_INT_L, PIN(A, 6), GPIO_INPUT)
+#endif
/* Voltage rails control pins */
+#if BOARD_REV < 2
GPIO(PP3300_S0_EN, PIN(B, 6), GPIO_OUT_LOW)
GPIO(PP1800_S3_EN, PIN(C, 7), GPIO_OUT_LOW)
GPIO(PP3300_S3_EN, PIN(D, 2), GPIO_OUT_LOW)
+#endif
/* Reset pins */
GPIO(AP_SYS_RST_L, PIN(C, 11), GPIO_OUT_LOW)
@@ -69,25 +76,40 @@ GPIO(I2C2_SCL, PIN(A, 11), GPIO_INPUT)
GPIO(I2C2_SDA, PIN(A, 12), GPIO_INPUT)
/* Analog pins */
+GPIO(BATT_ID, PIN(A, 7), GPIO_ANALOG)
GPIO(BOARD_ID, PIN(C, 0), GPIO_ANALOG)
+#if BOARD_REV >= 2
+GPIO(EC_SKU_ID, PIN(B, 0), GPIO_ANALOG)
+GPIO(USBC_THERM, PIN(C, 4), GPIO_ANALOG)
+#endif
/* Other input pins */
GPIO(WP_L, PIN(C, 8), GPIO_INPUT) /* EC_FLASH_WP_ODL */
GPIO(BOOT0, PIN(F, 11), GPIO_INPUT)
GPIO(CCD_MODE_ODL, PIN(A, 1), GPIO_INPUT)
-GPIO(BATT_ID, PIN(A, 7), GPIO_INPUT)
+#if BOARD_REV >= 2
+GPIO(POGO_VBUS_PRESENT, PIN(A, 14), GPIO_INPUT)
+#endif
/* Other output pins */
GPIO(ENTERING_RW, PIN(C, 6), GPIO_ODR_HIGH) /* EC_ENTERING_RW_ODL */
GPIO(EC_INT_L, PIN(B, 12), GPIO_ODR_HIGH) /* EC_AP_INT_ODL */
GPIO(EC_BOARD_ID_EN_L, PIN(C, 15), GPIO_ODR_HIGH) /* EC_BOARD_ID_EN_ODL */
-GPIO(USB_C0_DISCHARGE, PIN(B, 0), GPIO_OUT_LOW)
GPIO(USB_C0_DP_POLARITY, PIN(C, 14), GPIO_OUT_LOW)
GPIO(USB_C0_HPD_OD, PIN(F, 1), GPIO_ODR_LOW)
-GPIO(BOOTBLOCK_MUX_OE, PIN(C, 4), GPIO_ODR_HIGH)
GPIO(BOOTBLOCK_EN_L, PIN(C, 1), GPIO_ODR_HIGH)
GPIO(USB_C0_DP_OE_L, PIN(A, 5), GPIO_OUT_HIGH)
+#if BOARD_REV < 2
+GPIO(USB_C0_DISCHARGE, PIN(B, 0), GPIO_OUT_LOW)
+GPIO(BOOTBLOCK_MUX_OE, PIN(C, 4), GPIO_ODR_HIGH)
GPIO(USB_ID, PIN(A, 13), GPIO_ODR_HIGH)
+#elif BOARD_REV >= 2
+GPIO(EN_PP3300_POGO, PIN(A, 13), GPIO_OUT_LOW)
+GPIO(EN_POGO_CHARGE_L, PIN(B, 6), GPIO_OUT_LOW)
+GPIO(EN_USBC_CHARGE_L, PIN(C, 7), GPIO_OUT_LOW)
+GPIO(EN_PP5000_USBC, PIN(D, 2), GPIO_OUT_LOW)
+#endif
+
/* USART1: PA9/PA10 */
ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0)
diff --git a/power/mt8183.c b/power/mt8183.c
index 7d228a679a..fa9b31271c 100644
--- a/power/mt8183.c
+++ b/power/mt8183.c
@@ -52,6 +52,10 @@
*/
#define PMIC_FORCE_RESET_TIME (10 * SECOND)
+#if defined(BOARD_KUKUI) && BOARD_REV < 2
+#define BOARD_KUKUI_REV_LT_2
+#endif
+
/* Data structure for a GPIO operation for power sequencing */
struct power_seq_op {
/* enum gpio_signal in 8 bits */
@@ -71,28 +75,36 @@ BUILD_ASSERT(GPIO_COUNT < 256);
static const struct power_seq_op s5s3_power_seq[] = {
/* Release PMIC watchdog. */
{ GPIO_PMIC_WATCHDOG_L, 1, 0 },
+#ifdef BOARD_KUKUI_REV_LT_2
{ GPIO_PP3300_S3_EN, 1, 2 },
{ GPIO_PP1800_S3_EN, 1, 2 },
+#endif
/* Turn on AP. */
{ GPIO_AP_SYS_RST_L, 1, 2 },
};
/* The power sequence for POWER_S3S0 */
static const struct power_seq_op s3s0_power_seq[] = {
+#ifdef BOARD_KUKUI_REV_LT_2
{ GPIO_PP3300_S0_EN, 1, 0 },
+#endif
};
/* The power sequence for POWER_S0S3 */
static const struct power_seq_op s0s3_power_seq[] = {
+#ifdef BOARD_KUKUI_REV_LT_2
{ GPIO_PP3300_S0_EN, 0, 0 },
+#endif
};
/* The power sequence for POWER_S3S5 */
static const struct power_seq_op s3s5_power_seq[] = {
/* Turn off AP. */
{ GPIO_AP_SYS_RST_L, 0, 0 },
+#ifdef BOARD_KUKUI_REV_LT_2
{ GPIO_PP1800_S3_EN, 0, 2 },
{ GPIO_PP3300_S3_EN, 0, 2 },
+#endif
/* Assert watchdog to PMIC (there may be a 1.6ms debounce) */
{ GPIO_PMIC_WATCHDOG_L, 0, 3 },
};