summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2013-06-14 09:28:25 -0500
committerChromeBot <chrome-bot@google.com>2013-06-14 16:16:09 -0700
commit17e9c06a1a5f730343d1342e4a9f87739340ac93 (patch)
treedde59e6eeee3b190e68aaef08134b1918870face
parent7884ae482187ed79bde3bc0cd28bb22b2b7dfe6a (diff)
downloadchrome-ec-17e9c06a1a5f730343d1342e4a9f87739340ac93.tar.gz
haswell: Add notes about PL6 weirdness
It was found that PL6 behaves in an inverted way when it is configured as open drain. Add notes about determining why this is. Apparently PL6 is an oddity w.r.t. the other pins. BUG=chrome-os-partner:19811 BRANCH=None TEST=built Change-Id: I2d5b27f49c4e51ba4eb75cda9c798b9a5793f767 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/58679 Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
-rw-r--r--board/falco/board.c2
-rw-r--r--board/peppy/board.c2
-rw-r--r--board/slippy/board.c2
-rw-r--r--common/x86_power_haswell.c7
4 files changed, 10 insertions, 3 deletions
diff --git a/board/falco/board.c b/board/falco/board.c
index 0bca002f49..60f431a794 100644
--- a/board/falco/board.c
+++ b/board/falco/board.c
@@ -98,6 +98,8 @@ const struct gpio_info gpio_list[GPIO_COUNT] = {
{"PCH_NMI_L", LM4_GPIO_F, (1<<2), GPIO_OUT_HIGH, NULL},
{"PCH_PWRBTN_L", LM4_GPIO_H, (1<<0), GPIO_OUT_HIGH, NULL},
{"PCH_PWROK", LM4_GPIO_F, (1<<5), GPIO_OUT_LOW, NULL},
+ /* FIXME: Why is PL6 act like it is inverted. Setting value to
+ * 0 makes the signal high, and setting it to 1 makes the signal low. */
{"PCH_RCIN_L", LM4_GPIO_L, (1<<6), GPIO_ODR_LOW, NULL},
{"PCH_RSMRST_L", LM4_GPIO_F, (1<<1), GPIO_OUT_LOW, NULL},
{"PCH_SMI_L", LM4_GPIO_F, (1<<4), GPIO_OUT_HIGH, NULL},
diff --git a/board/peppy/board.c b/board/peppy/board.c
index fccb3aab8c..4e397a0f72 100644
--- a/board/peppy/board.c
+++ b/board/peppy/board.c
@@ -98,6 +98,8 @@ const struct gpio_info gpio_list[GPIO_COUNT] = {
{"PCH_NMI_L", LM4_GPIO_F, (1<<2), GPIO_OUT_HIGH, NULL},
{"PCH_PWRBTN_L", LM4_GPIO_H, (1<<0), GPIO_OUT_HIGH, NULL},
{"PCH_PWROK", LM4_GPIO_F, (1<<5), GPIO_OUT_LOW, NULL},
+ /* FIXME: Why is PL6 act like it is inverted. Setting value to
+ * 0 makes the signal high, and setting it to 1 makes the signal low. */
{"PCH_RCIN_L", LM4_GPIO_L, (1<<6), GPIO_ODR_LOW, NULL},
{"PCH_RSMRST_L", LM4_GPIO_F, (1<<1), GPIO_OUT_LOW, NULL},
{"PCH_SMI_L", LM4_GPIO_F, (1<<4), GPIO_OUT_HIGH, NULL},
diff --git a/board/slippy/board.c b/board/slippy/board.c
index 56b499ad31..046669053c 100644
--- a/board/slippy/board.c
+++ b/board/slippy/board.c
@@ -98,6 +98,8 @@ const struct gpio_info gpio_list[GPIO_COUNT] = {
{"PCH_NMI_L", LM4_GPIO_F, (1<<2), GPIO_OUT_HIGH, NULL},
{"PCH_PWRBTN_L", LM4_GPIO_H, (1<<0), GPIO_OUT_HIGH, NULL},
{"PCH_PWROK", LM4_GPIO_F, (1<<5), GPIO_OUT_LOW, NULL},
+ /* FIXME: Why is PL6 act like it is inverted. Setting value to
+ * 0 makes the signal high, and setting it to 1 makes the signal low. */
{"PCH_RCIN_L", LM4_GPIO_L, (1<<6), GPIO_ODR_LOW, NULL},
{"PCH_RSMRST_L", LM4_GPIO_F, (1<<1), GPIO_OUT_LOW, NULL},
{"PCH_SMI_L", LM4_GPIO_F, (1<<4), GPIO_OUT_HIGH, NULL},
diff --git a/common/x86_power_haswell.c b/common/x86_power_haswell.c
index b6759da087..06bce3f204 100644
--- a/common/x86_power_haswell.c
+++ b/common/x86_power_haswell.c
@@ -239,9 +239,10 @@ void chipset_reset(int cold_reset)
/*
* Pulse must be at least 16 PCI clocks long = 500 ns. The gpio
- * pin used by the EC is configured as open drain. Therefore,
- * the driving RCIN# low needs to the level 1 to enable the
- * FET and 0 to disable the FET. */
+ * pin used by the EC is configured as open drain. However,
+ * empirically it was deteremined the polarity of the pin is
+ * inverted. No idea why. Therefore, the driving RCIN# low
+ * needs to be set to level 1. FIXME: why? */
gpio_set_level(GPIO_PCH_RCIN_L, 1);
udelay(10);
gpio_set_level(GPIO_PCH_RCIN_L, 0);