Blackfin arch: Add workaround to read edge triggered GPIOs
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
This commit is contained in:
parent
92322da9b5
commit
803a8d2acb
|
@ -1130,6 +1130,25 @@ void bfin_gpio_irq_prepare(unsigned gpio)
|
||||||
|
|
||||||
#else
|
#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)
|
int gpio_direction_input(unsigned gpio)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
|
@ -437,7 +437,6 @@ void gpio_set_value(unsigned gpio, int arg);
|
||||||
int gpio_get_value(unsigned gpio);
|
int gpio_get_value(unsigned gpio);
|
||||||
|
|
||||||
#ifndef BF548_FAMILY
|
#ifndef BF548_FAMILY
|
||||||
#define gpio_get_value(gpio) get_gpio_data(gpio)
|
|
||||||
#define gpio_set_value(gpio, value) set_gpio_data(gpio, value)
|
#define gpio_set_value(gpio, value) set_gpio_data(gpio, value)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue