mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Samuel Ortiz <sameo@linux.intel.com>
Cc: linux-kernel@vger.kernel.org,
	patches@opensource.wolfsonmicro.com,
	Mark Brown <broonie@opensource.wolfsonmicro.com>
Subject: [PATCH 1/3] mfd: arizona: Hold device in reset while ramping supplies
Date: Wed,  3 Apr 2013 19:05:19 +0100	[thread overview]
Message-ID: <1365012321-7673-1-git-send-email-broonie@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <20130403180423.GA6985@opensource.wolfsonmicro.com>

Acquire the /RESET GPIO before we enable regulators and hold the device
in reset while the regulators power up in order to improve robustness
during the initial power up.

Also fix the error path so that the device is left in reset while we're
at it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
 drivers/mfd/arizona-core.c |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 26ac372..e4c8dc2 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -494,6 +494,17 @@ int arizona_dev_init(struct arizona *arizona)
 		goto err_early;
 	}
 
+	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");
+		if (ret != 0) {
+			dev_err(dev, "Failed to request /RESET: %d\n", ret);
+			goto err_early;
+		}
+	}
+
 	ret = regulator_bulk_enable(arizona->num_core_supplies,
 				    arizona->core_supplies);
 	if (ret != 0) {
@@ -508,18 +519,8 @@ int arizona_dev_init(struct arizona *arizona)
 		goto err_enable;
 	}
 
-	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");
-		if (ret != 0) {
-			dev_err(dev, "Failed to request /RESET: %d\n", ret);
-			goto err_dcvdd;
-		}
-
+	if (arizona->pdata.reset)
 		gpio_set_value_cansleep(arizona->pdata.reset, 1);
-	}
 
 	regcache_cache_only(arizona->regmap, false);
 
@@ -759,10 +760,9 @@ err_irq:
 	arizona_irq_exit(arizona);
 err_reset:
 	if (arizona->pdata.reset) {
-		gpio_set_value_cansleep(arizona->pdata.reset, 1);
+		gpio_set_value_cansleep(arizona->pdata.reset, 0);
 		gpio_free(arizona->pdata.reset);
 	}
-err_dcvdd:
 	regulator_disable(arizona->dcvdd);
 err_enable:
 	regulator_bulk_disable(arizona->num_core_supplies,
-- 
1.7.10.4


  reply	other threads:[~2013-04-03 18:06 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-01 17:27 [PATCH 0/15] arizona updates for v3.10 Mark Brown
2013-04-01 17:27 ` [PATCH 01/15] mfd: arizona: Disable all wake sources by default Mark Brown
2013-04-01 17:27   ` [PATCH 02/15] mfd: arizona: Clarify error message for failed primary IRQ request Mark Brown
2013-04-01 17:28   ` [PATCH 03/15] mfd: arizona: Basic support for edge triggered IRQs Mark Brown
2013-04-01 17:28   ` [PATCH 04/15] mfd: arizona: Allow GPIO to be specified for IRQ line Mark Brown
2013-04-01 17:28   ` [PATCH 05/15] mfd: arizona: Try to use interrupt flags from interrupt controller Mark Brown
2013-04-01 17:28   ` [PATCH 06/15] mfd: arizona: Support configuring MICBIASes into bypass mode Mark Brown
2013-04-01 17:28   ` [PATCH 07/15] mfd: wm5102: Update patch for latest evaluation Mark Brown
2013-04-01 17:28   ` [PATCH 08/15] mfd: arizona: Fully support the use of MCLK1 as the 32kHz clock source Mark Brown
2013-04-01 17:28   ` [PATCH 09/15] mfd: arizona: Unconditionally enable 32kHz clock Mark Brown
2013-04-01 17:28   ` [PATCH 10/15] mfd: wm5102: Only use the lowest three bits of device revision Mark Brown
2013-04-01 17:28   ` [PATCH 11/15] mfd: wm5102: Manually apply register patch Mark Brown
2013-04-01 17:28   ` [PATCH 12/15] mfd: arizona: Factor out register polling Mark Brown
2013-04-01 17:28   ` [PATCH 13/15] mfd: arizona: Add a hardware patch mechanism Mark Brown
2013-04-01 17:28   ` [PATCH 14/15] mfd: wm5102: Deactivate standard boot sequence Mark Brown
2013-04-01 17:28   ` [PATCH 15/15] mfd: wm5102: Update defaults to match patch Mark Brown
2013-04-03 18:04 ` [PATCH 0/15] arizona updates for v3.10 Mark Brown
2013-04-03 18:05   ` Mark Brown [this message]
2013-04-03 18:05     ` [PATCH 2/3] mfd: arizona: Wait for internal clocks to startup after reset Mark Brown
2013-04-03 18:05     ` [PATCH 3/3] mfd: wm5102: Don't wait for boot when boot sequencer is disabled Mark Brown
2013-04-08  9:25   ` [PATCH 0/15] arizona updates for v3.10 Samuel Ortiz
2013-04-08  9:38     ` Samuel Ortiz
2013-04-08 10:04       ` Mark Brown
2013-04-08 10:19         ` Mark Brown
2013-04-08 14:31           ` Samuel Ortiz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1365012321-7673-1-git-send-email-broonie@opensource.wolfsonmicro.com \
    --to=broonie@opensource.wolfsonmicro.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@opensource.wolfsonmicro.com \
    --cc=sameo@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome