diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2011-11-16 10:24:39 +0100 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-01-03 09:10:04 +0100 |
commit | b4e3ac74d5cd4152f2ec6b3280b1ff3428952f7f (patch) | |
tree | b1dc770b28ac3dcdf2fd2b770827e4112804155e /drivers/pinctrl/pinctrl-coh901.c | |
parent | pinctrl: u300-pinmux: register proper GPIO ranges (diff) | |
download | linux-b4e3ac74d5cd4152f2ec6b3280b1ff3428952f7f.tar.xz linux-b4e3ac74d5cd4152f2ec6b3280b1ff3428952f7f.zip |
pinctrl/coh901: driver to request its pins
This makes the COH 901 driver request muxing of its GPIO pins
from the pinmux-u300 driver using the standard API calls.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinctrl-coh901.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-coh901.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-coh901.c b/drivers/pinctrl/pinctrl-coh901.c index 4035778852b0..69fb7072a23e 100644 --- a/drivers/pinctrl/pinctrl-coh901.c +++ b/drivers/pinctrl/pinctrl-coh901.c @@ -22,6 +22,7 @@ #include <linux/gpio.h> #include <linux/list.h> #include <linux/slab.h> +#include <linux/pinctrl/pinmux.h> #include <mach/gpio-u300.h> /* @@ -351,6 +352,24 @@ static inline struct u300_gpio *to_u300_gpio(struct gpio_chip *chip) return container_of(chip, struct u300_gpio, chip); } +static int u300_gpio_request(struct gpio_chip *chip, unsigned offset) +{ + /* + * Map back to global GPIO space and request muxing, the direction + * parameter does not matter for this controller. + */ + int gpio = chip->base + offset; + + return pinmux_request_gpio(gpio); +} + +static void u300_gpio_free(struct gpio_chip *chip, unsigned offset) +{ + int gpio = chip->base + offset; + + pinmux_free_gpio(gpio); +} + static int u300_gpio_get(struct gpio_chip *chip, unsigned offset) { struct u300_gpio *gpio = to_u300_gpio(chip); @@ -483,6 +502,8 @@ static int u300_gpio_config(struct gpio_chip *chip, unsigned offset, static struct gpio_chip u300_gpio_chip = { .label = "u300-gpio-chip", .owner = THIS_MODULE, + .request = u300_gpio_request, + .free = u300_gpio_free, .get = u300_gpio_get, .set = u300_gpio_set, .direction_input = u300_gpio_direction_input, |