diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-04-25 11:20:58 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-05-04 16:15:02 -0700 |
commit | bdbf0810d061ca535b23c711349fa741fb96cf67 (patch) | |
tree | c6e2eda0299c8a78e64273a0584b8efce7d32987 | |
parent | 15ac27daa157ea0ec0ed717e373fb056c9479be6 (diff) | |
download | chrome-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/gru | 1 | ||||
-rw-r--r-- | board/kevin/board.c | 8 | ||||
-rw-r--r-- | board/kevin/board.h | 6 | ||||
-rw-r--r-- | board/kevin/build.mk | 5 | ||||
-rw-r--r-- | board/kevin/gpio.inc | 21 | ||||
-rw-r--r-- | board/kevin/led_kevin.c (renamed from board/kevin/led.c) | 4 | ||||
-rw-r--r-- | power/rk3399.c | 15 | ||||
-rwxr-xr-x | util/flash_ec | 2 |
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 ) |