Lines Matching refs:gpio

22 static void gpio_error(unsigned gpio)  in gpio_error()  argument
24 printf("adi_gpio2: GPIO %d wasn't requested!\n", gpio); in gpio_error()
58 static DECLARE_RESERVED_MAP(gpio, GPIO_BANK_NUM);
61 inline int check_gpio(unsigned gpio) in check_gpio() argument
64 if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15 || in check_gpio()
65 gpio == GPIO_PH14 || gpio == GPIO_PH15 || in check_gpio()
66 gpio == GPIO_PJ14 || gpio == GPIO_PJ15) in check_gpio()
69 if (gpio >= MAX_GPIOS) in check_gpio()
74 static void port_setup(unsigned gpio, unsigned short usage) in port_setup() argument
78 gpio_array[gpio_bank(gpio)]->port_fer &= ~gpio_bit(gpio); in port_setup()
80 gpio_array[gpio_bank(gpio)]->port_fer |= gpio_bit(gpio); in port_setup()
83 gpio_array[gpio_bank(gpio)]->port_fer_clear = gpio_bit(gpio); in port_setup()
85 gpio_array[gpio_bank(gpio)]->port_fer_set = gpio_bit(gpio); in port_setup()
113 unsigned short get_gpio_dir(unsigned gpio) in get_gpio_dir() argument
116 (gpio_array[gpio_bank(gpio)]->dir_clear >> gpio_sub_n(gpio)); in get_gpio_dir()
150 if (unlikely(!check_gpio(ident) && is_reserved(gpio, ident, 1))) { in peripheral_request()
248 int gpio_request(unsigned gpio, const char *label) in gpio_request() argument
250 if (check_gpio(gpio) < 0) in gpio_request()
259 if (cmp_label(gpio, label) == 0) in gpio_request()
262 if (unlikely(is_reserved(gpio, gpio, 1))) { in gpio_request()
264 gpio, get_label(gpio)); in gpio_request()
267 if (unlikely(is_reserved(peri, gpio, 1))) { in gpio_request()
269 "by %s!\n", gpio, get_label(gpio)); in gpio_request()
273 reserve(gpio, gpio); in gpio_request()
274 set_label(gpio, label); in gpio_request()
276 port_setup(gpio, GPIO_USAGE); in gpio_request()
281 int gpio_free(unsigned gpio) in gpio_free() argument
283 if (check_gpio(gpio) < 0) in gpio_free()
286 if (unlikely(!is_reserved(gpio, gpio, 0))) { in gpio_free()
287 gpio_error(gpio); in gpio_free()
291 unreserve(gpio, gpio); in gpio_free()
293 set_label(gpio, "free"); in gpio_free()
301 int special_gpio_request(unsigned gpio, const char *label) in special_gpio_request() argument
309 if (cmp_label(gpio, label) == 0) in special_gpio_request()
312 if (unlikely(is_reserved(special_gpio, gpio, 1))) { in special_gpio_request()
314 gpio, get_label(gpio)); in special_gpio_request()
317 if (unlikely(is_reserved(peri, gpio, 1))) { in special_gpio_request()
319 "by %s!\n", gpio, get_label(gpio)); in special_gpio_request()
324 reserve(special_gpio, gpio); in special_gpio_request()
325 reserve(peri, gpio); in special_gpio_request()
327 set_label(gpio, label); in special_gpio_request()
328 port_setup(gpio, GPIO_USAGE); in special_gpio_request()
333 void special_gpio_free(unsigned gpio) in special_gpio_free() argument
335 if (unlikely(!is_reserved(special_gpio, gpio, 0))) { in special_gpio_free()
336 gpio_error(gpio); in special_gpio_free()
340 unreserve(special_gpio, gpio); in special_gpio_free()
341 unreserve(peri, gpio); in special_gpio_free()
342 set_label(gpio, "free"); in special_gpio_free()
346 static inline void __gpio_direction_input(unsigned gpio) in __gpio_direction_input() argument
348 gpio_array[gpio_bank(gpio)]->dir_clear = gpio_bit(gpio); in __gpio_direction_input()
350 gpio_array[gpio_bank(gpio)]->inen |= gpio_bit(gpio); in __gpio_direction_input()
352 gpio_array[gpio_bank(gpio)]->inen_set = gpio_bit(gpio); in __gpio_direction_input()
356 int gpio_direction_input(unsigned gpio) in gpio_direction_input() argument
360 if (!is_reserved(gpio, gpio, 0)) { in gpio_direction_input()
361 gpio_error(gpio); in gpio_direction_input()
366 __gpio_direction_input(gpio); in gpio_direction_input()
372 int gpio_set_value(unsigned gpio, int arg) in gpio_set_value() argument
375 gpio_array[gpio_bank(gpio)]->data_set = gpio_bit(gpio); in gpio_set_value()
377 gpio_array[gpio_bank(gpio)]->data_clear = gpio_bit(gpio); in gpio_set_value()
382 int gpio_direction_output(unsigned gpio, int value) in gpio_direction_output() argument
386 if (!is_reserved(gpio, gpio, 0)) { in gpio_direction_output()
387 gpio_error(gpio); in gpio_direction_output()
394 gpio_array[gpio_bank(gpio)]->inen &= ~gpio_bit(gpio); in gpio_direction_output()
396 gpio_array[gpio_bank(gpio)]->inen_clear = gpio_bit(gpio); in gpio_direction_output()
398 gpio_set_value(gpio, value); in gpio_direction_output()
399 gpio_array[gpio_bank(gpio)]->dir_set = gpio_bit(gpio); in gpio_direction_output()
406 int gpio_get_value(unsigned gpio) in gpio_get_value() argument
408 return 1 & (gpio_array[gpio_bank(gpio)]->data >> gpio_sub_n(gpio)); in gpio_get_value()
413 int c, gpio; in gpio_labels() local
416 gpio = is_reserved(gpio, c, 1); in gpio_labels()
417 if (!check_gpio(c) && gpio) in gpio_labels()