Lines Matching full:pin

25 void __set_direction(unsigned pin, int input)  in __set_direction()  argument
29 u = readl(GPIO_IO_CONF(pin)); in __set_direction()
31 u |= 1 << (pin & 31); in __set_direction()
33 u &= ~(1 << (pin & 31)); in __set_direction()
34 writel(u, GPIO_IO_CONF(pin)); in __set_direction()
36 u = readl(GPIO_IO_CONF(pin)); in __set_direction()
39 static void __set_level(unsigned pin, int high) in __set_level() argument
43 u = readl(GPIO_OUT(pin)); in __set_level()
45 u |= 1 << (pin & 31); in __set_level()
47 u &= ~(1 << (pin & 31)); in __set_level()
48 writel(u, GPIO_OUT(pin)); in __set_level()
51 static void __set_blinking(unsigned pin, int blink) in __set_blinking() argument
55 u = readl(GPIO_BLINK_EN(pin)); in __set_blinking()
57 u |= 1 << (pin & 31); in __set_blinking()
59 u &= ~(1 << (pin & 31)); in __set_blinking()
60 writel(u, GPIO_BLINK_EN(pin)); in __set_blinking()
63 int kw_gpio_is_valid(unsigned pin, int mode) in kw_gpio_is_valid() argument
65 if (pin < GPIO_MAX) { in kw_gpio_is_valid()
66 if ((mode & GPIO_INPUT_OK) && !test_bit(pin, gpio_valid_input)) in kw_gpio_is_valid()
69 if ((mode & GPIO_OUTPUT_OK) && !test_bit(pin, gpio_valid_output)) in kw_gpio_is_valid()
75 printf("%s: invalid GPIO %d\n", __func__, pin); in kw_gpio_is_valid()
79 void kw_gpio_set_valid(unsigned pin, int mode) in kw_gpio_set_valid() argument
84 __set_bit(pin, gpio_valid_input); in kw_gpio_set_valid()
86 __clear_bit(pin, gpio_valid_input); in kw_gpio_set_valid()
88 __set_bit(pin, gpio_valid_output); in kw_gpio_set_valid()
90 __clear_bit(pin, gpio_valid_output); in kw_gpio_set_valid()
95 int kw_gpio_direction_input(unsigned pin) in kw_gpio_direction_input() argument
97 if (kw_gpio_is_valid(pin, GPIO_INPUT_OK) != 0) in kw_gpio_direction_input()
101 __set_direction(pin, 1); in kw_gpio_direction_input()
106 int kw_gpio_direction_output(unsigned pin, int value) in kw_gpio_direction_output() argument
108 if (kw_gpio_is_valid(pin, GPIO_OUTPUT_OK) != 0) in kw_gpio_direction_output()
110 printf("%s: invalid GPIO %d\n", __func__, pin); in kw_gpio_direction_output()
114 __set_blinking(pin, 0); in kw_gpio_direction_output()
117 __set_level(pin, value); in kw_gpio_direction_output()
120 __set_direction(pin, 0); in kw_gpio_direction_output()
125 int kw_gpio_get_value(unsigned pin) in kw_gpio_get_value() argument
129 if (readl(GPIO_IO_CONF(pin)) & (1 << (pin & 31))) in kw_gpio_get_value()
130 val = readl(GPIO_DATA_IN(pin)) ^ readl(GPIO_IN_POL(pin)); in kw_gpio_get_value()
132 val = readl(GPIO_OUT(pin)); in kw_gpio_get_value()
134 return (val >> (pin & 31)) & 1; in kw_gpio_get_value()
137 void kw_gpio_set_value(unsigned pin, int value) in kw_gpio_set_value() argument
140 __set_level(pin, value); in kw_gpio_set_value()
143 void kw_gpio_set_blink(unsigned pin, int blink) in kw_gpio_set_blink() argument
146 __set_level(pin, 0); in kw_gpio_set_blink()
149 __set_blinking(pin, blink); in kw_gpio_set_blink()