<p>Julius Werner has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27809">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gpio: Change gpio_baseX_value() function return types to unsigned<br><br>This patch changes the return type of gpio_base2_value() and related<br>functions from int to uint32_t. This makes more sense now that<br>board_id() and related functions (which are the primary use case) also<br>return that type. It's unlikely that we'll ever read a strapping of 32<br>GPIOs in a row, but if we did, we'd probably want to treat it as<br>unsigned.<br><br>Change-Id: I8fb7e3a7c76cb886aed40d0ada1f545180e43117<br>Signed-off-by: Julius Werner <jwerner@chromium.org><br>---<br>M src/include/gpio.h<br>M src/lib/gpio.c<br>2 files changed, 17 insertions(+), 16 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/09/27809/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/include/gpio.h b/src/include/gpio.h</span><br><span>index 3160242..0a37ee7 100644</span><br><span>--- a/src/include/gpio.h</span><br><span>+++ b/src/include/gpio.h</span><br><span>@@ -29,7 +29,7 @@</span><br><span> void gpio_input_pullup(gpio_t gpio);</span><br><span> void gpio_input(gpio_t gpio);</span><br><span> void gpio_output(gpio_t gpio, int value);</span><br><span style="color: hsl(0, 100%, 40%);">-int _gpio_base3_value(const gpio_t gpio[], int num_gpio, int binary_first);</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t _gpio_base3_value(const gpio_t gpio[], int num_gpio, int binary_first);</span><br><span> </span><br><span> /*</span><br><span>  * This function may be implemented by SoC/board code to provide</span><br><span>@@ -60,9 +60,9 @@</span><br><span>  * There are also pulldown and pullup variants which default each gpio to</span><br><span>  * be configured with an internal pulldown and pullup, respectively.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-int gpio_base2_value(const gpio_t gpio[], int num_gpio);</span><br><span style="color: hsl(0, 100%, 40%);">-int gpio_pulldown_base2_value(const gpio_t gpio[], int num_gpio);</span><br><span style="color: hsl(0, 100%, 40%);">-int gpio_pullup_base2_value(const gpio_t gpio[], int num_gpio);</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t gpio_base2_value(const gpio_t gpio[], int num_gpio);</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t gpio_pulldown_base2_value(const gpio_t gpio[], int num_gpio);</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t gpio_pullup_base2_value(const gpio_t gpio[], int num_gpio);</span><br><span> </span><br><span> /*</span><br><span>  * Read the value presented by the set of GPIOs, when each pin is interpreted</span><br><span>@@ -73,7 +73,7 @@</span><br><span>  * gpio[]: pin positions to read. gpio[0] is less significant than gpio[1].</span><br><span>  * num_gpio: number of pins to read.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-static inline int gpio_base3_value(const gpio_t gpio[], int num_gpio)</span><br><span style="color: hsl(120, 100%, 40%);">+static inline uint32_t gpio_base3_value(const gpio_t gpio[], int num_gpio)</span><br><span> {</span><br><span>       return _gpio_base3_value(gpio, num_gpio, 0);</span><br><span> }</span><br><span>@@ -103,8 +103,8 @@</span><br><span>  * gpio[]: pin positions to read. gpio[0] is less significant than gpio[1].</span><br><span>  * num_gpio: number of pins to read.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-static inline int gpio_binary_first_base3_value(const gpio_t gpio[],</span><br><span style="color: hsl(0, 100%, 40%);">-                                               int num_gpio)</span><br><span style="color: hsl(120, 100%, 40%);">+static inline uint32_t gpio_binary_first_base3_value(const gpio_t gpio[],</span><br><span style="color: hsl(120, 100%, 40%);">+                                                   int num_gpio)</span><br><span> {</span><br><span>      return _gpio_base3_value(gpio, num_gpio, 1);</span><br><span> }</span><br><span>diff --git a/src/lib/gpio.c b/src/lib/gpio.c</span><br><span>index b52d7b0..0656dfb 100644</span><br><span>--- a/src/lib/gpio.c</span><br><span>+++ b/src/lib/gpio.c</span><br><span>@@ -20,9 +20,10 @@</span><br><span> #include <delay.h></span><br><span> #include <gpio.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int _gpio_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span style="color: hsl(120, 100%, 40%);">+static uint32_t _gpio_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        int i, result = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    uint32_t result = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  int i;</span><br><span> </span><br><span>   /* Wait until signals become stable */</span><br><span>       udelay(10);</span><br><span>@@ -33,7 +34,7 @@</span><br><span>      return result;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gpio_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t gpio_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span> {</span><br><span>    int i;</span><br><span> </span><br><span>@@ -43,7 +44,7 @@</span><br><span>       return _gpio_base2_value(gpio, num_gpio);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gpio_pulldown_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t gpio_pulldown_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span> {</span><br><span>       int i;</span><br><span> </span><br><span>@@ -53,7 +54,7 @@</span><br><span>       return _gpio_base2_value(gpio, num_gpio);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int gpio_pullup_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t gpio_pullup_base2_value(const gpio_t gpio[], int num_gpio)</span><br><span> {</span><br><span>   int i;</span><br><span> </span><br><span>@@ -63,7 +64,7 @@</span><br><span>       return _gpio_base2_value(gpio, num_gpio);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int _gpio_base3_value(const gpio_t gpio[], int num_gpio, int binary_first)</span><br><span style="color: hsl(120, 100%, 40%);">+uint32_t _gpio_base3_value(const gpio_t gpio[], int num_gpio, int binary_first)</span><br><span> {</span><br><span>   /*</span><br><span>    * GPIOs which are tied to stronger external pull up or pull down</span><br><span>@@ -75,11 +76,11 @@</span><br><span>       */</span><br><span> </span><br><span>      static const char tristate_char[] = {[0] = '0', [1] = '1', [Z] = 'Z'};</span><br><span style="color: hsl(0, 100%, 40%);">-  int temp;</span><br><span style="color: hsl(0, 100%, 40%);">-       int index;</span><br><span style="color: hsl(0, 100%, 40%);">-      int result = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+       uint32_t result = 0;</span><br><span>         int has_z = 0;</span><br><span>       int binary_below = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ int index;</span><br><span style="color: hsl(120, 100%, 40%);">+    int temp;</span><br><span>    char value[32];</span><br><span>      assert(num_gpio <= 32);</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27809">change 27809</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/27809"/><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: I8fb7e3a7c76cb886aed40d0ada1f545180e43117 </div>
<div style="display:none"> Gerrit-Change-Number: 27809 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Julius Werner <jwerner@chromium.org> </div>