summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2015-07-21 13:47:33 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-07-24 21:54:31 +0000
commit08546e3540cb21b849a4112a256d6c52337cca96 (patch)
treea323ad62e343c51b5dae09c2c611145fa4d0e653 /board
parent96888b2f9b4d77e85141832a9c5009606a0e6af4 (diff)
downloadchrome-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.c10
-rw-r--r--board/glados/board.h34
-rw-r--r--board/glados/gpio.inc34
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) */