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