mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-10 17:41:54 +00:00
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:
committed by
chrome-bot
parent
15ac27daa1
commit
bdbf0810d0
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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. */
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user