Lines Matching refs:pin

94 	int pin;
126 static int cambria_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps);
127 static int cambria_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t
129 static int cambria_gpio_pin_getname(device_t dev, uint32_t pin, char *name);
130 static int cambria_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags);
131 static int cambria_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value);
132 static int cambria_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val);
133 static int cambria_gpio_pin_toggle(device_t dev, uint32_t pin);
226 cambria_gpio_read(struct cambria_gpio_softc *sc, uint32_t pin, unsigned int *val)
238 *val = (i2c_readbyte(sc) & (1 << pin)) != 0;
286 cambria_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
290 if (pin >= GPIO_PINS)
293 *caps = sc->sc_pins[pin].gp_caps;
298 cambria_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
302 if (pin >= GPIO_PINS)
305 *flags = sc->sc_pins[pin].gp_flags;
310 cambria_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
314 if (pin >= GPIO_PINS)
317 memcpy(name, sc->sc_pins[pin].gp_name, GPIOMAXNAME);
322 cambria_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
328 mask = 1 << pin;
330 if (pin >= GPIO_PINS)
334 sc->sc_pins[pin].gp_flags = flags;
353 cambria_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
359 mask = 1 << pin;
361 if (pin >= GPIO_PINS)
369 if (sc->sc_pins[pin].gp_flags != GPIO_PIN_OUTPUT) {
386 cambria_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *val)
391 if (pin >= GPIO_PINS)
395 if (sc->sc_pins[pin].gp_flags == GPIO_PIN_OUTPUT)
396 *val = (sc->sc_latch & (1 << pin)) ? 1 : 0;
398 error = cambria_gpio_read(sc, pin, val);
405 cambria_gpio_pin_toggle(device_t dev, uint32_t pin)
410 if (pin >= GPIO_PINS)
414 sc->sc_val ^= (1 << pin);
415 if (sc->sc_pins[pin].gp_flags == GPIO_PIN_OUTPUT) {
416 sc->sc_latch ^= (1 << pin);
436 int pin;
444 for (pin = 0; pin < GPIO_PINS; pin++) {
445 struct cambria_gpio_pin *p = &cambria_gpio_pins[pin];
447 strncpy(sc->sc_pins[pin].gp_name, p->name, GPIOMAXNAME);
448 sc->sc_pins[pin].gp_pin = pin;
449 sc->sc_pins[pin].gp_caps = GPIO_PIN_INPUT|GPIO_PIN_OUTPUT;
450 sc->sc_pins[pin].gp_flags = 0;
451 cambria_gpio_pin_setflags(dev, pin, p->flags);