Re: eMMC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/11/22 Philip Rakity <prakity@xxxxxxxxxx>:
>
> On Nov 22, 2012, at 11:26 AM, Kevin Liu <keyuan.liu@xxxxxxxxx> wrote:
>
>>> From: linux-mmc-owner@xxxxxxxxxxxxxxx [mailto:linux-mmc-owner@xxxxxxxxxxxxxxx] On Behalf Of Philip Rakity
>>> Sent: Wednesday, November 21, 2012 8:42 PM
>>> To: linux-mmc@xxxxxxxxxxxxxxx
>>> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux