Lines Matching refs:range

281 static inline int gpio_to_pin(struct pinctrl_gpio_range *range,  in gpio_to_pin()  argument
284 unsigned int pin = gc->base + offset - range->base; in gpio_to_pin()
285 if (range->pins) in gpio_to_pin()
286 return range->pins[pin]; in gpio_to_pin()
288 return range->pin_base + pin; in gpio_to_pin()
304 struct pinctrl_gpio_range *range; in pinctrl_match_gpio_range() local
308 list_for_each_entry(range, &pctldev->gpio_ranges, node) { in pinctrl_match_gpio_range()
310 if ((gc->base + offset) >= range->base && in pinctrl_match_gpio_range()
311 (gc->base + offset) < range->base + range->npins) { in pinctrl_match_gpio_range()
313 return range; in pinctrl_match_gpio_range()
339 struct pinctrl_gpio_range *range = NULL; in pinctrl_ready_for_gpio_range() local
347 list_for_each_entry(range, &pctldev->gpio_ranges, node) { in pinctrl_ready_for_gpio_range()
349 if (range->base + range->npins - 1 < gc->base || in pinctrl_ready_for_gpio_range()
350 range->base > gc->base + gc->ngpio - 1) in pinctrl_ready_for_gpio_range()
394 struct pinctrl_gpio_range *range; in pinctrl_get_device_gpio_range() local
396 range = pinctrl_match_gpio_range(pctldev, gc, offset); in pinctrl_get_device_gpio_range()
397 if (range) { in pinctrl_get_device_gpio_range()
399 *outrange = range; in pinctrl_get_device_gpio_range()
423 struct pinctrl_gpio_range *range) in pinctrl_add_gpio_range() argument
426 list_add_tail(&range->node, &pctldev->gpio_ranges); in pinctrl_add_gpio_range()
443 struct pinctrl_gpio_range *range) in pinctrl_find_and_add_gpio_range() argument
457 pinctrl_add_gpio_range(pctldev, range); in pinctrl_find_and_add_gpio_range()
484 struct pinctrl_gpio_range *range; in pinctrl_find_gpio_range_from_pin_nolock() local
487 list_for_each_entry(range, &pctldev->gpio_ranges, node) { in pinctrl_find_gpio_range_from_pin_nolock()
489 if (range->pins) { in pinctrl_find_gpio_range_from_pin_nolock()
491 for (a = 0; a < range->npins; a++) { in pinctrl_find_gpio_range_from_pin_nolock()
492 if (range->pins[a] == pin) in pinctrl_find_gpio_range_from_pin_nolock()
493 return range; in pinctrl_find_gpio_range_from_pin_nolock()
495 } else if (pin >= range->pin_base && in pinctrl_find_gpio_range_from_pin_nolock()
496 pin < range->pin_base + range->npins) in pinctrl_find_gpio_range_from_pin_nolock()
497 return range; in pinctrl_find_gpio_range_from_pin_nolock()
513 struct pinctrl_gpio_range *range; in pinctrl_find_gpio_range_from_pin() local
516 range = pinctrl_find_gpio_range_from_pin_nolock(pctldev, pin); in pinctrl_find_gpio_range_from_pin()
519 return range; in pinctrl_find_gpio_range_from_pin()
529 struct pinctrl_gpio_range *range) in pinctrl_remove_gpio_range() argument
532 list_del(&range->node); in pinctrl_remove_gpio_range()
762 struct pinctrl_gpio_range *range; in pinctrl_gpio_can_use_line() local
771 if (pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range)) in pinctrl_gpio_can_use_line()
777 pin = gpio_to_pin(range, gc, offset); in pinctrl_gpio_can_use_line()
798 struct pinctrl_gpio_range *range; in pinctrl_gpio_request() local
802 ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range); in pinctrl_gpio_request()
812 pin = gpio_to_pin(range, gc, offset); in pinctrl_gpio_request()
814 ret = pinmux_request_gpio(pctldev, range, pin, gc->base + offset); in pinctrl_gpio_request()
833 struct pinctrl_gpio_range *range; in pinctrl_gpio_free() local
837 ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range); in pinctrl_gpio_free()
844 pin = gpio_to_pin(range, gc, offset); in pinctrl_gpio_free()
846 pinmux_free_gpio(pctldev, pin, range); in pinctrl_gpio_free()
856 struct pinctrl_gpio_range *range; in pinctrl_gpio_direction() local
860 ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range); in pinctrl_gpio_direction()
868 pin = gpio_to_pin(range, gc, offset); in pinctrl_gpio_direction()
869 ret = pinmux_gpio_direction(pctldev, range, pin, input); in pinctrl_gpio_direction()
920 struct pinctrl_gpio_range *range; in pinctrl_gpio_set_config() local
924 ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range); in pinctrl_gpio_set_config()
929 pin = gpio_to_pin(range, gc, offset); in pinctrl_gpio_set_config()
1652 struct pinctrl_gpio_range *range; in pinctrl_pins_show() local
1675 list_for_each_entry(range, &pctldev->gpio_ranges, node) { in pinctrl_pins_show()
1676 if (range->pins != NULL) { in pinctrl_pins_show()
1677 for (int i = 0; i < range->npins; ++i) { in pinctrl_pins_show()
1678 if (range->pins[i] == pin) { in pinctrl_pins_show()
1679 gpio_num = range->base + i; in pinctrl_pins_show()
1683 } else if ((pin >= range->pin_base) && in pinctrl_pins_show()
1684 (pin < (range->pin_base + range->npins))) { in pinctrl_pins_show()
1686 range->base + (pin - range->pin_base); in pinctrl_pins_show()
1768 struct pinctrl_gpio_range *range; in pinctrl_gpioranges_show() local
1775 list_for_each_entry(range, &pctldev->gpio_ranges, node) { in pinctrl_gpioranges_show()
1776 if (range->pins) { in pinctrl_gpioranges_show()
1779 range->id, range->name, in pinctrl_gpioranges_show()
1780 range->base, (range->base + range->npins - 1)); in pinctrl_gpioranges_show()
1781 for (a = 0; a < range->npins - 1; a++) in pinctrl_gpioranges_show()
1782 seq_printf(s, "%u, ", range->pins[a]); in pinctrl_gpioranges_show()
1783 seq_printf(s, "%u}\n", range->pins[a]); in pinctrl_gpioranges_show()
1787 range->id, range->name, in pinctrl_gpioranges_show()
1788 range->base, (range->base + range->npins - 1), in pinctrl_gpioranges_show()
1789 range->pin_base, in pinctrl_gpioranges_show()
1790 (range->pin_base + range->npins - 1)); in pinctrl_gpioranges_show()
2230 struct pinctrl_gpio_range *range, *n; in pinctrl_unregister() local
2252 list_for_each_entry_safe(range, n, &pctldev->gpio_ranges, node) in pinctrl_unregister()
2253 list_del(&range->node); in pinctrl_unregister()