summaryrefslogtreecommitdiff
path: root/board/oak/gpio.inc
diff options
context:
space:
mode:
authorBen Lok <ben.lok@mediatek.com>2015-12-21 20:57:34 +0800
committerchrome-bot <chrome-bot@chromium.org>2016-03-01 08:25:58 -0800
commit0c9e75f01729d3589d408f3345db7deaa9c04783 (patch)
tree5411023f080821f7c2984a539412096d6f00fb6b /board/oak/gpio.inc
parenta36a6ca96e864b2ce193df0874d84360cfce0c9e (diff)
downloadchrome-ec-0c9e75f01729d3589d408f3345db7deaa9c04783.tar.gz
oak: Add base accel & gyro via SPI bus for rev5
refer to commit d341615383f1ea5d3a540a67bcec777ba902bdfb, adds the base accelerometer as well as the gyroscope to the list of motion sensors on the board, connect with SPI bus. They are currently wrapped behind an ifdef for HAS_TASK_MOTIONSENSE and OAK_REV5. BUG=chrome-os-partner:50312 BRANCH=none TEST=Build Oak EC with driver enabled and verify that we can calcuate a valid lid angle. TEST=Verify that signs of accelerometer conform to those shown in the Chrome/Android/HTML5 doc/spec. See description in accelerometer_types.h TEST=Verify that signs of gyroscope conform to those shown in the "Sysfs interface to EC accelerometers" document. TEST=make buildall tests Change-Id: I4d900bc6bd7329db6ea53660fae86e5e2bbe9028 Signed-off-by: Ben Lok <ben.lok@mediatek.com> Reviewed-on: https://chromium-review.googlesource.com/319295 Commit-Ready: Rong Chang <rongchang@chromium.org> Tested-by: Rong Chang <rongchang@chromium.org> Reviewed-by: Rong Chang <rongchang@chromium.org>
Diffstat (limited to 'board/oak/gpio.inc')
-rw-r--r--board/oak/gpio.inc37
1 files changed, 32 insertions, 5 deletions
diff --git a/board/oak/gpio.inc b/board/oak/gpio.inc
index 9bef78d8c1..29de1f276f 100644
--- a/board/oak/gpio.inc
+++ b/board/oak/gpio.inc
@@ -110,7 +110,7 @@ GPIO(KB_OUT12, PIN(D, 5), GPIO_KB_OUTPUT)
GPIO(DP_MUX_EN_L, PIN(E, 6), GPIO_OUT_LOW)
GPIO(DP_SWITCH_CTL, PIN(E, 5), GPIO_OUT_LOW)
-#else /* BOARD_REV >= 3 */
+#elif BOARD_REV <= OAK_REV4 /* BOARD_REV 3 or 4 */
GPIO(AP_RESET_L, PIN(C, 3), GPIO_ODR_HIGH) /* Connect to the PMU_SYSRSTB */
GPIO(USB_C_BC12_SEL, PIN(D, 7), GPIO_OUT_LOW)
GPIO(KB_OUT00, PIN(B, 0), GPIO_KB_OUTPUT)
@@ -126,12 +126,33 @@ GPIO(KB_OUT09, PIN(B, 1), GPIO_KB_OUTPUT)
GPIO(KB_OUT10, PIN(C, 5), GPIO_KB_OUTPUT)
GPIO(KB_OUT11, PIN(C, 4), GPIO_KB_OUTPUT)
GPIO(KB_OUT12, PIN(C, 2), GPIO_KB_OUTPUT)
+
+#else /* >= OAK_REV5 */
+GPIO(AP_RESET_L, PIN(C, 3), GPIO_ODR_HIGH) /* Connect to the PMU_SYSRSTB */
+GPIO(USB_C_BC12_SEL, PIN(D, 7), GPIO_OUT_LOW)
+GPIO(KB_OUT00, PIN(B, 0), GPIO_KB_OUTPUT)
+GPIO(KB_OUT01, PIN(B, 8), GPIO_KB_OUTPUT)
+GPIO(KB_OUT02, PIN(B, 12), GPIO_OUT_LOW) /* KSO2 is inverted */
+GPIO(KB_OUT03, PIN(B, 2), GPIO_KB_OUTPUT)
+GPIO(KB_OUT04, PIN(A, 8), GPIO_KB_OUTPUT)
+GPIO(KB_OUT05, PIN(D, 14), GPIO_KB_OUTPUT)
+GPIO(KB_OUT06, PIN(D, 13), GPIO_KB_OUTPUT)
+GPIO(KB_OUT07, PIN(D, 15), GPIO_KB_OUTPUT)
+GPIO(KB_OUT08, PIN(D, 5), GPIO_KB_OUTPUT)
+GPIO(KB_OUT09, PIN(B, 1), GPIO_KB_OUTPUT)
+GPIO(KB_OUT10, PIN(C, 5), GPIO_KB_OUTPUT)
+GPIO(KB_OUT11, PIN(C, 4), GPIO_KB_OUTPUT)
+GPIO(KB_OUT12, PIN(C, 2), GPIO_KB_OUTPUT)
#endif /* BOARD_REV */
GPIO(SYSTEM_POWER_H, PIN(B, 10), GPIO_OUT_LOW)
GPIO(PMIC_PWRON_H, PIN(A, 12), GPIO_OUT_LOW)
GPIO(PMIC_WARM_RESET_H, PIN(B, 3), GPIO_OUT_LOW)
+#if BOARD_REV <= OAK_REV4
GPIO(LEVEL_SHIFT_EN_L, PIN(D, 3), GPIO_OUT_LOW) /* LID/AC level shift */
+#else /* >= OAK_REV5 */
+GPIO(LEVEL_SHIFT_EN_L, PIN(F, 10), GPIO_OUT_LOW) /* LID/AC level shift */
+#endif
GPIO(USB_PD_RST_L, PIN(A, 15), GPIO_OUT_HIGH) /* PD reset */
GPIO(USB_C0_5V_EN, PIN(D, 8), GPIO_OUT_LOW) /* USBC port 0 5V */
GPIO(USB_C0_CHARGE_L, PIN(D, 9), GPIO_OUT_LOW) /* USBC port 0 charge */
@@ -158,7 +179,13 @@ GPIO(I2C0_SDA, PIN(B, 7), GPIO_INPUT)
GPIO(I2C1_SCL, PIN(B, 13), GPIO_INPUT) /* PD I2C */
GPIO(I2C1_SDA, PIN(B, 14), GPIO_INPUT)
-ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0) /* USART1: PA9/PA10 */
-ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, 0) /* I2C MASTER:PB6/7 */
-ALTERNATE(PIN_MASK(B, 0x6000), 5, MODULE_I2C, 0) /* I2C MASTER:PB13/14 */
-ALTERNATE(PIN_MASK(A, 0x00f0), 0, MODULE_SPI, 0) /* SPI SLAVE:PA4/5/6/7 */
+/* SPI MASTER. For SPI sensor */
+GPIO(SPI2_NSS, PIN(D, 0), GPIO_OUT_LOW)
+
+ALTERNATE(PIN_MASK(A, 0x0600), 1, MODULE_UART, 0) /* USART1: PA9/PA10 */
+ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, 0) /* I2C MASTER:PB6/7 */
+ALTERNATE(PIN_MASK(B, 0x6000), 5, MODULE_I2C, 0) /* I2C MASTER:PB13/14 */
+ALTERNATE(PIN_MASK(A, 0x00f0), 0, MODULE_SPI, 0) /* SPI SLAVE:PA4/5/6/7 */
+#if BOARD_REV >= OAK_REV5
+ALTERNATE(PIN_MASK(D, 0x001A), 1, MODULE_SPI_MASTER, 0) /* SPI MASTER:PD1/3/4 */
+#endif