summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2016-04-25 11:20:58 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-05-04 16:15:02 -0700
commitbdbf0810d061ca535b23c711349fa741fb96cf67 (patch)
treec6e2eda0299c8a78e64273a0584b8efce7d32987
parent15ac27daa157ea0ec0ed717e373fb056c9479be6 (diff)
downloadchrome-ec-bdbf0810d061ca535b23c711349fa741fb96cf67.tar.gz
gru: Initial mainboard commit
Clone of kevin w/ minor GPIO / LED changes. BUG=chrome-os-partner:52736 BRANCH=None TEST=Verify image boots + sequences on kevin p1. Change-Id: I7d3f3ce97a8b080516b635a3d2b7bc3c6515c6d9 Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/340542 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: David Schneider <dnschneid@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org>
l---------board/gru1
-rw-r--r--board/kevin/board.c8
-rw-r--r--board/kevin/board.h6
-rw-r--r--board/kevin/build.mk5
-rw-r--r--board/kevin/gpio.inc21
-rw-r--r--board/kevin/led_kevin.c (renamed from board/kevin/led.c)4
-rw-r--r--power/rk3399.c15
-rwxr-xr-xutil/flash_ec2
8 files changed, 52 insertions, 10 deletions
diff --git a/board/gru b/board/gru
new file mode 120000
index 0000000000..914012bd6e
--- /dev/null
+++ b/board/gru
@@ -0,0 +1 @@
+kevin \ No newline at end of file
diff --git a/board/kevin/board.c b/board/kevin/board.c
index 538c91651f..8ec68340f3 100644
--- a/board/kevin/board.c
+++ b/board/kevin/board.c
@@ -68,10 +68,14 @@ BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
/******************************************************************************/
/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
const struct pwm_t pwm_channels[] = {
+#ifdef BOARD_KEVIN
[PWM_CH_LED_GREEN] = { 0, PWM_CONFIG_DSLEEP, 100 },
- [PWM_CH_BKLIGHT] = { 2, 0, 10000 },
- [PWM_CH_LED_RED] = { 3, PWM_CONFIG_DSLEEP, 100 },
+#endif
+ [PWM_CH_BKLIGHT] = { 2, 0, 10000 },
+ [PWM_CH_LED_RED] = { 3, PWM_CONFIG_DSLEEP, 100 },
+#ifdef BOARD_KEVIN
[PWM_CH_LED_BLUE] = { 4, PWM_CONFIG_DSLEEP, 100 },
+#endif
};
BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
diff --git a/board/kevin/board.h b/board/kevin/board.h
index c9827a9285..95aa0ef94a 100644
--- a/board/kevin/board.h
+++ b/board/kevin/board.h
@@ -14,7 +14,9 @@
#define CONFIG_HOSTCMD_SPS
#define CONFIG_POWER_COMMON
#define CONFIG_PWM
+#ifdef BOARD_KEVIN
#define CONFIG_LED_COMMON
+#endif
#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands for testing */
@@ -112,10 +114,14 @@ enum adc_channel {
};
enum pwm_channel {
+#ifdef BOARD_KEVIN
PWM_CH_LED_GREEN,
+#endif
PWM_CH_BKLIGHT,
PWM_CH_LED_RED,
+#ifdef BOARD_KEVIN
PWM_CH_LED_BLUE,
+#endif
/* Number of PWM channels */
PWM_CH_COUNT
};
diff --git a/board/kevin/build.mk b/board/kevin/build.mk
index ef4fa6e4f0..e441c412f9 100644
--- a/board/kevin/build.mk
+++ b/board/kevin/build.mk
@@ -10,6 +10,5 @@
CHIP:=npcx
CHIP_VARIANT:=npcx5m5g
-board-y=battery.o
-board-y+=board.o led.o
-board-y+=usb_pd_policy.o
+board-y=battery.o board.o usb_pd_policy.o
+board-$(BOARD_KEVIN)+=led_kevin.o
diff --git a/board/kevin/gpio.inc b/board/kevin/gpio.inc
index b31cc35f87..3fb061ce54 100644
--- a/board/kevin/gpio.inc
+++ b/board/kevin/gpio.inc
@@ -108,11 +108,19 @@ GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT | GPIO_PULL_UP)
GPIO(PP3300_S0_EN_L, PIN(7, 0), GPIO_OUT_HIGH)
GPIO(WARM_RESET_REQ, PIN(7, 3), GPIO_INPUT)
GPIO(AP_OVERTEMP, PIN(7, 4), GPIO_INPUT)
-GPIO(USB_A_CHARGE_EN, PIN(8, 4), GPIO_OUT_LOW)
GPIO(SPI_SENSOR_CS_L, PIN(9, 4), GPIO_OUT_HIGH)
GPIO(USB_C0_DISCHARGE, PIN(0, 3), GPIO_OUT_LOW)
GPIO(USB_C1_DISCHARGE, PIN(B, 1), GPIO_OUT_LOW)
+
+#if defined(BOARD_KEVIN)
+GPIO(GPIO84_NC, PIN(8, 4), GPIO_INPUT | GPIO_PULL_UP)
+#elif defined(BOARD_GRU)
+GPIO(USB_A_EN, PIN(C, 3), GPIO_OUT_LOW)
+GPIO(USB_A_CHARGE_EN, PIN(8, 4), GPIO_OUT_LOW)
+GPIO(GPIOB6_NC, PIN(B, 6), GPIO_INPUT | GPIO_PULL_UP)
+#endif
+
/* SPIP_MOSI/SPIP_SCLK GPIOA3/A1 */
ALTERNATE(PIN_MASK(A, 0x0A), 1, MODULE_SPI, 0)
/* SPIP_MISO GPIO95 */
@@ -127,12 +135,19 @@ ALTERNATE(PIN_MASK(8, 0x80), 1, MODULE_I2C, 0)
ALTERNATE(PIN_MASK(9, 0x07), 1, MODULE_I2C, 0)
/* I2C3SDA/I2C3SCL GPIOD0/D1 */
ALTERNATE(PIN_MASK(D, 0x03), 1, MODULE_I2C, 0)
-/* PWM0 / LED_GREEN(net LED_ACIN), PWM2 / BLPWM */
-ALTERNATE(PIN_MASK(C, 0x18), 1, MODULE_PWM, 0)
+/* PWM2 / BLPWM */
+ALTERNATE(PIN_MASK(C, 0x10), 1, MODULE_PWM, 0)
/* PWM3 / LED_RED(net LED_CHARGE) */
ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0)
+
+/* Kevin-only LEDs */
+#ifdef BOARD_KEVIN
+/* PWM0 / LED_GREEN(net LED_ACIN) */
+ALTERNATE(PIN_MASK(C, 0x08), 1, MODULE_PWM, 0)
/* PWM4 / LED_BLUE(net LED_POWER) */
ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0)
+#endif
+
/* CR_SIN/SOUT GPIO64/65 */
ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, GPIO_PULL_UP)
/* ADC0-4 */
diff --git a/board/kevin/led.c b/board/kevin/led_kevin.c
index a3a10935a7..213e731782 100644
--- a/board/kevin/led.c
+++ b/board/kevin/led_kevin.c
@@ -93,8 +93,8 @@ static void kevin_led_set_power_battery(void)
break;
case PWR_STATE_ERROR:
power_ticks++;
- set_color((power_ticks % LED_TOTAL_TICKS) \
- < (LED_ON_TICKS) ? LED_RED : LED_GREEN);
+ set_color(((power_ticks % LED_TOTAL_TICKS)
+ < LED_ON_TICKS) ? LED_RED : LED_GREEN);
break;
case PWR_STATE_CHARGE_NEAR_FULL:
case PWR_STATE_IDLE: /* External power connected in IDLE. */
diff --git a/power/rk3399.c b/power/rk3399.c
index c374b78193..a3cf333c41 100644
--- a/power/rk3399.c
+++ b/power/rk3399.c
@@ -120,6 +120,11 @@ enum power_state power_chipset_init(void)
chipset_force_g3();
wireless_set_state(WIRELESS_OFF);
+#ifdef BOARD_GRU
+ /* TODO: Enable CONFIG_USB_PORT_POWER_SMART */
+ gpio_set_level(GPIO_USB_A_EN, 0);
+ gpio_set_level(GPIO_USB_A_CHARGE_EN, 0);
+#endif
}
return POWER_G3;
@@ -218,6 +223,11 @@ enum power_state power_handle_state(enum power_state state)
/* Enable wireless */
wireless_set_state(WIRELESS_ON);
+#ifdef BOARD_GRU
+ gpio_set_level(GPIO_USB_A_EN, 1);
+ gpio_set_level(GPIO_USB_A_CHARGE_EN, 1);
+#endif
+
/* Call hooks now that rails are up */
hook_notify(HOOK_CHIPSET_RESUME);
@@ -237,6 +247,11 @@ enum power_state power_handle_state(enum power_state state)
/* Suspend wireless */
wireless_set_state(WIRELESS_SUSPEND);
+#ifdef BOARD_GRU
+ gpio_set_level(GPIO_USB_A_EN, 0);
+ gpio_set_level(GPIO_USB_A_CHARGE_EN, 0);
+#endif
+
/*
* Enable idle task deep sleep. Allow the low power idle task
* to go into deep sleep in S3 or lower.
diff --git a/util/flash_ec b/util/flash_ec
index cdf43fc4b9..482a2746ca 100755
--- a/util/flash_ec
+++ b/util/flash_ec
@@ -97,6 +97,7 @@ BOARDS_NPCX_5M6G_JTAG=(
BOARDS_NPCX_SPI=(
amenia
+ gru
kevin
wheatley
)
@@ -114,6 +115,7 @@ BOARDS_MEC1322=(
)
BOARDS_SPI_1800MV=(
+ gru
kevin
)