Skip to content

Commit

Permalink
Blackfin arch: Add workaround to read edge triggered GPIOs
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
  • Loading branch information
Michael Hennerich authored and Bryan Wu committed May 17, 2008
1 parent 92322da commit 803a8d2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
19 changes: 19 additions & 0 deletions arch/blackfin/kernel/bfin_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1130,6 +1130,25 @@ void bfin_gpio_irq_prepare(unsigned gpio)

#else

int gpio_get_value(unsigned gpio)
{
unsigned long flags;
int ret;

if (unlikely(get_gpio_edge(gpio))) {
local_irq_save(flags);
set_gpio_edge(gpio, 0);
ret = get_gpio_data(gpio);
set_gpio_edge(gpio, 1);
local_irq_restore(flags);

return ret;
} else
return get_gpio_data(gpio);
}
EXPORT_SYMBOL(gpio_get_value);


int gpio_direction_input(unsigned gpio)
{
unsigned long flags;
Expand Down
1 change: 0 additions & 1 deletion include/asm-blackfin/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,6 @@ void gpio_set_value(unsigned gpio, int arg);
int gpio_get_value(unsigned gpio);

#ifndef BF548_FAMILY
#define gpio_get_value(gpio) get_gpio_data(gpio)
#define gpio_set_value(gpio, value) set_gpio_data(gpio, value)
#endif

Expand Down

0 comments on commit 803a8d2

Please sign in to comment.