linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ulf Hansson <ulf.hansson@stericsson.com>
To: Philip Rakity <prakity@marvell.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>,
	Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
	Chris Ball <cjb@laptop.org>, Magnus Damm <magnus.damm@gmail.com>
Subject: Re: [PATCH 4/5 v3] mmc: add a function to get a regulator, supplying card's Vdd
Date: Mon, 11 Jun 2012 16:43:54 +0200	[thread overview]
Message-ID: <4FD6042A.10102@stericsson.com> (raw)
In-Reply-To: <15DF5528-1451-4121-A572-C293B5DCA8B4@marvell.com>

On 06/11/2012 04:36 PM, Philip Rakity wrote:
>
> On Jun 11, 2012, at 7:23 AM, Mark Brown wrote:
>
>> On Mon, Jun 11, 2012 at 02:39:29PM +0200, Guennadi Liakhovetski wrote:
>>> On Mon, 28 May 2012, Mark Brown wrote:
>>
>>>> Even if the supply is always on you can easily provide an always on
>>>> regulator.  From the point of view of the consumer if there are two
>>>> physical supplies needed it's much clearer and easier to just code that
>>>> and deal with the fact that we might have no control over them
>>>> externally, there's nothing device specific about that process.
>>
>>> Mark, I'm not sure I understand your above comment correctly. The
>>> function, that I add in this patch doesn't do much now, that we removed
>>
>>> IIUC, to satisfy Philip's requirement for a second regulator it would
>>> suffice to just issue one more devm_regulator_get() and let the caller
>>> deal with any errors. Is this what you're suggesting or are you against
>>> adding the second regulator? We could of course also add it later, but
>>> that would change the function prototype (unless we add regulator pointers
>>> to struct mmc_host itself). Whith existing users such changes are a bit
>>> messy...
>>
>> Yes, that's what I'm suggesting.  I guess you could wrap the two
>> regulators up in a small struct without it being too invasive?
>
>
> Some background notes:
> Historically SD cards operated with the same vccq (signaling for dat and clk pins)
> and vcc (core) voltage.
> usually 3.3v -->  we would use one regulator to supply both.  The power (regulator)
> was always on and as far as the SD code was concerned never exposed
> (eg regulator_get (vmmc) returned an error).
>
> Now enter UHS cards.  They allow (require) the vccq voltage change from
> 3.3v to 1.8v when operating in UHS mode (DDR50, SDR50, SDR104).
> They also note that when a voltage switch is done to move the card
> into UHS mode (3.3V to 1.8V) the switch may fail.  In this case vcc
> needs to turned off and then back on to cause the card to reinitialize.
>
> This led me to the conclusion two regulators are required.
> vccq must be switchable between 3.3 and 1.8
> vcc must be able to be turned off/on and may be switchable to a lower voltage.
>
> Note: embedded MMC is different (eMMC).  Since it is embedded it is
> assumed by the spec that the board designed knows that they are doing
> and the correct voltages are supplied.
>

Just some additional input;
In eMMC scenario you have two regulators as well. One called vcc (power 
to the card) and one called vccq (io-voltage). Very much depending on 
the hw board design, you may use one, two or no regulator at all for 
these power(s).

Kind regards
Ulf Hansson

  reply	other threads:[~2012-06-11 14:44 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-25 15:14 [PATCH 0/0/6 v3] mmc core, tmio / sdhi and sh-mmcif updates Guennadi Liakhovetski
2012-05-25 15:14 ` [PATCH 0/3:1/6 v3] mmc: sh-mmcif: clock management updates Guennadi Liakhovetski
2012-05-25 15:14   ` [PATCH 1/3 v3] mmc: sh_mmcif: simplify and use meaningful label names in error-handling Guennadi Liakhovetski
2012-05-25 15:14   ` [PATCH 2/3 v3] mmc: sh_mmcif: fix clock management Guennadi Liakhovetski
2012-05-25 15:14   ` [PATCH 3/3 v3] mmc: sh_mmcif: re-read the clock frequency every time the clock is turned on Guennadi Liakhovetski
2012-05-25 15:14 ` [PATCH 0/5:2/6 v3] mmc: sh_mmcif: add regulator support Guennadi Liakhovetski
2012-05-25 15:14   ` [PATCH 1/5 v3] mmc: sh_mmcif: remove redundant .down_pwr() callback Guennadi Liakhovetski
2012-05-25 15:14   ` [PATCH 2/5 v3] sh: ecovec: remove unused .down_pwr() MMCIF callback Guennadi Liakhovetski
2012-05-25 15:14   ` [PATCH 3/5 v3] mmc: sh_mmcif: remove unused .down_pwr() callback Guennadi Liakhovetski
2012-05-25 15:14   ` [PATCH 4/5 v3] mmc: add a function to get a regulator, supplying card's Vdd Guennadi Liakhovetski
2012-05-28  3:20     ` Ulf Hansson
2012-05-28  3:32       ` Philip Rakity
2012-05-28  8:12         ` Adrian Hunter
2012-05-28 14:43           ` Mark Brown
2012-06-11 12:39             ` Guennadi Liakhovetski
2012-06-11 14:23               ` Mark Brown
2012-06-11 14:36                 ` Philip Rakity
2012-06-11 14:43                   ` Ulf Hansson [this message]
2012-05-28 14:45     ` Mark Brown
2012-06-11 11:03       ` Guennadi Liakhovetski
2012-06-11 13:41         ` Chris Ball
2012-05-25 15:14   ` [PATCH 5/5 v3] mmc: sh_mmcif: add regulator support Guennadi Liakhovetski
2012-05-25 15:15 ` [PATCH 0/8:3/6 v3] mmc: tmio: clock and PM updates Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 1/8 v3] mmc: tmio: stop interface clock before runtime PM suspending Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 2/8 v3] mmc: tmio: don't needlessly enable interrupts during probing Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 3/8 v3] mmc: tmio: add callbacks to enable-update and disable the interface clock Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 4/8 v3] mmc: sdhi: implement tmio-mmc clock enable-update and disable callbacks Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 5/8 v3] mmc: tmio: add regulator support Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 6/8 v3] mmc: sdhi: do not install dummy callbacks Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 7/8 v3] mmc: tmio: use MMC opcode defines instead of numbers Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 8/8 v3] mmc: tmio: remove a duplicated comment line Guennadi Liakhovetski
2012-05-25 15:15 ` [PATCH 00/10:4/6 v3] mmc: cd-gpio: extend to handle more slot functions Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 01/10 v3] mmc: extend and rename cd-gpio helpers to handle more slot GPIO functions Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 02/10 v3] mmc: use a more generic name for slot function types and fields Guennadi Liakhovetski
2012-05-25 15:15   ` [PATCH 03/10 v3] mmc: add two capability flags for CD and WP signal polarity Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 04/10 v3] mmc: add CD GPIO polling support to slot functions Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 05/10 v3] mmc: convert slot functions to managed allocation Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 06/10 v3] mmc: add WP pin handler to slot functions Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 07/10 v3] mmc: tmio: support caps2 flags Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 08/10 v3] mmc: sh_mobile_sdhi: " Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 09/10 v3] ARM: mach-shmobile: specify inverted SDHI card-detect signal polarity Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 10/10 v3] mmc: tmio: use generic GPIO CD and WP handlers Guennadi Liakhovetski
2012-05-25 15:16 ` [PATCH 0/2:5/6 v3] mmc: add primitive OF support to sh-mmcif and sdhi Guennadi Liakhovetski
2012-05-25 15:16   ` [PATCH 1/2 v3] mmc: sdhi: add OF support, make platform data optional Guennadi Liakhovetski
2012-05-25 15:17   ` [PATCH 2/2 v3] mmc: sh-mmcif: " Guennadi Liakhovetski
2012-05-25 15:17 ` [PATCH 0/3:6/6 v3] sh, ARM: mach-shmobile: update MMC platform data Guennadi Liakhovetski
2012-05-25 15:17   ` [PATCH 1/3 v3] sh: ecovec: switch MMC power control to regulators Guennadi Liakhovetski
2012-05-25 15:17   ` [PATCH 2/3 v3] ARM: mach-shmobile: switch all SDHI instances on mackerel to use GPIO CD Guennadi Liakhovetski
2012-05-25 15:17   ` [PATCH 3/3 v3] ARM: mach-shmobile: specify IRQ names on mackerel SDHI0 interface Guennadi Liakhovetski
2012-05-25 15:31 ` [PATCH 0/0/6 v3] mmc core, tmio / sdhi and sh-mmcif updates Guennadi Liakhovetski
2012-05-25 15:45   ` Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 0/3:1/6 v3] mmc: sh-mmcif: clock management updates Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 1/3 v3] mmc: sh_mmcif: simplify and use meaningful label names in error-handling Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 2/3 v3] mmc: sh_mmcif: fix clock management Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 3/3 v3] mmc: sh_mmcif: re-read the clock frequency every time the clock is turned on Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 0/5:2/6 v3] mmc: sh_mmcif: add regulator support Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 1/5 v3] mmc: sh_mmcif: remove redundant .down_pwr() callback Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 2/5 v3] sh: ecovec: remove unused .down_pwr() MMCIF callback Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 3/5 v3] mmc: sh_mmcif: remove unused .down_pwr() callback Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 4/5 v3] mmc: add a function to get a regulator, supplying card's Vdd Guennadi Liakhovetski
2012-05-28 14:46     ` Mark Brown
2012-05-25 15:45   ` [PATCH 5/5 v3] mmc: sh_mmcif: add regulator support Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 0/8:3/6 v3] mmc: tmio: clock and PM updates Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 1/8 v3] mmc: tmio: stop interface clock before runtime PM suspending Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 2/8 v3] mmc: tmio: don't needlessly enable interrupts during probing Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 3/8 v3] mmc: tmio: add callbacks to enable-update and disable the interface clock Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 4/8 v3] mmc: sdhi: implement tmio-mmc clock enable-update and disable callbacks Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 5/8 v3] mmc: tmio: add regulator support Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 6/8 v3] mmc: sdhi: do not install dummy callbacks Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 7/8 v3] mmc: tmio: use MMC opcode defines instead of numbers Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 8/8 v3] mmc: tmio: remove a duplicated comment line Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 00/10:4/6 v3] mmc: cd-gpio: extend to handle more slot functions Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 01/10 v3] mmc: extend and rename cd-gpio helpers to handle more slot GPIO functions Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 02/10 v3] mmc: use a more generic name for slot function types and fields Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 03/10 v3] mmc: add two capability flags for CD and WP signal polarity Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 04/10 v3] mmc: add CD GPIO polling support to slot functions Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 05/10 v3] mmc: convert slot functions to managed allocation Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 06/10 v3] mmc: add WP pin handler to slot functions Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 07/10 v3] mmc: tmio: support caps2 flags Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 08/10 v3] mmc: sh_mobile_sdhi: " Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 09/10 v3] ARM: mach-shmobile: specify inverted SDHI card-detect signal polarity Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 10/10 v3] mmc: tmio: use generic GPIO CD and WP handlers Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 0/2:5/6 v3] mmc: add primitive OF support to sh-mmcif and sdhi Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 1/2 v3] mmc: sdhi: add OF support, make platform data optional Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 2/2 v3] mmc: sh-mmcif: " Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 0/3:6/6 v3] sh, ARM: mach-shmobile: update MMC platform data Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 1/3 v3] sh: ecovec: switch MMC power control to regulators Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 2/3 v3] ARM: mach-shmobile: switch all SDHI instances on mackerel to use GPIO CD Guennadi Liakhovetski
2012-05-25 15:45   ` [PATCH 3/3 v3] ARM: mach-shmobile: specify IRQ names on mackerel SDHI0 interface Guennadi Liakhovetski
2012-05-25 16:01   ` [PATCH 0/0/6 v3] mmc core, tmio / sdhi and sh-mmcif updates Guennadi Liakhovetski

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=4FD6042A.10102@stericsson.com \
    --to=ulf.hansson@stericsson.com \
    --cc=adrian.hunter@intel.com \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=cjb@laptop.org \
    --cc=g.liakhovetski@gmx.de \
    --cc=linux-mmc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=prakity@marvell.com \
    --cc=ulf.hansson@linaro.org \
    /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;
as well as URLs for NNTP newsgroup(s).