Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

  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