Re: [U-Boot] [PATCH v9 2/4] gpio: Replace ARM gpio.h with the common API in include/asm-generic

2011-11-17 Thread Joe Hershberger
On Fri, Nov 11, 2011 at 5:07 PM, Kim Phillips
 wrote:
> On Fri, 11 Nov 2011 15:55:36 -0600
> Joe Hershberger  wrote:
>
>> ARM boards should use the generic GPIO API
>> This means changing gpio to unsigned type
>> Remove the unused gpio_toggle() function which is not part of the API
>> Comment that free should not modify pin state
>>
>> Signed-off-by: Joe Hershberger 
>> Cc: Joe Hershberger 
>> Cc: Kim Phillips 
>> Cc: Albert ARIBAUD 
>> ---
>
> I've tested this series on the 8313, and I'm ok with it going in:
>
> Acked-by: Kim Phillips 
>
> I need an ack from the ARM GPIO guys to apply it though (assuming it
> is to go through 83xx).

It has been Acked by ARM guys several times in several forms.  It's
pretty straightforward.  Not sure if Albert was planning to look at
this again.

-Joe
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v9 2/4] gpio: Replace ARM gpio.h with the common API in include/asm-generic

2011-11-11 Thread Kim Phillips
On Fri, 11 Nov 2011 15:55:36 -0600
Joe Hershberger  wrote:

> ARM boards should use the generic GPIO API
> This means changing gpio to unsigned type
> Remove the unused gpio_toggle() function which is not part of the API
> Comment that free should not modify pin state
> 
> Signed-off-by: Joe Hershberger 
> Cc: Joe Hershberger 
> Cc: Kim Phillips 
> Cc: Albert ARIBAUD 
> ---

I've tested this series on the 8313, and I'm ok with it going in:

Acked-by: Kim Phillips 

I need an ack from the ARM GPIO guys to apply it though (assuming it
is to go through 83xx).

Kim

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v9 2/4] gpio: Replace ARM gpio.h with the common API in include/asm-generic

2011-11-11 Thread Joe Hershberger
ARM boards should use the generic GPIO API
This means changing gpio to unsigned type
Remove the unused gpio_toggle() function which is not part of the API
Comment that free should not modify pin state

Signed-off-by: Joe Hershberger 
Cc: Joe Hershberger 
Cc: Kim Phillips 
Cc: Albert ARIBAUD 
---
Changes for v4:
 - Split out of patch 1/2
Changes for v5:
 - Moved asm/arch/gpio.h include to asm/gpio.h
Changes for v6:
Changes for v7:
Changes for v8:
 - Include omap-common/gpio.c in retrofit
Changes for v9:
 - Tegra gpio_free clears name
 - Updated GPIO API for other ARM boards that were added
 - Follow API by returning -1 on error instead of -EINVAL

 arch/arm/cpu/armv7/omap-common/gpio.c |   35 ---
 arch/arm/include/asm/gpio.h   |   38 +
 drivers/gpio/da8xx_gpio.c |   78 
 drivers/gpio/mvgpio.c |   74 +++
 drivers/gpio/mxc_gpio.c   |   42 -
 drivers/gpio/s5p_gpio.c   |   47 ++
 drivers/gpio/tegra2_gpio.c|  165 +
 7 files changed, 229 insertions(+), 250 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/gpio.c 
b/arch/arm/cpu/armv7/omap-common/gpio.c
index 75a02da..fc89f2a 100644
--- a/arch/arm/cpu/armv7/omap-common/gpio.c
+++ b/arch/arm/cpu/armv7/omap-common/gpio.c
@@ -36,7 +36,7 @@
  * published by the Free Software Foundation.
  */
 #include 
-#include 
+#include 
 #include 
 #include 
 
@@ -56,17 +56,17 @@ static inline int get_gpio_index(int gpio)
 static inline int gpio_valid(int gpio)
 {
if (gpio < 0)
-   return -EINVAL;
+   return -1;
if (gpio < 192)
return 0;
-   return -EINVAL;
+   return -1;
 }
 
 static int check_gpio(int gpio)
 {
if (gpio_valid(gpio) < 0) {
printf("ERROR : check_gpio: invalid GPIO %d\n", gpio);
-   return -EINVAL;
+   return -1;
}
return 0;
 }
@@ -106,7 +106,7 @@ static int _get_gpio_direction(const struct gpio_bank 
*bank, int gpio)
reg += OMAP_GPIO_OE;
break;
default:
-   return -EINVAL;
+   return -1;
}
 
v = __raw_readl(reg);
@@ -142,27 +142,29 @@ static void _set_gpio_dataout(const struct gpio_bank 
*bank, int gpio,
 /**
  * Set value of the specified gpio
  */
-void gpio_set_value(int gpio, int value)
+int gpio_set_value(unsigned gpio, int value)
 {
const struct gpio_bank *bank;
 
if (check_gpio(gpio) < 0)
-   return;
+   return -1;
bank = get_gpio_bank(gpio);
_set_gpio_dataout(bank, get_gpio_index(gpio), value);
+
+   return 0;
 }
 
 /**
  * Get value of the specified gpio
  */
-int gpio_get_value(int gpio)
+int gpio_get_value(unsigned gpio)
 {
const struct gpio_bank *bank;
void *reg;
int input;
 
if (check_gpio(gpio) < 0)
-   return -EINVAL;
+   return -1;
bank = get_gpio_bank(gpio);
reg = bank->base;
switch (bank->method) {
@@ -176,11 +178,11 @@ int gpio_get_value(int gpio)
reg += OMAP_GPIO_DATAOUT;
break;
default:
-   return -EINVAL;
+   return -1;
}
break;
default:
-   return -EINVAL;
+   return -1;
}
return (__raw_readl(reg)
& (1 << get_gpio_index(gpio))) != 0;
@@ -194,7 +196,7 @@ int gpio_direction_input(unsigned gpio)
const struct gpio_bank *bank;
 
if (check_gpio(gpio) < 0)
-   return -EINVAL;
+   return -1;
 
bank = get_gpio_bank(gpio);
_set_gpio_direction(bank, get_gpio_index(gpio), 1);
@@ -210,7 +212,7 @@ int gpio_direction_output(unsigned gpio, int value)
const struct gpio_bank *bank;
 
if (check_gpio(gpio) < 0)
-   return -EINVAL;
+   return -1;
 
bank = get_gpio_bank(gpio);
_set_gpio_dataout(bank, get_gpio_index(gpio), value);
@@ -224,10 +226,10 @@ int gpio_direction_output(unsigned gpio, int value)
  *
  * NOTE: Argument 'label' is unused.
  */
-int gpio_request(int gpio, const char *label)
+int gpio_request(unsigned gpio, const char *label)
 {
if (check_gpio(gpio) < 0)
-   return -EINVAL;
+   return -1;
 
return 0;
 }
@@ -235,6 +237,7 @@ int gpio_request(int gpio, const char *label)
 /**
  * Reset and free the gpio after using it.
  */
-void gpio_free(unsigned gpio)
+int gpio_free(unsigned gpio)
 {
+   return 0;
 }
diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h
index eb071d1..d49ad08 100644
--- a/arch/arm/include/asm/gpio.h
+++ b/arch/arm/include/asm/gpio.h
@@ -1,38 +1,2 @@
-/*
- * Copyright (c) 2011, NVIDIA Corp. All rights reserved.
- * See file CREDITS for list of peopl