From 55c7bba2fce77ecf7497b5852997dcf2212ec21f Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Wed, 2 May 2012 21:28:00 +0200 Subject: [PATCH] --- yaml --- r: 303339 b: refs/heads/master c: 24cbdd75c4a868bf1ebc986337ffcacf3f8a4109 h: refs/heads/master i: 303337: 9cdc38227069f2dc0d63833d7ee328d802e36d33 303335: f224acf4b89b8aca27004a228df61e4fdf8b243a v: v3 --- [refs] | 2 +- trunk/drivers/pinctrl/pinctrl-nomadik.c | 28 ++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 8f365059a74b..d044f90821d0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6f4350a6da99652423039765b9d1c57784150d39 +refs/heads/master: 24cbdd75c4a868bf1ebc986337ffcacf3f8a4109 diff --git a/trunk/drivers/pinctrl/pinctrl-nomadik.c b/trunk/drivers/pinctrl/pinctrl-nomadik.c index 8ed7917d513d..7543eb243c12 100644 --- a/trunk/drivers/pinctrl/pinctrl-nomadik.c +++ b/trunk/drivers/pinctrl/pinctrl-nomadik.c @@ -1326,10 +1326,36 @@ static int nmk_get_group_pins(struct pinctrl_dev *pctldev, unsigned selector, return 0; } +static struct pinctrl_gpio_range * +nmk_match_gpio_range(struct pinctrl_dev *pctldev, unsigned offset) +{ + struct nmk_pinctrl *npct = pinctrl_dev_get_drvdata(pctldev); + int i; + + for (i = 0; i < npct->soc->gpio_num_ranges; i++) { + struct pinctrl_gpio_range *range; + + range = &npct->soc->gpio_ranges[i]; + if (offset >= range->pin_base && + offset <= (range->pin_base + range->npins - 1)) + return range; + } + return NULL; +} + static void nmk_pin_dbg_show(struct pinctrl_dev *pctldev, struct seq_file *s, unsigned offset) { - seq_printf(s, " Nomadik GPIO"); + struct pinctrl_gpio_range *range; + struct gpio_chip *chip; + + range = nmk_match_gpio_range(pctldev, offset); + if (!range || !range->gc) { + seq_printf(s, "invalid pin offset"); + return; + } + chip = range->gc; + nmk_gpio_dbg_show_one(s, chip, offset - chip->base, offset); } static struct pinctrl_ops nmk_pinctrl_ops = {