diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2018-04-13 11:28:21 +0300 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2018-05-16 15:35:24 +0300 |
commit | f105edf70011859b33c3309f9c5ea96395cb616c (patch) | |
tree | c4b8ddd526287f138ca1ba6c9b5b4ff361c6a26c /drivers/gpio/gpio-loongson.c | |
parent | a411e81e61df24023f40255145d8f023402002c9 (diff) | |
download | linux-f105edf70011859b33c3309f9c5ea96395cb616c.tar.xz |
gpio: loongson: Use right include
The driver includes <linux/gpio.h> which is wrong, rely on
<linux/gpio/driver.h> and remove to call to gpio_set_value() in
favor of calling the internal function. Move functions around to
avoid forward declarations.
Cc: Keguang Zhang <keguang.zhang@gmail.com>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
Cc: Huacai Chen <chenhc@lemote.com>
Cc: linux-mips@linux-mips.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-loongson.c')
-rw-r--r-- | drivers/gpio/gpio-loongson.c | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/drivers/gpio/gpio-loongson.c b/drivers/gpio/gpio-loongson.c index 92c4fe7b2677..973d82a29442 100644 --- a/drivers/gpio/gpio-loongson.c +++ b/drivers/gpio/gpio-loongson.c @@ -17,9 +17,9 @@ #include <linux/module.h> #include <linux/spinlock.h> #include <linux/err.h> +#include <linux/gpio/driver.h> #include <asm/types.h> #include <loongson.h> -#include <linux/gpio.h> #define STLS2F_N_GPIO 4 #define STLS3A_N_GPIO 16 @@ -34,38 +34,6 @@ static DEFINE_SPINLOCK(gpio_lock); -static int loongson_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) -{ - u32 temp; - u32 mask; - - spin_lock(&gpio_lock); - mask = 1 << gpio; - temp = LOONGSON_GPIOIE; - temp |= mask; - LOONGSON_GPIOIE = temp; - spin_unlock(&gpio_lock); - - return 0; -} - -static int loongson_gpio_direction_output(struct gpio_chip *chip, - unsigned gpio, int level) -{ - u32 temp; - u32 mask; - - gpio_set_value(gpio, level); - spin_lock(&gpio_lock); - mask = 1 << gpio; - temp = LOONGSON_GPIOIE; - temp &= (~mask); - LOONGSON_GPIOIE = temp; - spin_unlock(&gpio_lock); - - return 0; -} - static int loongson_gpio_get_value(struct gpio_chip *chip, unsigned gpio) { u32 val; @@ -97,6 +65,38 @@ static void loongson_gpio_set_value(struct gpio_chip *chip, spin_unlock(&gpio_lock); } +static int loongson_gpio_direction_input(struct gpio_chip *chip, unsigned gpio) +{ + u32 temp; + u32 mask; + + spin_lock(&gpio_lock); + mask = 1 << gpio; + temp = LOONGSON_GPIOIE; + temp |= mask; + LOONGSON_GPIOIE = temp; + spin_unlock(&gpio_lock); + + return 0; +} + +static int loongson_gpio_direction_output(struct gpio_chip *chip, + unsigned gpio, int level) +{ + u32 temp; + u32 mask; + + loongson_gpio_set_value(chip, gpio, level); + spin_lock(&gpio_lock); + mask = 1 << gpio; + temp = LOONGSON_GPIOIE; + temp &= (~mask); + LOONGSON_GPIOIE = temp; + spin_unlock(&gpio_lock); + + return 0; +} + static struct gpio_chip loongson_chip = { .label = "Loongson-gpio-chip", .direction_input = loongson_gpio_direction_input, |