2012/11/22 Philip Rakity <[email protected]>:
>
> On Nov 22, 2012, at 11:26 AM, Kevin Liu <[email protected]> wrote:
>
>>> From: [email protected] 
>>> [mailto:[email protected]] On Behalf Of Philip Rakity
>>> Sent: Wednesday, November 21, 2012 8:42 PM
>>> To: [email protected]
>>> Subject: RFC: eMMC
>>>
>>> Recently there have been a number of patches to sdhci.c and discussions on 
>>> regulators for folks using eMMC.
>>>
>>> I would appreciate any feedback.  The opinions below are my own.
>>>
>>> eMMC is a hardware device.  It is NOT voltage configurable in any real 
>>> sense other then turning on/off the voltage,
>>> The board designer is supposed to read the data sheet and hook things up.  
>>> It is somewhat unclear to me how having a dummy regulator really helps.
>>>
>> But if the system enabled dummy regulator, regulator_get will return a
>> dummy regulator if vmmc/vmmcq not found.
>> So we had better take dummy regulator into consideration.
>>
>>> Given that -- voltage checking for vmmc or vmmcq is not meaningful. eMMC 
>>> either works or does not.
>>> The testing for vccq/vcc has no meaning since it cannot be changed.  In 
>>> fact the samsung eMMC we used for DDR worked at 2.8v.
>>
>> You set the vmmcq regulator to 2.8v while enable the 1.8v signaling
>> enable bit in host control 2 register.
>> It's mismatch in logic. But it's good to make DDR50 work under 2.8v(3v).
>> The reason for this working is the 1.8v signaling enable bit does NOT
>> control actual signal voltage at all.
>> In your case, although the 1.8v bit is set, the signal voltage for
>> both mmc host and emmc chip vmmcq is still 2.8v. Because the actual
>> signal voltage is controlled by external regulator whose voltage is
>> not changed.
>> So DDR50 can keep working since DDR50 support both 1.8v and 3v.
>
> There is no mismatch in logic. The samsung datas sheet says it will work.
> No external regulators are used.  vmmc and vmmvq are not NULL.

The mismatch here I mean you set 1.8v as signal voltage but actually
you use 2.8v. For the host controller, it's mismatch.

I don't understand "No external regulators are used.  vmmc and vmmvq
are not NULL".
vmmc and vmmcq regulator exist or not?

>>
>>> Given this -- we have a chicken and egg situation in sdhci.c
>>> if we are in this code and the kernel was on eMMC obviously the system is 
>>> working.
>>> If we booted the kernel from say SPI then hopefully the boot code has set 
>>> up the voltage rails correctly.
>>> I would argue that for eMMC the regulator structure should not be exposed 
>>> to sdhci.c and everything would just work.
>>>
>> The easy way is just not register vmmc/vmmcq regulator for emmc, right?
>>
>>> SD/UHS cards are a completely different matter and regulators make complete 
>>> sense.
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to