From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeroen Hofstee Date: Thu, 12 Jun 2014 23:03:14 +0200 Subject: [U-Boot] unsigned int for gpio In-Reply-To: References: <1402522645.4361.18.camel@yellow> Message-ID: <1402606994.4590.3.camel@yellow> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Simon, On wo, 2014-06-11 at 17:12 -0600, Simon Glass wrote: > Hi Jeroen, > > On 11 June 2014 15:37, Jeroen Hofstee wrote: > > Hello Simon, > > > > in commit 95a260a9 > > > > > > dm: Enable gpio command to support driver model > > > > Now that named GPIO banks are supported, along with a way of obtaining > > the status of a GPIO (input or output), we can provide an enhanced > > GPIO command for driver model. Where the driver provides its own > > operation for obtaining the GPIO state, this is used, otherwise a > > generic version is sufficient. > > > > you made the following change: > > > > - int gpio; > > + unsigned int gpio; > > > > This breaks the code after it though: > > > > /* turn the gpio name into a gpio number */ > > gpio = name_to_gpio(str_gpio); > > if (gpio < 0) > > goto show_usage; > > > > And causes warnings with clang like: > > > > common/cmd_gpio.c:159:11: warning: comparison of unsigned expression < 0 > > is always false [-Wtautological-compare] > > if (gpio < 0) > > ~~~~ ^ ~ > > > > Do you recall why it is made unsigned? > > This is because gpio_lookup_name() needs an unsigned (-ve values have > no meaning). I think that is what we want ultimately, but perhaps we > need to go back to int in the meantime. The simplest fix would > probably be to use a separate unsigned variable for the driver model > code, and go back to an int for the current (old) code. The difference > is that driver model returns a separate error code, whereas the old > code combines the GPIO and error into a single value. ok thanks. I will leave it alone then for now. Since the default lookup, simple_strtoul, is unsigned as well, it won't solve a common problem anyway. Regards, Jeroen