Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 336431
b: refs/heads/master
c: 9afbefb
h: refs/heads/master
i:
  336429: f77e119
  336427: 178248c
  336423: e2ac502
  336415: 9391910
v: v3
  • Loading branch information
Linus Walleij committed Nov 21, 2012
1 parent 59e0719 commit 6c339dd
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8f23ca1a73a096f21e6618d8e23df613daa5e532
refs/heads/master: 9afbefb227792a3c195085d662050dcca748f521
24 changes: 24 additions & 0 deletions trunk/drivers/pinctrl/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,30 @@ struct pinctrl_dev *pinctrl_find_and_add_gpio_range(const char *devname,
}
EXPORT_SYMBOL_GPL(pinctrl_find_and_add_gpio_range);

/**
* pinctrl_find_gpio_range_from_pin() - locate the GPIO range for a pin
* @pctldev: the pin controller device to look in
* @pin: a controller-local number to find the range for
*/
struct pinctrl_gpio_range *
pinctrl_find_gpio_range_from_pin(struct pinctrl_dev *pctldev,
unsigned int pin)
{
struct pinctrl_gpio_range *range = NULL;

/* Loop over the ranges */
list_for_each_entry(range, &pctldev->gpio_ranges, node) {
/* Check if we're in the valid range */
if (pin >= range->pin_base &&
pin < range->pin_base + range->npins) {
return range;
}
}

return NULL;
}
EXPORT_SYMBOL_GPL(pinctrl_find_gpio_range_from_pin);

/**
* pinctrl_remove_gpio_range() - remove a range of GPIOs fro a pin controller
* @pctldev: pin controller device to remove the range from
Expand Down
3 changes: 3 additions & 0 deletions trunk/include/linux/pinctrl/pinctrl.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@ extern void pinctrl_remove_gpio_range(struct pinctrl_dev *pctldev,

extern struct pinctrl_dev *pinctrl_find_and_add_gpio_range(const char *devname,
struct pinctrl_gpio_range *range);
extern struct pinctrl_gpio_range *
pinctrl_find_gpio_range_from_pin(struct pinctrl_dev *pctldev,
unsigned int pin);

#ifdef CONFIG_OF
extern struct pinctrl_dev *of_pinctrl_get(struct device_node *np);
Expand Down

0 comments on commit 6c339dd

Please sign in to comment.