Lines Matching refs:pin_range
671 struct gpio_pin_range *pin_range; in gpiochip_add_pingroup_range() local
674 pin_range = kzalloc(sizeof(*pin_range), GFP_KERNEL); in gpiochip_add_pingroup_range()
675 if (!pin_range) { in gpiochip_add_pingroup_range()
681 pin_range->range.id = gpio_offset; in gpiochip_add_pingroup_range()
682 pin_range->range.gc = chip; in gpiochip_add_pingroup_range()
683 pin_range->range.name = chip->label; in gpiochip_add_pingroup_range()
684 pin_range->range.base = chip->base + gpio_offset; in gpiochip_add_pingroup_range()
685 pin_range->pctldev = pctldev; in gpiochip_add_pingroup_range()
688 &pin_range->range.pins, in gpiochip_add_pingroup_range()
689 &pin_range->range.npins); in gpiochip_add_pingroup_range()
691 kfree(pin_range); in gpiochip_add_pingroup_range()
695 pinctrl_add_gpio_range(pctldev, &pin_range->range); in gpiochip_add_pingroup_range()
698 gpio_offset, gpio_offset + pin_range->range.npins - 1, in gpiochip_add_pingroup_range()
701 list_add_tail(&pin_range->node, &chip->pin_ranges); in gpiochip_add_pingroup_range()
720 struct gpio_pin_range *pin_range; in gpiochip_add_pin_range() local
723 pin_range = kzalloc(sizeof(*pin_range), GFP_KERNEL); in gpiochip_add_pin_range()
724 if (!pin_range) { in gpiochip_add_pin_range()
730 pin_range->range.id = gpio_offset; in gpiochip_add_pin_range()
731 pin_range->range.gc = chip; in gpiochip_add_pin_range()
732 pin_range->range.name = chip->label; in gpiochip_add_pin_range()
733 pin_range->range.base = chip->base + gpio_offset; in gpiochip_add_pin_range()
734 pin_range->range.pin_base = pin_offset; in gpiochip_add_pin_range()
735 pin_range->range.npins = npins; in gpiochip_add_pin_range()
736 pin_range->pctldev = pinctrl_find_and_add_gpio_range(pinctl_name, in gpiochip_add_pin_range()
737 &pin_range->range); in gpiochip_add_pin_range()
738 if (IS_ERR(pin_range->pctldev)) { in gpiochip_add_pin_range()
739 ret = PTR_ERR(pin_range->pctldev); in gpiochip_add_pin_range()
741 kfree(pin_range); in gpiochip_add_pin_range()
749 list_add_tail(&pin_range->node, &chip->pin_ranges); in gpiochip_add_pin_range()
761 struct gpio_pin_range *pin_range, *tmp; in gpiochip_remove_pin_ranges() local
763 list_for_each_entry_safe(pin_range, tmp, &chip->pin_ranges, node) { in gpiochip_remove_pin_ranges()
764 list_del(&pin_range->node); in gpiochip_remove_pin_ranges()
765 pinctrl_remove_gpio_range(pin_range->pctldev, in gpiochip_remove_pin_ranges()
766 &pin_range->range); in gpiochip_remove_pin_ranges()
767 kfree(pin_range); in gpiochip_remove_pin_ranges()