Lines Matching defs:range

182 /* Deletes a range of pin descriptors */
260 * gpio_to_pin() - GPIO range GPIO number to pin number translation
261 * @range: GPIO range used for the translation
264 * Finds the pin number for a given GPIO using the specified GPIO range
268 * This function assumes the gpio is part of the specified GPIO range, use
272 static inline int gpio_to_pin(struct pinctrl_gpio_range *range,
275 unsigned int offset = gpio - range->base;
276 if (range->pins)
277 return range->pins[offset];
279 return range->pin_base + offset;
283 * pinctrl_match_gpio_range() - check if a certain GPIO pin is in range
288 * controller, return the range or NULL
293 struct pinctrl_gpio_range *range;
297 list_for_each_entry(range, &pctldev->gpio_ranges, node) {
298 /* Check if we're in the valid range */
299 if (gpio >= range->base &&
300 gpio < range->base + range->npins) {
302 return range;
311 * the same GPIO chip are in range
326 struct pinctrl_gpio_range *range = NULL;
338 list_for_each_entry(range, &pctldev->gpio_ranges, node) {
339 /* Check if any gpio range overlapped with gpio chip */
340 if (range->base + range->npins - 1 < chip->base ||
341 range->base > chip->base + chip->ngpio - 1)
359 * pinctrl_get_device_gpio_range() - find device for GPIO range
362 * @outrange: the GPIO range if found
365 * the GPIO subsystem, return the device and the matching GPIO range. Returns
366 * -EPROBE_DEFER if the GPIO range could not be found in any device since it
379 struct pinctrl_gpio_range *range;
381 range = pinctrl_match_gpio_range(pctldev, gpio);
382 if (range) {
384 *outrange = range;
396 * pinctrl_add_gpio_range() - register a GPIO range for a controller
397 * @pctldev: pin controller device to add the range to
398 * @range: the GPIO range to add
400 * This adds a range of GPIOs to be handled by a certain pin controller. Call
404 struct pinctrl_gpio_range *range)
407 list_add_tail(&range->node, &pctldev->gpio_ranges);
424 struct pinctrl_gpio_range *range)
433 * range need to defer probing.
438 pinctrl_add_gpio_range(pctldev, range);
465 struct pinctrl_gpio_range *range;
468 list_for_each_entry(range, &pctldev->gpio_ranges, node) {
469 /* Check if we're in the valid range */
470 if (range->pins) {
472 for (a = 0; a < range->npins; a++) {
473 if (range->pins[a] == pin)
474 return range;
476 } else if (pin >= range->pin_base &&
477 pin < range->pin_base + range->npins)
478 return range;
486 * pinctrl_find_gpio_range_from_pin() - locate the GPIO range for a pin
488 * @pin: a controller-local number to find the range for
494 struct pinctrl_gpio_range *range;
497 range = pinctrl_find_gpio_range_from_pin_nolock(pctldev, pin);
500 return range;
505 * pinctrl_remove_gpio_range() - remove a range of GPIOs from a pin controller
506 * @pctldev: pin controller device to remove the range from
507 * @range: the GPIO range to remove
510 struct pinctrl_gpio_range *range)
513 list_del(&range->node);
744 struct pinctrl_gpio_range *range;
749 * Try to obtain GPIO range, if it fails
753 if (pinctrl_get_device_gpio_range(gpio, &pctldev, &range))
759 pin = gpio_to_pin(range, gpio);
780 struct pinctrl_gpio_range *range;
784 ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
794 pin = gpio_to_pin(range, gpio);
796 ret = pinmux_request_gpio(pctldev, range, pin, gpio);
815 struct pinctrl_gpio_range *range;
819 ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
826 pin = gpio_to_pin(range, gpio);
828 pinmux_free_gpio(pctldev, pin, range);
837 struct pinctrl_gpio_range *range;
841 ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
849 pin = gpio_to_pin(range, gpio);
850 ret = pinmux_gpio_direction(pctldev, range, pin, input);
897 struct pinctrl_gpio_range *range;
901 ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
906 pin = gpio_to_pin(range, gpio);
1606 struct pinctrl_gpio_range *range;
1629 list_for_each_entry(range, &pctldev->gpio_ranges, node) {
1630 if ((pin >= range->pin_base) &&
1631 (pin < (range->pin_base + range->npins))) {
1632 gpio_num = range->base + (pin - range->pin_base);
1708 struct pinctrl_gpio_range *range;
1715 list_for_each_entry(range, &pctldev->gpio_ranges, node) {
1716 if (range->pins) {
1719 range->id, range->name,
1720 range->base, (range->base + range->npins - 1));
1721 for (a = 0; a < range->npins - 1; a++)
1722 seq_printf(s, "%u, ", range->pins[a]);
1723 seq_printf(s, "%u}\n", range->pins[a]);
1727 range->id, range->name,
1728 range->base, (range->base + range->npins - 1),
1729 range->pin_base,
1730 (range->pin_base + range->npins - 1));
2161 struct pinctrl_gpio_range *range, *n;
2183 list_for_each_entry_safe(range, n, &pctldev->gpio_ranges, node)
2184 list_del(&range->node);