Lines Matching defs:pin
97 __set_direction(struct orion_gpio_chip *ochip, unsigned pin, int input)
103 u |= 1 << pin;
105 u &= ~(1 << pin);
109 static void __set_level(struct orion_gpio_chip *ochip, unsigned pin, int high)
115 u |= 1 << pin;
117 u &= ~(1 << pin);
122 __set_blinking(struct orion_gpio_chip *ochip, unsigned pin, int blink)
128 u |= 1 << pin;
130 u &= ~(1 << pin);
135 orion_gpio_is_valid(struct orion_gpio_chip *ochip, unsigned pin, int mode)
137 if (pin >= ochip->chip.ngpio)
140 if ((mode & GPIO_INPUT_OK) && !test_bit(pin, &ochip->valid_input))
143 if ((mode & GPIO_OUTPUT_OK) && !test_bit(pin, &ochip->valid_output))
149 pr_debug("%s: invalid GPIO %d\n", __func__, pin);
156 static int orion_gpio_request(struct gpio_chip *chip, unsigned pin)
160 if (orion_gpio_is_valid(ochip, pin, GPIO_INPUT_OK) ||
161 orion_gpio_is_valid(ochip, pin, GPIO_OUTPUT_OK))
167 static int orion_gpio_direction_input(struct gpio_chip *chip, unsigned pin)
172 if (!orion_gpio_is_valid(ochip, pin, GPIO_INPUT_OK))
176 __set_direction(ochip, pin, 1);
182 static int orion_gpio_get(struct gpio_chip *chip, unsigned pin)
187 if (readl(GPIO_IO_CONF(ochip)) & (1 << pin)) {
193 return (val >> pin) & 1;
197 orion_gpio_direction_output(struct gpio_chip *chip, unsigned pin, int value)
202 if (!orion_gpio_is_valid(ochip, pin, GPIO_OUTPUT_OK))
206 __set_blinking(ochip, pin, 0);
207 __set_level(ochip, pin, value);
208 __set_direction(ochip, pin, 0);
214 static int orion_gpio_set(struct gpio_chip *chip, unsigned int pin, int value)
220 __set_level(ochip, pin, value);
226 static int orion_gpio_to_irq(struct gpio_chip *chip, unsigned pin)
231 ochip->secondary_irq_base + pin);
237 static struct orion_gpio_chip *orion_gpio_chip_find(int pin)
245 if (pin >= chip->base && pin < chip->base + chip->ngpio)
252 void __init orion_gpio_set_unused(unsigned pin)
254 struct orion_gpio_chip *ochip = orion_gpio_chip_find(pin);
259 pin -= ochip->chip.base;
262 __set_level(ochip, pin, 0);
263 __set_direction(ochip, pin, 0);
266 void __init orion_gpio_set_valid(unsigned pin, int mode)
268 struct orion_gpio_chip *ochip = orion_gpio_chip_find(pin);
273 pin -= ochip->chip.base;
279 __set_bit(pin, &ochip->valid_input);
281 __clear_bit(pin, &ochip->valid_input);
284 __set_bit(pin, &ochip->valid_output);
286 __clear_bit(pin, &ochip->valid_output);
289 void orion_gpio_set_blink(unsigned pin, int blink)
291 struct orion_gpio_chip *ochip = orion_gpio_chip_find(pin);
298 __set_level(ochip, pin & 31, 0);
299 __set_blinking(ochip, pin & 31, blink);
359 int pin;
362 pin = d->hwirq - ochip->secondary_irq_base;
364 u = readl(GPIO_IO_CONF(ochip)) & (1 << pin);
383 u &= ~(1 << pin);
387 u |= 1 << pin;
398 if (v & (1 << pin))
399 u |= 1 << pin; /* falling */
401 u &= ~(1 << pin); /* rising */