Commit ffb7fc0f authored by Sonic Zhang's avatar Sonic Zhang Committed by Linus Walleij

blackfin: gpio: Remove none gpio lib code.

- Remove non gpio lib code from blackfin architecture.
- Limit the lagecy blackfin gpio driver to bf5xx processors only.
- Remove unused definition of the pint power functions.
Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent e9a03add
...@@ -52,6 +52,9 @@ config GENERIC_BUG ...@@ -52,6 +52,9 @@ config GENERIC_BUG
config ZONE_DMA config ZONE_DMA
def_bool y def_bool y
config GENERIC_GPIO
def_bool y
config FORCE_MAX_ZONEORDER config FORCE_MAX_ZONEORDER
int int
default "14" default "14"
...@@ -317,6 +320,10 @@ config BF53x ...@@ -317,6 +320,10 @@ config BF53x
depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537) depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
default y default y
config GPIO_ADI
def_bool y
depends on (BF51x || BF52x || BF53x || BF538 || BF539 || BF561)
config MEM_MT48LC64M4A2FB_7E config MEM_MT48LC64M4A2FB_7E
bool bool
depends on (BFIN533_STAMP) depends on (BFIN533_STAMP)
......
...@@ -25,8 +25,12 @@ ...@@ -25,8 +25,12 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#ifndef CONFIG_PINCTRL
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/gpio.h> #include <asm/blackfin.h>
#include <asm/portmux.h>
#include <asm/irq_handler.h>
/*********************************************************** /***********************************************************
* *
...@@ -45,7 +49,6 @@ ...@@ -45,7 +49,6 @@
* MODIFICATION HISTORY : * MODIFICATION HISTORY :
**************************************************************/ **************************************************************/
#if !BFIN_GPIO_PINT
void set_gpio_dir(unsigned, unsigned short); void set_gpio_dir(unsigned, unsigned short);
void set_gpio_inen(unsigned, unsigned short); void set_gpio_inen(unsigned, unsigned short);
void set_gpio_polar(unsigned, unsigned short); void set_gpio_polar(unsigned, unsigned short);
...@@ -115,7 +118,6 @@ struct gpio_port_t { ...@@ -115,7 +118,6 @@ struct gpio_port_t {
unsigned short dummy16; unsigned short dummy16;
unsigned short inen; unsigned short inen;
}; };
#endif
#ifdef BFIN_SPECIAL_GPIO_BANKS #ifdef BFIN_SPECIAL_GPIO_BANKS
void bfin_special_gpio_free(unsigned gpio); void bfin_special_gpio_free(unsigned gpio);
...@@ -127,25 +129,21 @@ void bfin_special_gpio_pm_hibernate_suspend(void); ...@@ -127,25 +129,21 @@ void bfin_special_gpio_pm_hibernate_suspend(void);
#endif #endif
#ifdef CONFIG_PM #ifdef CONFIG_PM
int bfin_pm_standby_ctrl(unsigned ctrl); void bfin_gpio_pm_hibernate_restore(void);
void bfin_gpio_pm_hibernate_suspend(void);
int bfin_gpio_pm_wakeup_ctrl(unsigned gpio, unsigned ctrl);
int bfin_gpio_pm_standby_ctrl(unsigned ctrl);
static inline int bfin_pm_standby_setup(void) static inline int bfin_pm_standby_setup(void)
{ {
return bfin_pm_standby_ctrl(1); return bfin_gpio_pm_standby_ctrl(1);
} }
static inline void bfin_pm_standby_restore(void) static inline void bfin_pm_standby_restore(void)
{ {
bfin_pm_standby_ctrl(0); bfin_gpio_pm_standby_ctrl(0);
} }
void bfin_gpio_pm_hibernate_restore(void);
void bfin_gpio_pm_hibernate_suspend(void);
void bfin_pint_suspend(void);
void bfin_pint_resume(void);
# if !BFIN_GPIO_PINT
int gpio_pm_wakeup_ctrl(unsigned gpio, unsigned ctrl);
struct gpio_port_s { struct gpio_port_s {
unsigned short data; unsigned short data;
...@@ -161,7 +159,6 @@ struct gpio_port_s { ...@@ -161,7 +159,6 @@ struct gpio_port_s {
unsigned short reserved; unsigned short reserved;
unsigned short mux; unsigned short mux;
}; };
# endif
#endif /*CONFIG_PM*/ #endif /*CONFIG_PM*/
/*********************************************************** /***********************************************************
...@@ -178,35 +175,28 @@ struct gpio_port_s { ...@@ -178,35 +175,28 @@ struct gpio_port_s {
************************************************************* *************************************************************
* MODIFICATION HISTORY : * MODIFICATION HISTORY :
**************************************************************/ **************************************************************/
int bfin_gpio_request(unsigned gpio, const char *label);
void bfin_gpio_free(unsigned gpio);
int bfin_gpio_irq_request(unsigned gpio, const char *label); int bfin_gpio_irq_request(unsigned gpio, const char *label);
void bfin_gpio_irq_free(unsigned gpio); void bfin_gpio_irq_free(unsigned gpio);
int bfin_gpio_direction_input(unsigned gpio); void bfin_gpio_irq_prepare(unsigned gpio);
int bfin_gpio_direction_output(unsigned gpio, int value);
int bfin_gpio_get_value(unsigned gpio); static inline int irq_to_gpio(unsigned irq)
void bfin_gpio_set_value(unsigned gpio, int value); {
return irq - GPIO_IRQ_BASE;
}
#endif /* CONFIG_PINCTRL */
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/errno.h> #include <asm/errno.h>
#ifdef CONFIG_GPIOLIB
#include <asm-generic/gpio.h> /* cansleep wrappers */ #include <asm-generic/gpio.h> /* cansleep wrappers */
static inline int gpio_get_value(unsigned int gpio) static inline int gpio_get_value(unsigned int gpio)
{ {
if (gpio < MAX_BLACKFIN_GPIOS)
return bfin_gpio_get_value(gpio);
else
return __gpio_get_value(gpio); return __gpio_get_value(gpio);
} }
static inline void gpio_set_value(unsigned int gpio, int value) static inline void gpio_set_value(unsigned int gpio, int value)
{ {
if (gpio < MAX_BLACKFIN_GPIOS)
bfin_gpio_set_value(gpio, value);
else
__gpio_set_value(gpio, value); __gpio_set_value(gpio, value);
} }
...@@ -219,113 +209,6 @@ static inline int gpio_to_irq(unsigned gpio) ...@@ -219,113 +209,6 @@ static inline int gpio_to_irq(unsigned gpio)
{ {
return __gpio_to_irq(gpio); return __gpio_to_irq(gpio);
} }
#else /* !CONFIG_GPIOLIB */
static inline int gpio_request(unsigned gpio, const char *label)
{
return bfin_gpio_request(gpio, label);
}
static inline void gpio_free(unsigned gpio)
{
return bfin_gpio_free(gpio);
}
static inline int gpio_direction_input(unsigned gpio)
{
return bfin_gpio_direction_input(gpio);
}
static inline int gpio_direction_output(unsigned gpio, int value)
{
return bfin_gpio_direction_output(gpio, value);
}
static inline int gpio_set_debounce(unsigned gpio, unsigned debounce)
{
return -EINVAL;
}
static inline int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
{
int err;
err = bfin_gpio_request(gpio, label);
if (err)
return err;
if (flags & GPIOF_DIR_IN)
err = bfin_gpio_direction_input(gpio);
else
err = bfin_gpio_direction_output(gpio,
(flags & GPIOF_INIT_HIGH) ? 1 : 0);
if (err)
bfin_gpio_free(gpio);
return err;
}
static inline int gpio_request_array(const struct gpio *array, size_t num)
{
int i, err;
for (i = 0; i < num; i++, array++) {
err = gpio_request_one(array->gpio, array->flags, array->label);
if (err)
goto err_free;
}
return 0;
err_free:
while (i--)
bfin_gpio_free((--array)->gpio);
return err;
}
static inline void gpio_free_array(const struct gpio *array, size_t num)
{
while (num--)
bfin_gpio_free((array++)->gpio);
}
static inline int __gpio_get_value(unsigned gpio)
{
return bfin_gpio_get_value(gpio);
}
static inline void __gpio_set_value(unsigned gpio, int value)
{
return bfin_gpio_set_value(gpio, value);
}
static inline int gpio_get_value(unsigned gpio)
{
return __gpio_get_value(gpio);
}
static inline void gpio_set_value(unsigned gpio, int value)
{
return __gpio_set_value(gpio, value);
}
static inline int gpio_to_irq(unsigned gpio)
{
if (likely(gpio < MAX_BLACKFIN_GPIOS))
return gpio + GPIO_IRQ_BASE;
return -EINVAL;
}
#include <asm-generic/gpio.h> /* cansleep wrappers */
#endif /* !CONFIG_GPIOLIB */
static inline int irq_to_gpio(unsigned irq)
{
return (irq - GPIO_IRQ_BASE);
}
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __ARCH_BLACKFIN_GPIO_H__ */ #endif /* __ARCH_BLACKFIN_GPIO_H__ */
...@@ -7,7 +7,7 @@ extra-y := vmlinux.lds ...@@ -7,7 +7,7 @@ extra-y := vmlinux.lds
obj-y := \ obj-y := \
entry.o process.o bfin_ksyms.o ptrace.o setup.o signal.o \ entry.o process.o bfin_ksyms.o ptrace.o setup.o signal.o \
sys_bfin.o traps.o irqchip.o dma-mapping.o flat.o \ sys_bfin.o traps.o irqchip.o dma-mapping.o flat.o \
fixed_code.o reboot.o bfin_gpio.o bfin_dma.o \ fixed_code.o reboot.o bfin_dma.o \
exception.o dumpstack.o exception.o dumpstack.o
ifeq ($(CONFIG_GENERIC_CLOCKEVENTS),y) ifeq ($(CONFIG_GENERIC_CLOCKEVENTS),y)
...@@ -16,6 +16,7 @@ else ...@@ -16,6 +16,7 @@ else
obj-y += time.o obj-y += time.o
endif endif
obj-$(CONFIG_GPIO_ADI) += bfin_gpio.o
obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
obj-$(CONFIG_FUNCTION_TRACER) += ftrace-entry.o obj-$(CONFIG_FUNCTION_TRACER) += ftrace-entry.o
obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment