13 #include <linux/kernel.h>
15 #include <linux/module.h>
18 #include <asm/types.h>
22 #define STLS2F_N_GPIO 4
23 #define STLS2F_GPIO_IN_OFFSET 16
36 spin_lock(&gpio_lock);
38 spin_unlock(&gpio_lock);
40 return ((val & mask) != 0);
56 spin_lock(&gpio_lock);
63 spin_unlock(&gpio_lock);
76 static int ls2f_gpio_direction_input(
struct gpio_chip *
chip,
unsigned gpio)
84 spin_lock(&gpio_lock);
89 spin_unlock(&gpio_lock);
94 static int ls2f_gpio_direction_output(
struct gpio_chip *chip,
95 unsigned gpio,
int level)
104 spin_lock(&gpio_lock);
109 spin_unlock(&gpio_lock);
114 static int ls2f_gpio_get_value(
struct gpio_chip *chip,
unsigned gpio)
119 static void ls2f_gpio_set_value(
struct gpio_chip *chip,
120 unsigned gpio,
int value)
125 static struct gpio_chip ls2f_chip = {
127 .direction_input = ls2f_gpio_direction_input,
128 .get = ls2f_gpio_get_value,
129 .direction_output = ls2f_gpio_direction_output,
130 .set = ls2f_gpio_set_value,
135 static int __init ls2f_gpio_setup(
void)