summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2016-04-08 19:42:09 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-04-29 14:38:06 -0700
commit90145968b22e9578cc2f008fa4a6947f6168d48a (patch)
tree0aca15645c16ca173ebad6d367b0dc7096cf6b3d
parent9eafb5b9ddaea2ac7f35e3a6b849541d1ca3a7ad (diff)
downloadchrome-ec-90145968b22e9578cc2f008fa4a6947f6168d48a.tar.gz
kevin: GPIO changes for new proto build
BUG=chrome-os-partner:52171 TEST=Verify old kevin boards still boot + power sequence. BRANCH=None Change-Id: Iacc02beba05ef3e80ffa59aa7fc5718c12bae20c Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/338043 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r--board/kevin/board.c8
-rw-r--r--board/kevin/board.h4
-rw-r--r--board/kevin/gpio.inc34
-rw-r--r--power/rk3399.c9
4 files changed, 29 insertions, 26 deletions
diff --git a/board/kevin/board.c b/board/kevin/board.c
index 79346b9203..b3169f9738 100644
--- a/board/kevin/board.c
+++ b/board/kevin/board.c
@@ -68,8 +68,10 @@ 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[] = {
- [PWM_CH_BKLIGHT] = { 2, 0, 10000 },
- [PWM_CH_LED] = { 3, PWM_CONFIG_DSLEEP, 100 },
+ [PWM_CH_FULL_LED] = { 0, PWM_CONFIG_DSLEEP, 100 },
+ [PWM_CH_BKLIGHT] = { 2, 0, 10000 },
+ [PWM_CH_CHG_LED] = { 3, PWM_CONFIG_DSLEEP, 100 },
+ [PWM_CH_PWR_LED] = { 4, PWM_CONFIG_DSLEEP, 100 },
};
BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
@@ -78,7 +80,7 @@ BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
const struct i2c_port_t i2c_ports[] = {
{"tcpc0", NPCX_I2C_PORT0_0, 1000, GPIO_I2C0_SCL0, GPIO_I2C0_SDA0},
{"tcpc1", NPCX_I2C_PORT0_1, 1000, GPIO_I2C0_SCL1, GPIO_I2C0_SDA1},
- {"sensors", NPCX_I2C_PORT1, 1000, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
+ {"sensors", NPCX_I2C_PORT1, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
{"charger", NPCX_I2C_PORT2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
{"battery", NPCX_I2C_PORT3, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA},
};
diff --git a/board/kevin/board.h b/board/kevin/board.h
index 9c046c6bc6..05f46339ee 100644
--- a/board/kevin/board.h
+++ b/board/kevin/board.h
@@ -108,8 +108,10 @@ enum adc_channel {
};
enum pwm_channel {
+ PWM_CH_FULL_LED,
PWM_CH_BKLIGHT,
- PWM_CH_LED,
+ PWM_CH_CHG_LED,
+ PWM_CH_PWR_LED,
/* Number of PWM channels */
PWM_CH_COUNT
};
diff --git a/board/kevin/gpio.inc b/board/kevin/gpio.inc
index f372b7fdc8..48292085e6 100644
--- a/board/kevin/gpio.inc
+++ b/board/kevin/gpio.inc
@@ -12,6 +12,7 @@
GPIO_INT(WP_L, PIN(9, 3), GPIO_INT_BOTH, switch_interrupt)
+/* TODO: May be floating when SOC unpowered */
GPIO_INT(SHI_CS_L, PIN(5, 3), GPIO_INT_FALLING, shi_cs_event)
GPIO_INT(USB_C0_PD_INT_L, PIN(6, 0), GPIO_INT_FALLING | GPIO_PULL_UP,
tcpc_alert_event)
@@ -21,7 +22,7 @@ GPIO_INT(VOLUME_UP_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP,
button_interrupt)
GPIO_INT(VOLUME_DOWN_L, PIN(8, 3), GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP,
button_interrupt)
-GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_INPUT,
+GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP,
power_button_interrupt)
GPIO_INT(LID_OPEN, PIN(9, 7),
GPIO_INT_BOTH | GPIO_INPUT | GPIO_SEL_1P8V, lid_interrupt)
@@ -41,7 +42,8 @@ GPIO(PP900_PMU_EN, PIN(C, 2), GPIO_OUT_LOW)
GPIO(PP900_USB_EN, PIN(A, 5), GPIO_OUT_LOW)
GPIO(PP900_PCIE_EN, PIN(0, 0), GPIO_OUT_LOW)
-GPIO(PP1200_HSIC_EN, PIN(8, 1), GPIO_OUT_LOW)
+/* NC */
+GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP)
GPIO(PP1800_SENSOR_EN_L, PIN(A, 7), GPIO_OUT_HIGH)
GPIO(PP1800_USB_EN_L, PIN(A, 6), GPIO_OUT_HIGH)
@@ -51,7 +53,6 @@ GPIO(PP1800_AP_AVDD_EN_L, PIN(5, 2), GPIO_OUT_HIGH)
GPIO(PP1800_S0_EN_L, PIN(5, 0), GPIO_OUT_HIGH)
GPIO(PP1800_SIXAXIS_EN_L, PIN(5, 6), GPIO_OUT_HIGH)
-GPIO(PP3300_S0_EN_L, PIN(C, 3), GPIO_OUT_HIGH)
GPIO(PP3300_TRACKPAD_EN_L, PIN(3, 2), GPIO_OUT_HIGH)
GPIO(PP3300_USB_EN_L, PIN(3, 7), GPIO_OUT_HIGH)
@@ -59,6 +60,7 @@ GPIO(PP5000_EN, PIN(C, 6), GPIO_OUT_LOW)
GPIO(PP5000_PG, PIN(7, 1), GPIO_INPUT | GPIO_PULL_UP)
GPIO(TPS65261_PG, PIN(7, 5), GPIO_INPUT | GPIO_PULL_UP)
+/* TODO: May be floating when SOC unpowered */
GPIO(AP_EC_S3_S0_L, PIN(5, 4), GPIO_INPUT)
GPIO(AP_CORE_PG, PIN(6, 7), GPIO_INPUT | GPIO_PULL_UP)
@@ -84,16 +86,14 @@ GPIO(CLK_32K_IN, PIN(E, 7), GPIO_INPUT)
GPIO(LID_ACCEL_INT_L, PIN(C, 7), GPIO_INPUT | GPIO_PULL_UP)
-GPIO(C0_VOUT_EN_L, PIN(D, 3), GPIO_OUT_HIGH)
-GPIO(C1_VOUT_EN_L, PIN(D, 2), GPIO_OUT_HIGH)
+GPIO(C0_VOUT_EN_L, PIN(D, 3), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
+GPIO(C1_VOUT_EN_L, PIN(D, 2), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
GPIO(ENTERING_RW, PIN(7, 6), GPIO_OUT_LOW)
-GPIO(SYS_RST_L, PIN(6, 1), GPIO_OUT_HIGH)
-GPIO(EC_INT_L, PIN(5, 7), GPIO_OUT_HIGH)
+GPIO(SYS_RST_L, PIN(6, 1), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
+GPIO(EC_INT_L, PIN(5, 7), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
GPIO(EC_BOARD_ID_EN_L, PIN(3, 5), GPIO_OUT_HIGH)
-/* NC */
-GPIO(STRAP_ENG_L, PIN(B, 6), GPIO_OUT_LOW)
GPIO(USB_DP_HPD, PIN(6, 6), GPIO_OUT_LOW)
GPIO(CHARGER_RESET_L, PIN(0, 1), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
GPIO(CR50_RESET_L, PIN(0, 2), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
@@ -101,12 +101,12 @@ GPIO(CHARGER_INT_L, PIN(3, 3), GPIO_INPUT)
GPIO(EC_BATT_PRES_L, PIN(3, 4), GPIO_INPUT)
GPIO(LID_360_L, PIN(3, 6), GPIO_INPUT | GPIO_SEL_1P8V)
GPIO(BASE_SIXAXIS_INT_L, PIN(4, 0), GPIO_INPUT | GPIO_SEL_1P8V)
-GPIO(CCD_MODE, PIN(6, 3), GPIO_INPUT)
-GPIO(USB_A_EN, PIN(7, 0), GPIO_OUT_LOW)
+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_INPUT)
-GPIO(SPI_SENSOR_CS_L, PIN(9, 4), GPIO_OUT_HIGH | GPIO_OPEN_DRAIN)
+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)
@@ -125,12 +125,14 @@ 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)
-/* PWM2 / BLPWM */
-ALTERNATE(PIN_MASK(C, 0x10), 1, MODULE_PWM, 0)
+/* PWM0 / LED_FULL PWM2 / BLPWM */
+ALTERNATE(PIN_MASK(C, 0x18), 1, MODULE_PWM, 0)
/* PWM3 / CHGLED */
ALTERNATE(PIN_MASK(8, 0x01), 1, MODULE_PWM, 0)
+/* PWM4 / PWRLED */
+ALTERNATE(PIN_MASK(B, 0x40), 1, MODULE_PWM, 0)
/* CR_SIN/SOUT GPIO64/65 */
-ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, 0)
+ALTERNATE(PIN_MASK(6, 0x30), 1, MODULE_UART, GPIO_PULL_UP)
/* ADC0-4 */
ALTERNATE(PIN_MASK(4, 0x3e), 1, MODULE_ADC, 0)
diff --git a/power/rk3399.c b/power/rk3399.c
index c3ed2cfc08..81fff5c3a2 100644
--- a/power/rk3399.c
+++ b/power/rk3399.c
@@ -41,8 +41,6 @@ static const struct power_signal_info power_control_outputs[] = {
{ GPIO_PP900_USB_EN, 1 },
{ GPIO_PP900_PCIE_EN, 1 },
- { GPIO_PP1200_HSIC_EN, 1 },
-
{ GPIO_PP1800_SENSOR_EN_L, 0 },
{ GPIO_PP1800_LID_EN_L, 0 },
{ GPIO_PP1800_PMU_EN_L, 0 },
@@ -152,8 +150,8 @@ enum power_state power_handle_state(enum power_state state)
msleep(2);
gpio_set_level(GPIO_PP1800_SIXAXIS_EN_L, 0);
+ msleep(2);
gpio_set_level(GPIO_PP3300_TRACKPAD_EN_L, 0);
- gpio_set_level(GPIO_PP1200_HSIC_EN, 1);
/* Call hooks now that rails are up */
hook_notify(HOOK_CHIPSET_STARTUP);
@@ -163,13 +161,12 @@ enum power_state power_handle_state(enum power_state state)
case POWER_S3S0:
gpio_set_level(GPIO_AP_CORE_EN, 1);
msleep(2);
- gpio_set_level(GPIO_PP3300_USB_EN_L, 0);
- msleep(2);
gpio_set_level(GPIO_PP1800_S0_EN_L, 0);
msleep(2);
gpio_set_level(GPIO_PP3300_S0_EN_L, 0);
msleep(2);
- msleep(10); /* TBD */
+ gpio_set_level(GPIO_PP3300_USB_EN_L, 0);
+ msleep(2);
/* Pulse SYS_RST */
gpio_set_level(GPIO_SYS_RST_L, 0);