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>
This commit is contained in:
Shawn Nematbakhsh
2016-04-25 11:20:58 -07:00
committed by chrome-bot
parent 15ac27daa1
commit bdbf0810d0
8 changed files with 52 additions and 10 deletions

1
board/gru Symbolic link
View File

@@ -0,0 +1 @@
kevin

View File

@@ -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);

View File

@@ -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
};

View File

@@ -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

View File

@@ -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 */

View File

@@ -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. */

View File

@@ -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.

View File

@@ -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
)