forked from luck/tmp_suning_uos_patched
Blackfin arch: add BF54x missing GPIO access functions
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
parent
e3f2300036
commit
cefe658bca
@ -52,6 +52,7 @@ inline int check_gpio(unsigned short gpio)
|
|||||||
{
|
{
|
||||||
if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15 \
|
if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15 \
|
||||||
|| gpio == GPIO_PH14 || gpio == GPIO_PH15 \
|
|| gpio == GPIO_PH14 || gpio == GPIO_PH15 \
|
||||||
|
|| gpio == GPIO_PJ14 || gpio == GPIO_PJ15 \
|
||||||
|| gpio > MAX_BLACKFIN_GPIOS)
|
|| gpio > MAX_BLACKFIN_GPIOS)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
return 0;
|
return 0;
|
||||||
@ -173,3 +174,19 @@ void gpio_direction_output(unsigned short gpio)
|
|||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(gpio_direction_output);
|
EXPORT_SYMBOL(gpio_direction_output);
|
||||||
|
|
||||||
|
void gpio_set_value(unsigned short gpio, unsigned short arg)
|
||||||
|
{
|
||||||
|
if (arg)
|
||||||
|
gpio_array[gpio_bank(gpio)]->port_set = gpio_bit(gpio);
|
||||||
|
else
|
||||||
|
gpio_array[gpio_bank(gpio)]->port_clear = gpio_bit(gpio);
|
||||||
|
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(gpio_set_value);
|
||||||
|
|
||||||
|
unsigned short gpio_get_value(unsigned short gpio)
|
||||||
|
{
|
||||||
|
return (1 & (gpio_array[gpio_bank(gpio)]->port_data >> gpio_sub_n(gpio)));
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(gpio_get_value);
|
||||||
|
@ -234,6 +234,7 @@
|
|||||||
* MODIFICATION HISTORY :
|
* MODIFICATION HISTORY :
|
||||||
**************************************************************/
|
**************************************************************/
|
||||||
|
|
||||||
|
#ifndef BF548_FAMILY
|
||||||
void set_gpio_dir(unsigned short, unsigned short);
|
void set_gpio_dir(unsigned short, unsigned short);
|
||||||
void set_gpio_inen(unsigned short, unsigned short);
|
void set_gpio_inen(unsigned short, unsigned short);
|
||||||
void set_gpio_polar(unsigned short, unsigned short);
|
void set_gpio_polar(unsigned short, unsigned short);
|
||||||
@ -268,7 +269,6 @@ unsigned short get_gpiop_maska(unsigned short);
|
|||||||
unsigned short get_gpiop_maskb(unsigned short);
|
unsigned short get_gpiop_maskb(unsigned short);
|
||||||
unsigned short get_gpiop_data(unsigned short);
|
unsigned short get_gpiop_data(unsigned short);
|
||||||
|
|
||||||
#ifndef BF548_FAMILY
|
|
||||||
struct gpio_port_t {
|
struct gpio_port_t {
|
||||||
unsigned short data;
|
unsigned short data;
|
||||||
unsigned short dummy1;
|
unsigned short dummy1;
|
||||||
@ -363,8 +363,10 @@ void gpio_free(unsigned short);
|
|||||||
void gpio_set_value(unsigned short gpio, unsigned short arg);
|
void gpio_set_value(unsigned short gpio, unsigned short arg);
|
||||||
unsigned short gpio_get_value(unsigned short gpio);
|
unsigned short gpio_get_value(unsigned short gpio);
|
||||||
|
|
||||||
|
#ifndef BF548_FAMILY
|
||||||
#define gpio_get_value(gpio) get_gpio_data(gpio)
|
#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
|
||||||
|
|
||||||
void gpio_direction_input(unsigned short gpio);
|
void gpio_direction_input(unsigned short gpio);
|
||||||
void gpio_direction_output(unsigned short gpio);
|
void gpio_direction_output(unsigned short gpio);
|
||||||
|
@ -187,8 +187,8 @@
|
|||||||
#define GPIO_PJ11 155
|
#define GPIO_PJ11 155
|
||||||
#define GPIO_PJ12 156
|
#define GPIO_PJ12 156
|
||||||
#define GPIO_PJ13 157
|
#define GPIO_PJ13 157
|
||||||
#define GPIO_PJ14 158
|
#define GPIO_PJ14 158 /* N/A */
|
||||||
#define GPIO_PJ15 159
|
#define GPIO_PJ15 159 /* N/A */
|
||||||
|
|
||||||
#define MAX_BLACKFIN_GPIOS 160
|
#define MAX_BLACKFIN_GPIOS 160
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user