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
next prev parent 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).