Lines Matching defs:pin
96 gpio_pin_t pin, uint32_t intr_mode)
104 gpio_data->gpio_pin_num = pin->pin;
105 gpio_data->gpio_pin_flags = pin->flags;
108 irq = intr_map_irq(pin->dev, 0, (struct intr_map_data *)gpio_data);
121 gpio_pin_t pin, uint32_t intr_mode)
157 gpio_pin_t pin;
164 pin = malloc(sizeof(*pin), M_DEVBUF, M_WAITOK | M_ZERO);
166 pin->dev = device_get_parent(busdev);
167 pin->pin = pinnum;
168 pin->flags = 0;
170 *ppin = pin;
188 gpio_pin_getcaps(gpio_pin_t pin, uint32_t *caps)
191 KASSERT(pin != NULL, ("GPIO pin is NULL."));
192 KASSERT(pin->dev != NULL, ("GPIO pin device is NULL."));
193 return (GPIO_PIN_GETCAPS(pin->dev, pin->pin, caps));
197 gpio_pin_is_active(gpio_pin_t pin, bool *active)
202 KASSERT(pin != NULL, ("GPIO pin is NULL."));
203 KASSERT(pin->dev != NULL, ("GPIO pin device is NULL."));
204 rv = GPIO_PIN_GET(pin->dev, pin->pin, &tmp);
209 if (pin->flags & GPIO_ACTIVE_LOW)
224 KASSERT(gpio->dev != NULL, ("GPIO pin device is NULL."));
228 gpiobus_release_pin(busdev, gpio->pin);
234 gpio_pin_set_active(gpio_pin_t pin, bool active)
239 if (pin->flags & GPIO_ACTIVE_LOW)
244 KASSERT(pin != NULL, ("GPIO pin is NULL."));
245 KASSERT(pin->dev != NULL, ("GPIO pin device is NULL."));
246 rv = GPIO_PIN_SET(pin->dev, pin->pin, tmp);
251 gpio_pin_setflags(gpio_pin_t pin, uint32_t flags)
255 KASSERT(pin != NULL, ("GPIO pin is NULL."));
256 KASSERT(pin->dev != NULL, ("GPIO pin device is NULL."));
258 rv = GPIO_PIN_SETFLAGS(pin->dev, pin->pin, flags);
381 gpiobus_acquire_pin(device_t bus, uint32_t pin)
387 if (pin >= sc->sc_npins) {
389 "invalid pin %d, max: %d\n", pin, sc->sc_npins - 1);
392 /* Mark pin as mapped and give warning if it's already mapped. */
393 if (sc->sc_pins[pin].mapped) {
394 device_printf(bus, "warning: pin %d is already mapped\n", pin);
397 sc->sc_pins[pin].mapped = 1;
402 /* Release mapped pin */
404 gpiobus_release_pin(device_t bus, uint32_t pin)
410 if (pin >= sc->sc_npins) {
412 "invalid pin %d, max=%d\n",
413 pin, sc->sc_npins - 1);
417 if (!sc->sc_pins[pin].mapped) {
418 device_printf(bus, "pin %d is not mapped\n", pin);
421 sc->sc_pins[pin].mapped = 0;
433 /* Reserve the GPIO pin. */
435 device_printf(child, "cannot acquire pin %d\n",
446 /* Use the child name as pin name. */
466 device_printf(child, "empty pin mask\n");
491 unsigned long pin;
497 pin = strtoul(p, &endp, 0);
507 device_printf(child, "garbage in the pin list: %s\n", endp);
511 device_printf(child, "empty pin list\n");
524 pin = strtoul(p, &endp, 0);
526 devi->pins[i] = pin;
621 device_printf(dev, "<unknown device> at pin%s %s",
641 retval += printf(" at pin ");
897 gpiobus_pin_setflags(device_t dev, device_t child, uint32_t pin,
904 if (pin >= devi->npins)
906 if (GPIO_PIN_GETCAPS(sc->sc_dev, devi->pins[pin], &caps) != 0)
911 return (GPIO_PIN_SETFLAGS(sc->sc_dev, devi->pins[pin], flags));
915 gpiobus_pin_getflags(device_t dev, device_t child, uint32_t pin,
921 if (pin >= devi->npins)
924 return GPIO_PIN_GETFLAGS(sc->sc_dev, devi->pins[pin], flags);
928 gpiobus_pin_getcaps(device_t dev, device_t child, uint32_t pin,
934 if (pin >= devi->npins)
937 return GPIO_PIN_GETCAPS(sc->sc_dev, devi->pins[pin], caps);
941 gpiobus_pin_set(device_t dev, device_t child, uint32_t pin,
947 if (pin >= devi->npins)
950 return GPIO_PIN_SET(sc->sc_dev, devi->pins[pin], value);
954 gpiobus_pin_get(device_t dev, device_t child, uint32_t pin,
960 if (pin >= devi->npins)
963 return GPIO_PIN_GET(sc->sc_dev, devi->pins[pin], value);
967 gpiobus_pin_toggle(device_t dev, device_t child, uint32_t pin)
972 if (pin >= devi->npins)
975 return GPIO_PIN_TOGGLE(sc->sc_dev, devi->pins[pin]);
979 gpiobus_pin_getname(device_t dev, uint32_t pin, char *name)
984 if (pin > sc->sc_npins)
986 /* Did we have a name for this pin ? */
987 if (sc->sc_pins[pin].name != NULL) {
988 memcpy(name, sc->sc_pins[pin].name, GPIOMAXNAME);
992 /* Return the default pin name. */
993 return (GPIO_PIN_GETNAME(device_get_parent(dev), pin, name));
997 gpiobus_pin_setname(device_t dev, uint32_t pin, const char *name)
1002 if (pin > sc->sc_npins)
1006 /* Save the pin name. */
1007 if (sc->sc_pins[pin].name == NULL)
1008 sc->sc_pins[pin].name = malloc(GPIOMAXNAME, M_DEVBUF,
1010 strlcpy(sc->sc_pins[pin].name, name, GPIOMAXNAME);