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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.