Hi Bo, On 22.08.13 05:21, Bo Shen wrote: > Hi Andreas, > > On 8/21/2013 23:14, Andreas Bießmann wrote: >> On 08/13/2013 08:38 AM, Bo Shen wrote: >>> add gpio common API support for gpio command >>> >>> Signed-off-by: Bo Shen <voice.s...@atmel.com> >>> --- >>> drivers/gpio/at91_gpio.c | 43 >>> +++++++++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 43 insertions(+) >>> >>> diff --git a/drivers/gpio/at91_gpio.c b/drivers/gpio/at91_gpio.c >>> index 15f396f..3de0844 100644 >>> --- a/drivers/gpio/at91_gpio.c >>> +++ b/drivers/gpio/at91_gpio.c >>> @@ -363,3 +363,46 @@ int at91_get_pio_value(unsigned port, unsigned pin) >>> >>> return pdsr != 0; >>> } >>> + >>> +/* Common GPIO API */ >>> + >>> +#define at91_gpio_to_port(gpio) (gpio / 32) >>> +#define at91_gpio_to_pin(gpio) (gpio % 32) >>> + >>> +int gpio_request(unsigned gpio, const char *label) >>> +{ >>> + return 0; >>> +} >>> + >>> +int gpio_free(unsigned gpio) >>> +{ >>> + return 0; >>> +} >>> + >>> +int gpio_direction_input(unsigned gpio) >>> +{ >>> + at91_set_pio_input(at91_gpio_to_port(gpio), >>> + at91_gpio_to_pin(gpio), 0); >>> + return 0; >>> +} >>> + >>> +int gpio_direction_output(unsigned gpio, int value) >>> +{ >>> + at91_set_pio_output(at91_gpio_to_port(gpio), >>> + at91_gpio_to_pin(gpio), value); >>> + return 0; >>> +} >>> + >>> +int gpio_get_value(unsigned gpio) >>> +{ >>> + return (int) at91_get_pio_value(at91_gpio_to_port(gpio), >>> + at91_gpio_to_pin(gpio)); >> >> why cast to int here? > > Actually no need, as the at91_get_pio_value() return value is int. > I will remove the cast in next version.
I could change this also when applying. >>> +} >>> + >>> +int gpio_set_value(unsigned gpio, int value) >>> +{ >>> + at91_set_pio_value(at91_gpio_to_port(gpio), >>> + at91_gpio_to_pin(gpio), value); >>> + >>> + return 0; >>> +} >>> >> >> Great, I love this. But wasn't there some define for generic GPIO? > > I am not fully get your meaning, what you mean "define for generic > GPIO"? define gpio pin number (?) My fault, I thought there is some CONFIG_XXX for the 'generic GPIO API' (gpio_set_value/gpio_get_value/gpio_direction_input/...). It seems there is no such define, at91 gpio did just miss the time when this API was introduced. I'm fine if you just send a v2 of the 1/4 patch. I can remove the cast in here and will _not_ apply 2/4 cause it breaks boards. Best regards Andreas Bießmann _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot