Messages in this thread Patch in this message | | | From | Charles Keepax <> | Subject | [PATCH 3/5] mfd: arizona: Factor out hard reset into helper functions | Date | Tue, 24 Mar 2015 14:59:50 +0000 |
| |
This patch adds functions for enabling and disabling the physical reset line. This will be helpful in future refactoring.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> --- drivers/mfd/arizona-core.c | 29 +++++++++++++++++++---------- 1 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c index aaaecaa..181da79 100644 --- a/drivers/mfd/arizona-core.c +++ b/drivers/mfd/arizona-core.c @@ -267,6 +267,20 @@ static int arizona_wait_for_boot(struct arizona *arizona) return ret; } +static inline void arizona_enable_reset(struct arizona *arizona) +{ + if (arizona->pdata.reset) + gpio_set_value_cansleep(arizona->pdata.reset, 0); +} + +static void arizona_disable_reset(struct arizona *arizona) +{ + if (arizona->pdata.reset) { + gpio_set_value_cansleep(arizona->pdata.reset, 1); + msleep(1); + } +} + struct arizona_sysclk_state { unsigned int fll; unsigned int sysclk; @@ -888,10 +902,7 @@ int arizona_dev_init(struct arizona *arizona) goto err_enable; } - if (arizona->pdata.reset) { - gpio_set_value_cansleep(arizona->pdata.reset, 1); - msleep(1); - } + arizona_disable_reset(arizona); regcache_cache_only(arizona->regmap, false); @@ -1187,10 +1198,9 @@ int arizona_dev_init(struct arizona *arizona) err_irq: arizona_irq_exit(arizona); err_reset: - if (arizona->pdata.reset) { - gpio_set_value_cansleep(arizona->pdata.reset, 0); + arizona_enable_reset(arizona); + if (arizona->pdata.reset) gpio_free(arizona->pdata.reset); - } regulator_disable(arizona->dcvdd); err_enable: regulator_bulk_disable(arizona->num_core_supplies, @@ -1215,10 +1225,9 @@ int arizona_dev_exit(struct arizona *arizona) arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona); arizona_free_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, arizona); arizona_irq_exit(arizona); - if (arizona->pdata.reset) { - gpio_set_value_cansleep(arizona->pdata.reset, 0); + arizona_enable_reset(arizona); + if (arizona->pdata.reset) gpio_free(arizona->pdata.reset); - } regulator_bulk_disable(arizona->num_core_supplies, arizona->core_supplies); -- 1.7.2.5
| |