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>
This commit is contained in:
Shawn Nematbakhsh
2016-04-08 19:42:09 -07:00
committed by chrome-bot
parent 9eafb5b9dd
commit 90145968b2
4 changed files with 29 additions and 26 deletions

View File

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

View File

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

View File

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

View File

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