Lines Matching refs:gpio
44 static inline int get_gpio_index(int gpio) in get_gpio_index() argument
46 return gpio & 0x1f; in get_gpio_index()
49 int gpio_is_valid(int gpio) in gpio_is_valid() argument
51 return (gpio >= 0) && (gpio < OMAP_MAX_GPIO); in gpio_is_valid()
54 static void _set_gpio_direction(const struct gpio_bank *bank, int gpio, in _set_gpio_direction() argument
64 l |= 1 << gpio; in _set_gpio_direction()
66 l &= ~(1 << gpio); in _set_gpio_direction()
74 static int _get_gpio_direction(const struct gpio_bank *bank, int gpio) in _get_gpio_direction() argument
83 if (v & (1 << gpio)) in _get_gpio_direction()
89 static void _set_gpio_dataout(const struct gpio_bank *bank, int gpio, in _set_gpio_dataout() argument
100 l = 1 << gpio; in _set_gpio_dataout()
104 static int _get_gpio_value(const struct gpio_bank *bank, int gpio) in _get_gpio_value() argument
109 input = _get_gpio_direction(bank, gpio); in _get_gpio_value()
121 return (__raw_readl(reg) & (1 << gpio)) != 0; in _get_gpio_value()
126 static inline const struct gpio_bank *get_gpio_bank(int gpio) in get_gpio_bank() argument
128 return &omap_gpio_bank[gpio >> 5]; in get_gpio_bank()
131 static int check_gpio(int gpio) in check_gpio() argument
133 if (!gpio_is_valid(gpio)) { in check_gpio()
134 printf("ERROR : check_gpio: invalid GPIO %d\n", gpio); in check_gpio()
143 int gpio_set_value(unsigned gpio, int value) in gpio_set_value() argument
147 if (check_gpio(gpio) < 0) in gpio_set_value()
149 bank = get_gpio_bank(gpio); in gpio_set_value()
150 _set_gpio_dataout(bank, get_gpio_index(gpio), value); in gpio_set_value()
158 int gpio_get_value(unsigned gpio) in gpio_get_value() argument
162 if (check_gpio(gpio) < 0) in gpio_get_value()
164 bank = get_gpio_bank(gpio); in gpio_get_value()
166 return _get_gpio_value(bank, get_gpio_index(gpio)); in gpio_get_value()
172 int gpio_direction_input(unsigned gpio) in gpio_direction_input() argument
176 if (check_gpio(gpio) < 0) in gpio_direction_input()
179 bank = get_gpio_bank(gpio); in gpio_direction_input()
180 _set_gpio_direction(bank, get_gpio_index(gpio), 1); in gpio_direction_input()
188 int gpio_direction_output(unsigned gpio, int value) in gpio_direction_output() argument
192 if (check_gpio(gpio) < 0) in gpio_direction_output()
195 bank = get_gpio_bank(gpio); in gpio_direction_output()
196 _set_gpio_dataout(bank, get_gpio_index(gpio), value); in gpio_direction_output()
197 _set_gpio_direction(bank, get_gpio_index(gpio), 0); in gpio_direction_output()
207 int gpio_request(unsigned gpio, const char *label) in gpio_request() argument
209 if (check_gpio(gpio) < 0) in gpio_request()
218 int gpio_free(unsigned gpio) in gpio_free() argument