<p>Julius Werner would like Lin Huang, David Schneider and Philip Chen to <strong>review</strong> this change.</p><p><a href="https://review.coreboot.org/23767">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">google/gru: Fix GPIO_WP pull and polarity for Scarlet<br><br>Turns out the write-protect GPIO polarity for Scarlet is different than<br>for Kevin/Gru, and nobody ever told us. Also, it must not be configured<br>with an internal pull-up or we'll not read the correct value. This patch<br>fixes both issues.<br><br>BRANCH=scarlet<br>BUG=b:73356326<br>TEST=Booted Scarlet, confirmed that crossystem wpsw_boot returns the<br>right value in all cases.<br><br>Change-Id: Idd348ecdf9da8fff7201b83e869ba097b8570f32<br>Signed-off-by: Julius Werner <jwerner@chromium.org><br>---<br>M src/mainboard/google/gru/chromeos.c<br>1 file changed, 10 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/67/23767/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/mainboard/google/gru/chromeos.c b/src/mainboard/google/gru/chromeos.c</span><br><span>index ff5368a..55da879 100644</span><br><span>--- a/src/mainboard/google/gru/chromeos.c</span><br><span>+++ b/src/mainboard/google/gru/chromeos.c</span><br><span>@@ -21,15 +21,19 @@</span><br><span> </span><br><span> #include "board.h"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+const uint32_t wp_polarity = IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET) ?</span><br><span style="color: hsl(120, 100%, 40%);">+                      ACTIVE_LOW : ACTIVE_HIGH;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> int get_write_protect_state(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      return gpio_get(GPIO_WP);</span><br><span style="color: hsl(120, 100%, 40%);">+     int raw = gpio_get(GPIO_WP);</span><br><span style="color: hsl(120, 100%, 40%);">+  return wp_polarity == ACTIVE_HIGH ? raw : !raw;</span><br><span> }</span><br><span> </span><br><span> void fill_lb_gpios(struct lb_gpios *gpios)</span><br><span> {</span><br><span>  struct lb_gpio chromeos_gpios[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             {GPIO_WP.raw, ACTIVE_HIGH, get_write_protect_state(),</span><br><span style="color: hsl(120, 100%, 40%);">+         {GPIO_WP.raw, wp_polarity, gpio_get(GPIO_WP),</span><br><span>                 "write protect"},</span><br><span>                 {-1, ACTIVE_HIGH, get_recovery_mode_switch(), "recovery"},</span><br><span> #if IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET)</span><br><span>@@ -49,7 +53,10 @@</span><br><span> </span><br><span> void setup_chromeos_gpios(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   gpio_input_pullup(GPIO_WP);</span><br><span style="color: hsl(120, 100%, 40%);">+   if (IS_ENABLED(CONFIG_GRU_BASEBOARD_SCARLET))</span><br><span style="color: hsl(120, 100%, 40%);">+         gpio_input(GPIO_WP);</span><br><span style="color: hsl(120, 100%, 40%);">+  else</span><br><span style="color: hsl(120, 100%, 40%);">+          gpio_input_pullup(GPIO_WP);</span><br><span>  gpio_input_pullup(GPIO_EC_IN_RW);</span><br><span>    gpio_input_pullup(GPIO_EC_IRQ);</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23767">change 23767</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/23767"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Idd348ecdf9da8fff7201b83e869ba097b8570f32 </div>
<div style="display:none"> Gerrit-Change-Number: 23767 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Julius Werner <jwerner@chromium.org> </div>
<div style="display:none"> Gerrit-Reviewer: David Schneider <dnschneid@chromium.org> </div>
<div style="display:none"> Gerrit-Reviewer: Lin Huang <hl@rock-chips.com> </div>
<div style="display:none"> Gerrit-Reviewer: Philip Chen <philipchen@chromium.org> </div>