diff options
author | Charles Keepax <ckeepax@opensource.wolfsonmicro.com> | 2015-05-11 13:58:01 +0100 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2015-06-22 12:25:08 +0100 |
commit | 5f056bf04201dc533f5d10acf028435ede0a1442 (patch) | |
tree | 4d1de294bffb4c57f761d5a06f78a776d581a8d6 /drivers/mfd | |
parent | 6c284c9a343a16d0a31d689558e1da174f37a0b0 (diff) |
mfd: arizona: Use devres to manage reset GPIO
This also handily fixes a leak of the GPIO in arizona_dev_exit.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/arizona-core.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c index aed43a549f77..915cc28585d2 100644 --- a/drivers/mfd/arizona-core.c +++ b/drivers/mfd/arizona-core.c @@ -728,9 +728,9 @@ int arizona_dev_init(struct arizona *arizona) if (arizona->pdata.reset) { /* Start out with /RESET low to put the chip into reset */ - ret = gpio_request_one(arizona->pdata.reset, - GPIOF_DIR_OUT | GPIOF_INIT_LOW, - "arizona /RESET"); + ret = devm_gpio_request_one(arizona->dev, arizona->pdata.reset, + GPIOF_DIR_OUT | GPIOF_INIT_LOW, + "arizona /RESET"); if (ret != 0) { dev_err(dev, "Failed to request /RESET: %d\n", ret); goto err_dcvdd; @@ -1046,10 +1046,8 @@ int arizona_dev_init(struct arizona *arizona) err_irq: arizona_irq_exit(arizona); err_reset: - if (arizona->pdata.reset) { + if (arizona->pdata.reset) gpio_set_value_cansleep(arizona->pdata.reset, 0); - gpio_free(arizona->pdata.reset); - } regulator_disable(arizona->dcvdd); err_enable: regulator_bulk_disable(arizona->num_core_supplies, |