Lines Matching refs:devi

182 	struct gpiobus_ivar *devi;  in gpio_pin_get_by_child_index()  local
184 devi = GPIOBUS_IVAR(childdev); in gpio_pin_get_by_child_index()
185 if (idx >= devi->npins) in gpio_pin_get_by_child_index()
189 devi->pins[idx], ppin)); in gpio_pin_get_by_child_index()
268 gpiobus_print_pins(struct gpiobus_ivar *devi, char *buf, size_t buflen) in gpiobus_print_pins() argument
273 if (devi->npins == 0) in gpiobus_print_pins()
277 range_start = range_stop = devi->pins[0]; in gpiobus_print_pins()
278 for (i = 1; i < devi->npins; i++) { in gpiobus_print_pins()
279 if (devi->pins[i] != (range_stop + 1)) { in gpiobus_print_pins()
291 range_start = range_stop = devi->pins[i]; in gpiobus_print_pins()
379 gpiobus_alloc_ivars(struct gpiobus_ivar *devi) in gpiobus_alloc_ivars() argument
383 devi->pins = malloc(sizeof(uint32_t) * devi->npins, M_DEVBUF, in gpiobus_alloc_ivars()
385 if (devi->pins == NULL) in gpiobus_alloc_ivars()
391 gpiobus_free_ivars(struct gpiobus_ivar *devi) in gpiobus_free_ivars() argument
394 if (devi->pins) { in gpiobus_free_ivars()
395 free(devi->pins, M_DEVBUF); in gpiobus_free_ivars()
396 devi->pins = NULL; in gpiobus_free_ivars()
398 devi->npins = 0; in gpiobus_free_ivars()
450 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_acquire_child_pins() local
453 for (i = 0; i < devi->npins; i++) { in gpiobus_acquire_child_pins()
455 if (gpiobus_acquire_pin(dev, devi->pins[i]) != 0) { in gpiobus_acquire_child_pins()
457 devi->pins[i]); in gpiobus_acquire_child_pins()
460 devi->pins[i]); in gpiobus_acquire_child_pins()
462 gpiobus_free_ivars(devi); in gpiobus_acquire_child_pins()
466 for (i = 0; i < devi->npins; i++) { in gpiobus_acquire_child_pins()
468 GPIOBUS_PIN_SETNAME(dev, devi->pins[i], in gpiobus_acquire_child_pins()
478 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_parse_pins() local
490 devi->npins = npins; in gpiobus_parse_pins()
491 if (gpiobus_alloc_ivars(devi) != 0) { in gpiobus_parse_pins()
499 devi->pins[npins++] = i; in gpiobus_parse_pins()
509 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_parse_pin_list() local
536 devi->npins = npins; in gpiobus_parse_pin_list()
537 if (gpiobus_alloc_ivars(devi) != 0) { in gpiobus_parse_pin_list()
547 devi->pins[i] = pin; in gpiobus_parse_pin_list()
592 struct gpiobus_ivar *devi; in gpiobus_detach() local
607 devi = GPIOBUS_IVAR(devlist[i]); in gpiobus_detach()
608 gpiobus_free_ivars(devi); in gpiobus_detach()
609 resource_list_free(&devi->rl); in gpiobus_detach()
610 free(devi, M_DEVBUF); in gpiobus_detach()
646 struct gpiobus_ivar *devi; in gpiobus_probe_nomatch() local
648 devi = GPIOBUS_IVAR(child); in gpiobus_probe_nomatch()
650 gpiobus_print_pins(devi, pins, sizeof(pins)); in gpiobus_probe_nomatch()
651 if (devi->npins > 1) in gpiobus_probe_nomatch()
655 resource_list_print_type(&devi->rl, "irq", SYS_RES_IRQ, "%jd"); in gpiobus_probe_nomatch()
664 struct gpiobus_ivar *devi; in gpiobus_print_child() local
666 devi = GPIOBUS_IVAR(child); in gpiobus_print_child()
669 if (devi->npins > 0) { in gpiobus_print_child()
670 if (devi->npins > 1) in gpiobus_print_child()
674 gpiobus_print_pins(devi, pins, sizeof(pins)); in gpiobus_print_child()
677 resource_list_print_type(&devi->rl, "irq", SYS_RES_IRQ, "%jd"); in gpiobus_print_child()
687 struct gpiobus_ivar *devi; in gpiobus_child_location_str() local
689 devi = GPIOBUS_IVAR(child); in gpiobus_child_location_str()
690 if (devi->npins > 1) in gpiobus_child_location_str()
694 gpiobus_print_pins(devi, buf, buflen); in gpiobus_child_location_str()
712 struct gpiobus_ivar *devi; in gpiobus_add_child() local
717 devi = malloc(sizeof(struct gpiobus_ivar), M_DEVBUF, M_NOWAIT | M_ZERO); in gpiobus_add_child()
718 if (devi == NULL) { in gpiobus_add_child()
722 resource_list_init(&devi->rl); in gpiobus_add_child()
723 device_set_ivars(child, devi); in gpiobus_add_child()
747 struct gpiobus_ivar *devi; in gpiobus_hinted_child() local
757 devi = GPIOBUS_IVAR(child); in gpiobus_hinted_child()
760 resource_list_free(&devi->rl); in gpiobus_hinted_child()
761 free(devi, M_DEVBUF); in gpiobus_hinted_child()
768 resource_list_free(&devi->rl); in gpiobus_hinted_child()
769 free(devi, M_DEVBUF); in gpiobus_hinted_child()
785 struct gpiobus_ivar *devi; in gpiobus_set_resource() local
790 devi = GPIOBUS_IVAR(child); in gpiobus_set_resource()
791 rle = resource_list_add(&devi->rl, type, rid, start, in gpiobus_set_resource()
802 struct gpiobus_ivar *devi; in gpiobus_read_ivar() local
804 devi = GPIOBUS_IVAR(child); in gpiobus_read_ivar()
807 *result = devi->npins; in gpiobus_read_ivar()
822 struct gpiobus_ivar *devi; in gpiobus_write_ivar() local
826 devi = GPIOBUS_IVAR(child); in gpiobus_write_ivar()
830 if (devi->npins != 0) { in gpiobus_write_ivar()
833 devi->npins = value; in gpiobus_write_ivar()
834 if (gpiobus_alloc_ivars(devi) != 0) { in gpiobus_write_ivar()
836 devi->npins = 0; in gpiobus_write_ivar()
842 for (i = 0; i < devi->npins; i++) in gpiobus_write_ivar()
843 devi->pins[i] = ptr[i]; in gpiobus_write_ivar()
974 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_setflags() local
977 if (pin >= devi->npins) in gpiobus_pin_setflags()
979 if (GPIO_PIN_GETCAPS(sc->sc_dev, devi->pins[pin], &caps) != 0) in gpiobus_pin_setflags()
984 return (GPIO_PIN_SETFLAGS(sc->sc_dev, devi->pins[pin], flags)); in gpiobus_pin_setflags()
992 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_getflags() local
994 if (pin >= devi->npins) in gpiobus_pin_getflags()
997 return GPIO_PIN_GETFLAGS(sc->sc_dev, devi->pins[pin], flags); in gpiobus_pin_getflags()
1005 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_getcaps() local
1007 if (pin >= devi->npins) in gpiobus_pin_getcaps()
1010 return GPIO_PIN_GETCAPS(sc->sc_dev, devi->pins[pin], caps); in gpiobus_pin_getcaps()
1018 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_set() local
1020 if (pin >= devi->npins) in gpiobus_pin_set()
1023 return GPIO_PIN_SET(sc->sc_dev, devi->pins[pin], value); in gpiobus_pin_set()
1031 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_get() local
1033 if (pin >= devi->npins) in gpiobus_pin_get()
1036 return GPIO_PIN_GET(sc->sc_dev, devi->pins[pin], value); in gpiobus_pin_get()
1043 struct gpiobus_ivar *devi = GPIOBUS_IVAR(child); in gpiobus_pin_toggle() local
1045 if (pin >= devi->npins) in gpiobus_pin_toggle()
1048 return GPIO_PIN_TOGGLE(sc->sc_dev, devi->pins[pin]); in gpiobus_pin_toggle()