Lines Matching refs:devi
177 struct gpiobus_ivar *devi; in gpio_pin_get_by_child_index() local
179 devi = GPIOBUS_IVAR(childdev); in gpio_pin_get_by_child_index()
180 if (idx >= devi->npins) in gpio_pin_get_by_child_index()
184 devi->pins[idx], ppin)); in gpio_pin_get_by_child_index()
283 gpiobus_print_pins(struct gpiobus_ivar *devi, struct sbuf *sb) in gpiobus_print_pins() argument
287 if (devi->npins == 0) in gpiobus_print_pins()
291 range_start = range_stop = devi->pins[0]; in gpiobus_print_pins()
292 for (i = 1; i < devi->npins; i++) { in gpiobus_print_pins()
293 if (devi->pins[i] != (range_stop + 1)) { in gpiobus_print_pins()
300 range_start = range_stop = devi->pins[i]; in gpiobus_print_pins()
394 gpiobus_alloc_ivars(struct gpiobus_ivar *devi) in gpiobus_alloc_ivars() argument
398 devi->pins = malloc(sizeof(uint32_t) * devi->npins, M_DEVBUF, in gpiobus_alloc_ivars()
400 if (devi->pins == NULL) in gpiobus_alloc_ivars()
406 gpiobus_free_ivars(struct gpiobus_ivar *devi) in gpiobus_free_ivars() argument
409 if (devi->pins) { in gpiobus_free_ivars()
410 free(devi->pins, M_DEVBUF); in gpiobus_free_ivars()
411 devi->pins = NULL; in gpiobus_free_ivars()
413 devi->npins = 0; in gpiobus_free_ivars()
460 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_acquire_child_pins() local
463 for (i = 0; i < devi->npins; i++) { in gpiobus_acquire_child_pins()
465 if (gpiobus_acquire_pin(dev, devi->pins[i]) != 0) { in gpiobus_acquire_child_pins()
467 devi->pins[i]); in gpiobus_acquire_child_pins()
469 gpiobus_release_pin(dev, devi->pins[i]); in gpiobus_acquire_child_pins()
471 gpiobus_free_ivars(devi); in gpiobus_acquire_child_pins()
475 for (i = 0; i < devi->npins; i++) { in gpiobus_acquire_child_pins()
477 GPIOBUS_PIN_SETNAME(dev, devi->pins[i], in gpiobus_acquire_child_pins()
487 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_parse_pins() local
499 devi->npins = npins; in gpiobus_parse_pins()
500 if (gpiobus_alloc_ivars(devi) != 0) { in gpiobus_parse_pins()
508 devi->pins[npins++] = i; in gpiobus_parse_pins()
518 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_parse_pin_list() local
545 devi->npins = npins; in gpiobus_parse_pin_list()
546 if (gpiobus_alloc_ivars(devi) != 0) { in gpiobus_parse_pin_list()
556 devi->pins[i] = pin; in gpiobus_parse_pin_list()
645 struct gpiobus_ivar *devi; in gpiobus_probe_nomatch() local
647 devi = GPIOBUS_IVAR(child); in gpiobus_probe_nomatch()
649 gpiobus_print_pins(devi, &sb); in gpiobus_probe_nomatch()
652 devi->npins > 1 ? "s" : "", sbuf_data(&sb)); in gpiobus_probe_nomatch()
653 resource_list_print_type(&devi->rl, "irq", SYS_RES_IRQ, "%jd"); in gpiobus_probe_nomatch()
663 struct gpiobus_ivar *devi; in gpiobus_print_child() local
665 devi = GPIOBUS_IVAR(child); in gpiobus_print_child()
667 if (devi->npins > 0) { in gpiobus_print_child()
668 if (devi->npins > 1) in gpiobus_print_child()
673 gpiobus_print_pins(devi, &sb); in gpiobus_print_child()
677 resource_list_print_type(&devi->rl, "irq", SYS_RES_IRQ, "%jd"); in gpiobus_print_child()
686 struct gpiobus_ivar *devi; in gpiobus_child_location() local
688 devi = GPIOBUS_IVAR(child); in gpiobus_child_location()
690 gpiobus_print_pins(devi, sb); in gpiobus_child_location()
699 struct gpiobus_ivar *devi; in gpiobus_add_child() local
704 devi = malloc(sizeof(struct gpiobus_ivar), M_DEVBUF, M_NOWAIT | M_ZERO); in gpiobus_add_child()
705 if (devi == NULL) { in gpiobus_add_child()
709 resource_list_init(&devi->rl); in gpiobus_add_child()
710 device_set_ivars(child, devi); in gpiobus_add_child()
718 struct gpiobus_ivar *devi; in gpiobus_child_deleted() local
720 devi = GPIOBUS_IVAR(child); in gpiobus_child_deleted()
721 if (devi == NULL) in gpiobus_child_deleted()
723 gpiobus_free_ivars(devi); in gpiobus_child_deleted()
724 resource_list_free(&devi->rl); in gpiobus_child_deleted()
725 free(devi, M_DEVBUF); in gpiobus_child_deleted()
778 struct gpiobus_ivar *devi; in gpiobus_read_ivar() local
780 devi = GPIOBUS_IVAR(child); in gpiobus_read_ivar()
783 *result = devi->npins; in gpiobus_read_ivar()
798 struct gpiobus_ivar *devi; in gpiobus_write_ivar() local
802 devi = GPIOBUS_IVAR(child); in gpiobus_write_ivar()
806 if (devi->npins != 0) { in gpiobus_write_ivar()
809 devi->npins = value; in gpiobus_write_ivar()
810 if (gpiobus_alloc_ivars(devi) != 0) { in gpiobus_write_ivar()
812 devi->npins = 0; in gpiobus_write_ivar()
818 for (i = 0; i < devi->npins; i++) in gpiobus_write_ivar()
819 devi->pins[i] = ptr[i]; in gpiobus_write_ivar()
950 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_setflags() local
953 if (pin >= devi->npins) in gpiobus_pin_setflags()
955 if (GPIO_PIN_GETCAPS(sc->sc_dev, devi->pins[pin], &caps) != 0) in gpiobus_pin_setflags()
960 return (GPIO_PIN_SETFLAGS(sc->sc_dev, devi->pins[pin], flags)); in gpiobus_pin_setflags()
968 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_getflags() local
970 if (pin >= devi->npins) in gpiobus_pin_getflags()
973 return GPIO_PIN_GETFLAGS(sc->sc_dev, devi->pins[pin], flags); in gpiobus_pin_getflags()
981 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_getcaps() local
983 if (pin >= devi->npins) in gpiobus_pin_getcaps()
986 return GPIO_PIN_GETCAPS(sc->sc_dev, devi->pins[pin], caps); in gpiobus_pin_getcaps()
994 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_set() local
996 if (pin >= devi->npins) in gpiobus_pin_set()
999 return GPIO_PIN_SET(sc->sc_dev, devi->pins[pin], value); in gpiobus_pin_set()
1007 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_get() local
1009 if (pin >= devi->npins) in gpiobus_pin_get()
1012 return GPIO_PIN_GET(sc->sc_dev, devi->pins[pin], value); in gpiobus_pin_get()
1019 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_toggle() local
1021 if (pin >= devi->npins) in gpiobus_pin_toggle()
1024 return GPIO_PIN_TOGGLE(sc->sc_dev, devi->pins[pin]); in gpiobus_pin_toggle()