diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2015-07-21 13:47:33 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-07-24 21:54:31 +0000 |
commit | 08546e3540cb21b849a4112a256d6c52337cca96 (patch) | |
tree | a323ad62e343c51b5dae09c2c611145fa4d0e653 /board | |
parent | 96888b2f9b4d77e85141832a9c5009606a0e6af4 (diff) | |
download | chrome-ec-08546e3540cb21b849a4112a256d6c52337cca96.tar.gz |
glados: V2 Board Changes
Changes for glados proto 2 build. These changes are behind GLADOS_BOARD_V2,
which is not defined by default in order to support existing boards.
BUG=chrome-os-partner:42933
TEST=Verify that Glados v1 board continues to boot AP. Verify
compilation on GLADOS_BOARD_V2.
BRANCH=None
Change-Id: I68634f95f94d3d37f18d676c01219f92b6ddfc45
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/287291
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/glados/board.c | 10 | ||||
-rw-r--r-- | board/glados/board.h | 34 | ||||
-rw-r--r-- | board/glados/gpio.inc | 34 |
3 files changed, 68 insertions, 10 deletions
diff --git a/board/glados/board.c b/board/glados/board.c index ae739d7e4b..9a8d17f8bf 100644 --- a/board/glados/board.c +++ b/board/glados/board.c @@ -117,6 +117,7 @@ const struct adc_t adc_channels[] = { }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); +#ifdef GLADOS_BOARD_V1 const struct i2c_port_t i2c_ports[] = { {"batt", MEC1322_I2C0_0, 100, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA}, {"muxes", MEC1322_I2C0_1, 100, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA}, @@ -124,6 +125,15 @@ const struct i2c_port_t i2c_ports[] = { {"sensors", MEC1322_I2C2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA }, {"pmic", MEC1322_I2C3, 400, GPIO_I2C3_SCL, GPIO_I2C3_SDA }, }; +#else +const struct i2c_port_t i2c_ports[] = { + {"pmic", MEC1322_I2C0_0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA}, + {"muxes", MEC1322_I2C0_1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA}, + {"pd_mcu", MEC1322_I2C1, 1000, GPIO_I2C1_SCL, GPIO_I2C1_SDA}, + {"sensors", MEC1322_I2C2, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA }, + {"batt", MEC1322_I2C3, 100, GPIO_I2C3_SCL, GPIO_I2C3_SDA }, +}; +#endif const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); const enum gpio_signal hibernate_wake_pins[] = { diff --git a/board/glados/board.h b/board/glados/board.h index 8bbd240c6e..73d83a4fe4 100644 --- a/board/glados/board.h +++ b/board/glados/board.h @@ -8,6 +8,13 @@ #ifndef __CROS_EC_BOARD_H #define __CROS_EC_BOARD_H +/* + * Certain changes make V1 boards incompatible with V2. + * TODO(crosbug.com/p/43075): Remove support for V1 when appropriate. + */ +#define GLADOS_BOARD_V1 +/* #define GLADOS_BOARD_V2 */ + /* Optional features */ #define CONFIG_ADC #define CONFIG_BATTERY_CUT_OFF @@ -18,12 +25,13 @@ #define CONFIG_CHARGER #define CONFIG_CHARGER_V2 + +#define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_ISL9237 #define CONFIG_CHARGER_ILIM_PIN_DISABLED +#define CONFIG_CHARGER_INPUT_CURRENT 512 #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 -#define CONFIG_CHARGER_INPUT_CURRENT 512 -#define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHIPSET_SKYLAKE #define CONFIG_CLOCK_CRYSTAL @@ -75,7 +83,10 @@ #define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L #define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_WLAN_EN + + /* I2C ports */ +#ifdef GLADOS_BOARD_V1 #define I2C_PORT_BATTERY MEC1322_I2C0_0 #define I2C_PORT_CHARGER MEC1322_I2C0_0 #define I2C_PORT_USB_CHARGER_1 MEC1322_I2C0_1 @@ -86,6 +97,19 @@ #define I2C_PORT_ACCEL MEC1322_I2C2 #define I2C_PORT_PMIC MEC1322_I2C3 #define I2C_PORT_USB_CHARGER_2 MEC1322_I2C3 +#else +#define I2C_PORT_PMIC MEC1322_I2C0_0 +/* TODO(shawnn): Verify that the charge detectors aren't swapped */ +#define I2C_PORT_USB_CHARGER_1 MEC1322_I2C0_0 +#define I2C_PORT_USB_MUX MEC1322_I2C0_1 +#define I2C_PORT_USB_CHARGER_2 MEC1322_I2C0_1 +#define I2C_PORT_PD_MCU MEC1322_I2C1 +#define I2C_PORT_TCPC MEC1322_I2C1 +#define I2C_PORT_ALS MEC1322_I2C2 +#define I2C_PORT_ACCEL MEC1322_I2C2 +#define I2C_PORT_BATTERY MEC1322_I2C3 +#define I2C_PORT_CHARGER MEC1322_I2C3 +#endif #undef DEFERRABLE_MAX_COUNT #define DEFERRABLE_MAX_COUNT 13 @@ -139,11 +163,17 @@ enum temp_sensor_id { #define PD_OPERATING_POWER_MW 15000 #define PD_MAX_POWER_MW 60000 #define PD_MAX_CURRENT_MA 3000 + +#ifdef GLADOS_BOARD_V1 /* * TODO: max voltage should be 20V, but this causes excessive i2c noise * on battery bus on proto0, which leads to inconsistent charging. */ #define PD_MAX_VOLTAGE_MV 5000 +#else +/*** Try to negotiate to 20V since i2c noise problems should be fixed. ***/ +#define PD_MAX_VOLTAGE_MV 20000 +#endif /* Reset PD MCU */ void board_reset_pd_mcu(void); diff --git a/board/glados/gpio.inc b/board/glados/gpio.inc index c8dd407d12..a69c27ca71 100644 --- a/board/glados/gpio.inc +++ b/board/glados/gpio.inc @@ -24,8 +24,13 @@ GPIO_INT(USB_C0_VBUS_WAKE_L,PIN(152), GPIO_INT_BOTH, vbus0_evt) GPIO_INT(USB_C1_VBUS_WAKE_L,PIN(123), GPIO_INT_BOTH, vbus1_evt) GPIO_INT(USB_C0_BC12_INT_L, PIN(124), GPIO_INT_FALLING, usb0_evt) GPIO_INT(USB_C1_BC12_INT_L, PIN(145), GPIO_INT_FALLING, usb1_evt) + /* Delayed PWR_OK from PMIC */ +#ifdef GLADOS_BOARD_V1 GPIO_INT(PMIC_DPWROK, PIN(55), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt) +#else +GPIO_INT(PMIC_DPWROK, PIN(133), GPIO_INT_BOTH, power_signal_interrupt) +#endif GPIO(PD_RST_L, PIN(130), GPIO_ODR_HIGH) GPIO(USB2_OTG_ID, PIN(13), GPIO_ODR_LOW) @@ -65,28 +70,20 @@ GPIO(PCH_ACOK, PIN(110), GPIO_OUT_LOW) GPIO(ACCEL1_INT, PIN(161), GPIO_INPUT) GPIO(ACCEL2_INT, PIN(127), GPIO_INPUT) GPIO(ACCEL3_INT, PIN(147), GPIO_INPUT) -GPIO(ACCEL4_INT, PIN(133), GPIO_INPUT) GPIO(WLAN_OFF_L, PIN(132), GPIO_OUT_LOW) /* RCIN# line to PCH for 8042 emulation */ GPIO(PCH_RCIN_L, PIN(135), GPIO_ODR_HIGH) GPIO(USB2_OTG_VBUSSENSE, PIN(140), GPIO_OUT_LOW) -/* Sensor input for KB PROX - UNUSED */ -GPIO(KB_PROX_INT_L, PIN(141), GPIO_INPUT | GPIO_PULL_UP) GPIO(PCH_RSMRST_L, PIN(143), GPIO_OUT_LOW) /* prochot input from devices */ GPIO(PLATFORM_EC_PROCHOT, PIN(151), GPIO_INPUT | GPIO_PULL_UP) GPIO(USB_C0_5V_EN, PIN(154), GPIO_OUT_LOW) GPIO(USB_C1_5V_EN, PIN(204), GPIO_OUT_LOW) GPIO(USB_C0_CHARGE_EN_L, PIN(64), GPIO_OUT_LOW) -GPIO(USB_C1_CHARGE_EN_L, PIN(157), GPIO_OUT_LOW) GPIO(PP1800_DX_SENSOR_EN, PIN(11), GPIO_OUT_LOW) -GPIO(PP1800_DX_AUDIO_EN, PIN(160), GPIO_OUT_LOW) -GPIO(PCH_RTCRST, PIN(163), GPIO_OUT_LOW) /* From lid sensor */ -GPIO(TABLET_MODE, PIN(201), GPIO_INPUT | GPIO_PULL_UP) GPIO(ENABLE_BACKLIGHT, PIN(202), GPIO_OUT_LOW) GPIO(PP3300_WLAN_EN, PIN(203), GPIO_OUT_LOW) -GPIO(EC_WAKE_CLK, PIN(210), GPIO_INPUT) GPIO(BOARD_ID0, PIN(6), GPIO_INPUT) GPIO(BOARD_ID1, PIN(7), GPIO_INPUT) GPIO(BOARD_ID2, PIN(10), GPIO_INPUT) @@ -101,6 +98,27 @@ GPIO(SYS_RESET_L, PIN(121), GPIO_ODR_HIGH) GPIO(CHARGE_LED_1, PIN(155), GPIO_OUT_LOW) GPIO(CHARGE_LED_2, PIN(156), GPIO_OUT_LOW) +#ifdef GLADOS_BOARD_V1 +GPIO(ACCEL4_INT, PIN(133), GPIO_INPUT) +/* Sensor input for KB PROX - UNUSED */ +GPIO(KB_PROX_INT_L, PIN(141), GPIO_INPUT | GPIO_PULL_UP) +GPIO(USB_C1_CHARGE_EN_L, PIN(157), GPIO_OUT_LOW) +GPIO(PP1800_DX_AUDIO_EN, PIN(160), GPIO_OUT_LOW) +GPIO(PCH_RTCRST, PIN(163), GPIO_OUT_LOW) +GPIO(TABLET_MODE, PIN(201), GPIO_INPUT | GPIO_PULL_UP) +GPIO(EC_WAKE_CLK, PIN(210), GPIO_INPUT) +#else +/* Inhibit the AP from booting until we can supply enough current */ +GPIO(PCH_BATLOW_L, PIN(55), GPIO_OUT_LOW) +GPIO(ACCEL4_INT, PIN(157), GPIO_INPUT) +GPIO(PP1800_DX_AUDIO_EN, PIN(141), GPIO_OUT_LOW) +GPIO(TABLET_MODE, PIN(160), GPIO_INPUT | GPIO_PULL_UP) +/* NC / stuffing option */ +GPIO(PCH_RTCRST, PIN(163), GPIO_INPUT | GPIO_PULL_UP) +GPIO(PMIC_SLP_SUS_L, PIN(201), GPIO_OUT_LOW) +GPIO(USB_C1_CHARGE_EN_L, PIN(210), GPIO_OUT_LOW) +#endif + /* Alternate functions GPIO definitions */ /* GPIO162(UART_RX), GPIO165(UART_TX) */ |