Lines Matching refs:pin

73 	int pin;
108 struct gpio_pin *pin, uint32_t flags);
109 static int avila_gpio_pin_flags(struct avila_gpio_softc *sc, uint32_t pin);
123 static int avila_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps);
124 static int avila_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t
126 static int avila_gpio_pin_getname(device_t dev, uint32_t pin, char *name);
127 static int avila_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags);
128 static int avila_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value);
129 static int avila_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val);
130 static int avila_gpio_pin_toggle(device_t dev, uint32_t pin);
133 avila_gpio_pin_flags(struct avila_gpio_softc *sc, uint32_t pin)
137 v = GPIO_CONF_READ_4(sc, IXP425_GPIO_GPINR) & (1 << pin);
143 avila_gpio_pin_configure(struct avila_gpio_softc *sc, struct gpio_pin *pin,
148 mask = 1 << pin->gp_pin;
155 pin->gp_flags &= ~(GPIO_PIN_INPUT|GPIO_PIN_OUTPUT);
157 pin->gp_flags |= GPIO_PIN_OUTPUT;
161 pin->gp_flags |= GPIO_PIN_INPUT;
187 avila_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
191 if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & (1 << pin)))
194 *caps = sc->sc_pins[pin].gp_caps;
199 avila_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
203 if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & (1 << pin)))
208 sc->sc_pins[pin].gp_flags = avila_gpio_pin_flags(sc, pin);
209 *flags = sc->sc_pins[pin].gp_flags;
216 avila_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
220 if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & (1 << pin)))
223 memcpy(name, sc->sc_pins[pin].gp_name, GPIOMAXNAME);
228 avila_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
231 uint32_t mask = 1 << pin;
233 if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & mask))
236 avila_gpio_pin_configure(sc, &sc->sc_pins[pin], flags);
242 avila_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
245 uint32_t mask = 1 << pin;
247 if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & mask))
261 avila_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val)
265 if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & (1 << pin)))
269 *val = (GPIO_CONF_READ_4(sc, IXP425_GPIO_GPINR) & (1 << pin)) ? 1 : 0;
276 avila_gpio_pin_toggle(device_t dev, uint32_t pin)
279 uint32_t mask = 1 << pin;
282 if (pin >= IXP4XX_GPIO_PINS || !(sc->sc_valid & mask))
319 strncpy(sc->sc_pins[p->pin].gp_name, p->name, GPIOMAXNAME);
320 sc->sc_pins[p->pin].gp_pin = p->pin;
321 sc->sc_pins[p->pin].gp_caps = p->caps;
322 sc->sc_pins[p->pin].gp_flags = avila_gpio_pin_flags(sc, p->pin);
323 sc->sc_valid |= 1 << p->pin;