Lines Matching +full:gpio +full:- +full:dir

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Coldfire generic GPIO support.
12 #include <linux/gpio/driver.h>
19 int __mcfgpio_get_value(unsigned gpio) in __mcfgpio_get_value() argument
21 return mcfgpio_read(__mcfgpio_ppdr(gpio)) & mcfgpio_bit(gpio); in __mcfgpio_get_value()
25 void __mcfgpio_set_value(unsigned gpio, int value) in __mcfgpio_set_value() argument
27 if (gpio < MCFGPIO_SCR_START) { in __mcfgpio_set_value()
32 data = mcfgpio_read(__mcfgpio_podr(gpio)); in __mcfgpio_set_value()
34 data |= mcfgpio_bit(gpio); in __mcfgpio_set_value()
36 data &= ~mcfgpio_bit(gpio); in __mcfgpio_set_value()
37 mcfgpio_write(data, __mcfgpio_podr(gpio)); in __mcfgpio_set_value()
41 mcfgpio_write(mcfgpio_bit(gpio), in __mcfgpio_set_value()
42 MCFGPIO_SETR_PORT(gpio)); in __mcfgpio_set_value()
44 mcfgpio_write(~mcfgpio_bit(gpio), in __mcfgpio_set_value()
45 MCFGPIO_CLRR_PORT(gpio)); in __mcfgpio_set_value()
50 int __mcfgpio_direction_input(unsigned gpio) in __mcfgpio_direction_input() argument
53 MCFGPIO_PORTTYPE dir; in __mcfgpio_direction_input() local
56 dir = mcfgpio_read(__mcfgpio_pddr(gpio)); in __mcfgpio_direction_input()
57 dir &= ~mcfgpio_bit(gpio); in __mcfgpio_direction_input()
58 mcfgpio_write(dir, __mcfgpio_pddr(gpio)); in __mcfgpio_direction_input()
65 int __mcfgpio_direction_output(unsigned gpio, int value) in __mcfgpio_direction_output() argument
71 data = mcfgpio_read(__mcfgpio_pddr(gpio)); in __mcfgpio_direction_output()
72 data |= mcfgpio_bit(gpio); in __mcfgpio_direction_output()
73 mcfgpio_write(data, __mcfgpio_pddr(gpio)); in __mcfgpio_direction_output()
76 if (gpio < MCFGPIO_SCR_START) { in __mcfgpio_direction_output()
77 data = mcfgpio_read(__mcfgpio_podr(gpio)); in __mcfgpio_direction_output()
79 data |= mcfgpio_bit(gpio); in __mcfgpio_direction_output()
81 data &= ~mcfgpio_bit(gpio); in __mcfgpio_direction_output()
82 mcfgpio_write(data, __mcfgpio_podr(gpio)); in __mcfgpio_direction_output()
85 mcfgpio_write(mcfgpio_bit(gpio), in __mcfgpio_direction_output()
86 MCFGPIO_SETR_PORT(gpio)); in __mcfgpio_direction_output()
88 mcfgpio_write(~mcfgpio_bit(gpio), in __mcfgpio_direction_output()
89 MCFGPIO_CLRR_PORT(gpio)); in __mcfgpio_direction_output()
96 int __mcfgpio_request(unsigned gpio) in __mcfgpio_request() argument
102 void __mcfgpio_free(unsigned gpio) in __mcfgpio_free() argument
104 __mcfgpio_direction_input(gpio); in __mcfgpio_free()
151 return -EINVAL; in mcfgpio_to_irq()