From: Eric Nelson <eric.nelson@boundarydevices.com>
To: broonie@kernel.org
Cc: fabio.estevam@freescale.com, alsa-devel@alsa-project.org,
lars@metafoo.de, tiwai@suse.de, lgirdwood@gmail.com,
rmk+kernel@arm.linux.org.uk, jean-michel.hautbois@vodalys.com,
troy.kisky@boundarydevices.com
Subject: Re: [PATCH RFC 0/6] ASoC: sgtl5000: fix use of regulators and internal LDO
Date: Fri, 06 Mar 2015 15:49:39 -0700 [thread overview]
Message-ID: <54FA2F03.2060804@boundarydevices.com> (raw)
In-Reply-To: <1424991273-10081-1-git-send-email-eric.nelson@boundarydevices.com>
Hi Mark,
On 02/26/2015 03:54 PM, Eric Nelson wrote:
> This patch set addresses a structural problem in the handling of regulators
> for VDDIO, VDDA, and VDDD in the SGTL5000 driver.
>
> The first two of these power rails must be powered on prior to any I2C
> communication, and yet the regulators were tied to the codec, which is
> instantiated only after a fair amount of I2C communication takes place.
>
> In other words, these regulators could never have function, and we can
> surmise that no user of this driver has switched power supply rails
> connected to them.
>
> The third power rail (VDDD) can be derived internally (by using I2C registers)
> though the data sheet says that if an external VDDD is used, it should be
> enabled before MCLK is started and I2C activity begins.
>
> Patch 1 moves the regulators to the I2C device and initializes them before
> I2C activity.
> Patch 2 addresses an issue found during development of the patch and is
> somewhat unrelated to regulators. It is included for discussion
> Patch 3 removes the root cause of patch 2
> Patch 4 adds return value checks when setting the LINREG and ANA_POWER
> registers
> Patch 5 addresses the cause of follow-on failures and the source of the
> error in patch 3.
> Patch 6 removes the naive use of the supplies to lower power consumption
> and replaces it with something more modest.
>
> The patch set is being sent as an RFC for discussion, and should probably
> be squashed into two or three patches covering the regulator updates
> (patches 1, 3-5 and perhaps 6), initialization error handling (patch 2).
>
> Eric Nelson (6):
> ASoC: sgtl5000: fix regulator support
> ASoC: sgtl5000: write all default registers
> ASoC: sgtl5000: initialize CHIP_ANA_POWER to power-on defaults
> ASoC: sgtl5000: check return values
> ASoC: sgtl5000: disable internal PLL early
> ASoC: sgtl5000: Don't disable regulators in SND_SOC_BIAS_OFF
>
Based on your review, it seems like the following is needed for a
V2 patch (set):
- Move call to sgtl5000_fill_defaults() earlier in the
sgtl5000_i2c_probe routine, before adjusting ANA_POWER.
This will allow registers LINEREG_CTRL, CLK_CTRL, and even ANA_POWER
back into the default register list.
- Move regulators from codec to I2C device
- switch to devm_regulator api
- various code cleanups to simplify logic
- Adjust regulator usage in SND_SOC_BIAS_OFF
I'll leave out the "write all default" registers for the moment.
Let me know if you'd like to see this in multiple patches or a
single patch.
I'll wait to see if there's other feedback before prepping V2.
Regards,
Eric
next prev parent reply other threads:[~2015-03-06 22:49 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-26 22:54 [PATCH RFC 0/6] ASoC: sgtl5000: fix use of regulators and internal LDO Eric Nelson
2015-02-26 22:54 ` [RFC PATCH 1/6] ASoC: sgtl5000: fix regulator support Eric Nelson
2015-03-06 20:04 ` Mark Brown
2015-03-06 21:09 ` Eric Nelson
2015-03-07 9:59 ` Mark Brown
2015-02-26 22:54 ` [RFC PATCH 2/6] ASoC: sgtl5000: write all default registers Eric Nelson
2015-03-06 20:14 ` Mark Brown
2015-03-06 22:24 ` Eric Nelson
2016-06-15 14:38 ` Applied "ASoC: sgtl5000: Write all default registers" to the asoc tree Mark Brown
2015-02-26 22:54 ` [RFC PATCH 3/6] ASoC: sgtl5000: initialize CHIP_ANA_POWER to power-on defaults Eric Nelson
2015-03-06 20:12 ` Mark Brown
2015-03-06 22:14 ` Eric Nelson
2015-03-07 10:28 ` Mark Brown
2015-02-26 22:54 ` [RFC PATCH 4/6] ASoC: sgtl5000: check return values Eric Nelson
2015-02-26 22:54 ` [RFC PATCH 5/6] ASoC: sgtl5000: disable internal PLL early Eric Nelson
2015-03-06 20:15 ` Mark Brown
2015-03-06 22:16 ` Eric Nelson
2016-06-15 14:38 ` Applied "ASoC: sgtl5000: Disable internal PLL early" to the asoc tree Mark Brown
2015-02-26 22:54 ` [RFC PATCH 6/6] ASoC: sgtl5000: Don't disable regulators in SND_SOC_BIAS_OFF Eric Nelson
2015-03-06 20:16 ` Mark Brown
2015-03-06 22:35 ` Eric Nelson
2015-03-07 10:41 ` Mark Brown
2015-03-06 22:49 ` Eric Nelson [this message]
2015-03-06 22:53 ` [PATCH RFC 0/6] ASoC: sgtl5000: fix use of regulators and internal LDO Russell King - ARM Linux
2015-03-06 22:58 ` Eric Nelson
2015-03-06 23:16 ` Eric Nelson
2015-03-06 23:24 ` Russell King - ARM Linux
2015-03-06 23:31 ` Eric Nelson
2015-03-07 10:45 ` Mark Brown
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=54FA2F03.2060804@boundarydevices.com \
--to=eric.nelson@boundarydevices.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=fabio.estevam@freescale.com \
--cc=jean-michel.hautbois@vodalys.com \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=tiwai@suse.de \
--cc=troy.kisky@boundarydevices.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