From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bo Shen Date: Thu, 22 Aug 2013 11:21:23 +0800 Subject: [U-Boot] [PATCH 3/4] gpio: atmel: add gpio common API support In-Reply-To: <5214D951.5030101@gmail.com> References: <1376375912-13835-1-git-send-email-voice.shen@atmel.com> <1376375912-13835-4-git-send-email-voice.shen@atmel.com> <5214D951.5030101@gmail.com> Message-ID: <521583B3.7070404@atmel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 >> --- >> 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. >> +} >> + >> +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 (?) > Shouldn't we encapsulate this API into this other define? You mean, not in this file or anything else? > Best regards > > Andreas Bie?mann > Best Regards, Bo Shen