Lines Matching refs:pin

92 	int pin;
123 static int cambria_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps);
124 static int cambria_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t
126 static int cambria_gpio_pin_getname(device_t dev, uint32_t pin, char *name);
127 static int cambria_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags);
128 static int cambria_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value);
129 static int cambria_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val);
130 static int cambria_gpio_pin_toggle(device_t dev, uint32_t pin);
223 cambria_gpio_read(struct cambria_gpio_softc *sc, uint32_t pin, unsigned int *val)
235 *val = (i2c_readbyte(sc) & (1 << pin)) != 0;
273 cambria_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
277 if (pin >= GPIO_PINS)
280 *caps = sc->sc_pins[pin].gp_caps;
285 cambria_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
289 if (pin >= GPIO_PINS)
292 *flags = sc->sc_pins[pin].gp_flags;
297 cambria_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
301 if (pin >= GPIO_PINS)
304 memcpy(name, sc->sc_pins[pin].gp_name, GPIOMAXNAME);
309 cambria_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
315 mask = 1 << pin;
317 if (pin >= GPIO_PINS)
321 sc->sc_pins[pin].gp_flags = flags;
340 cambria_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
346 mask = 1 << pin;
348 if (pin >= GPIO_PINS)
356 if (sc->sc_pins[pin].gp_flags != GPIO_PIN_OUTPUT) {
373 cambria_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val)
378 if (pin >= GPIO_PINS)
382 if (sc->sc_pins[pin].gp_flags == GPIO_PIN_OUTPUT)
383 *val = (sc->sc_latch & (1 << pin)) ? 1 : 0;
385 error = cambria_gpio_read(sc, pin, val);
392 cambria_gpio_pin_toggle(device_t dev, uint32_t pin)
397 if (pin >= GPIO_PINS)
401 sc->sc_val ^= (1 << pin);
402 if (sc->sc_pins[pin].gp_flags == GPIO_PIN_OUTPUT) {
403 sc->sc_latch ^= (1 << pin);
423 int pin;
431 for (pin = 0; pin < GPIO_PINS; pin++) {
432 struct cambria_gpio_pin *p = &cambria_gpio_pins[pin];
434 strncpy(sc->sc_pins[pin].gp_name, p->name, GPIOMAXNAME);
435 sc->sc_pins[pin].gp_pin = pin;
436 sc->sc_pins[pin].gp_caps = GPIO_PIN_INPUT|GPIO_PIN_OUTPUT;
437 sc->sc_pins[pin].gp_flags = 0;
438 cambria_gpio_pin_setflags(dev, pin, p->flags);