From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaehoon Chung Subject: Re: [PATCH RFC 2/3] mmc: core: add new cap for 3.3V only DDR MMCs Date: Thu, 11 Aug 2016 20:12:59 +0900 Message-ID: References: <1470488140-10104-1-git-send-email-stefan.wahren@i2se.com> <1470488140-10104-3-git-send-email-stefan.wahren@i2se.com> <0e38d62a-b3d0-30ca-fca9-bb740ae54d0a@denx.de> <16443443.114784.752d0f22-93a7-46e8-bb14-c884787aaea3.open-xchange@email.1und1.de> <7284d9a4-164d-dd2d-b9a0-dd1de6c76274@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <7284d9a4-164d-dd2d-b9a0-dd1de6c76274@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Shawn Lin , Stefan Wahren , Rob Herring , Ulf Hansson , Mark Rutland , Fabio Estevam , Marek Vasut Cc: Dong Aisheng , devicetree@vger.kernel.org, Otavio Salvador , Holger Schurig , linux-mmc@vger.kernel.org, Sascha Hauer , Shawn Guo , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org T24gMDgvMDcvMjAxNiAxMTowNyBBTSwgU2hhd24gTGluIHdyb3RlOgo+IOWcqCAyMDE2LzgvNiAy MjoxOCwgU3RlZmFuIFdhaHJlbiDlhpnpgZM6Cj4+IEhpIE1hcmVrLAo+Pgo+Pj4gTWFyZWsgVmFz dXQgPG1hcmV4QGRlbnguZGU+IGhhdCBhbSA2LiBBdWd1c3QgMjAxNiB1bSAxNToxNCBnZXNjaHJp ZWJlbjoKPj4+Cj4+Pgo+Pj4gT24gMDgvMDYvMjAxNiAwMjo1NSBQTSwgU3RlZmFuIFdhaHJlbiB3 cm90ZToKPj4+PiBUaGlzIHBhdGNoIGJhc2VkIG9uIHRoZSB3b3JrIG9mIEZhYmlvIEVzdGV2YW06 Cj4+Pj4gIltQQVRDSCB2Ml0gbW1jOiBjb3JlOiBEbyBub3Qgc2V0IG1tYyB2b2x0YWdlIHRvIDEu OFYgd2hlbgo+Pj4+ICduby0xLTgtdicgaXMgcHJlc2VudCIKPj4+Pgo+Pj4+IEl0IGFkZHMgdGhl IHN1cHBvcnQgZm9yIDMuM1Ygb25seSBERFIgTU1DIGhvc3RzLgo+Pj4KPj4+IERvIHN1Y2ggY2Fy ZHMgZXZlbiBleGlzdCA/IERvIHlvdSBoYXZlIGEgbGluayB3aGVyZSBJIGNhbiBmaW5kIHNvbWUg Pwo+Pgo+PiBpIG5ldmVyIHNhaWQgYW55dGhpbmcgYWJvdXQgU0QgY2FyZHMuIEkgbWVhbiBlTU1D IG1vZHVsZXMgd2hpY2ggdXN1YWxseSBoYXZlIDgKPj4gZGF0YSBwaW5zIGxpa2UgdGhpcyBvbmUg WzFdLgo+Pgo+PiBQbGVhc2UgZG9uJ3QgYmxhbWUgbWUgaWYgaXQncyBub3QgY29tcGF0aWJsZSB0 byBpLk1YMjguIEl0J3Mgb25seSBhbiBleGFtcGxlLgo+Pgo+PiBbMV0gLQo+PiBodHRwOi8vZGF0 YXNoZWV0Lm9jdG9wYXJ0LmNvbS9USEdCTTNHNEQxRkJBSUdIMkgtVG9zaGliYS1kYXRhc2hlZXQt MjA3NDg4ODAucGRmCj4gCj4gCj4gSSBkb3dubG9hZCB0aGUgZGF0YXNoZWV0IHlvdSBtZW50aW9u ZWQsIGFuZCBJIGV4cGxpY2l0bHkgc2VlIGl0Cj4gZGVzY3JpYmUgMVY4IGV2ZXJ5d2hlcmUsIGVz cGVjaWFsbHkgZm9yIHRoZSBzZWN0aW9uIG9mICJFTEVDVFJJQ0FMCj4gQ0hBUkFDVEVSSVNUSUNT Ii4KPiAKPiBJIG5ldmVyIHNlZSBvbmUgZU1NQyBjbGFpbWluZyBERFI1MiBjYXBhYmlsaXR5IGJ1 dCBkb2Vzbid0IHN1cHBvcnQgMVY4Cj4gc28gZmFyLiBDb3VsZCB5b3Uga2luZGx5IHNoYXJlIG1l IHRoZSBwYXJ0IG51bWJlciBvZiB0aGUgZU1NQyB5b3UgYXJlCj4gdXNpbmc/IDopCj4gCj4+Cj4+ Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBXYWhyZW4gPHN0ZWZhbi53YWhyZW5AaTJzZS5j b20+Cj4+Pj4gLS0tCj4+Pj4gIGRyaXZlcnMvbW1jL2NvcmUvaG9zdC5jICB8ICAgIDIgKysKPj4+ PiAgZHJpdmVycy9tbWMvY29yZS9tbWMuYyAgIHwgICAgNiArKysrKysKPj4+PiAgaW5jbHVkZS9s aW51eC9tbWMvaG9zdC5oIHwgICAgMSArCj4+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspCj4+Pj4KPj4+PiBDaGFuZ2VzIHRvIEZhYmlvJ3MgcGF0Y2g6Cj4+Pj4gLSByZWJhc2Ug dG8gY3VycmVudCBsaW51eC1uZXh0Cj4+Pj4gLSByZW5hbWUgRFQgcHJvcGVydHkgdG8gbW1jLWRk ci0zXzN2Cj4+Pj4gLSB1c2UgRVhUX0NTRF9DQVJEX1RZUEVfRERSXzUyIGluc3RlYWQgb2YgbmV3 IGRlZmluZQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2NvcmUvaG9zdC5jIGIv ZHJpdmVycy9tbWMvY29yZS9ob3N0LmMKPj4+PiBpbmRleCA5OGYyNWZmLi40Yzk3MWRlIDEwMDY0 NAo+Pj4+IC0tLSBhL2RyaXZlcnMvbW1jL2NvcmUvaG9zdC5jCj4+Pj4gKysrIGIvZHJpdmVycy9t bWMvY29yZS9ob3N0LmMKPj4+PiBAQCAtMzAxLDYgKzMwMSw4IEBAIGludCBtbWNfb2ZfcGFyc2Uo c3RydWN0IG1tY19ob3N0ICpob3N0KQo+Pj4+ICAgICAgaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9v bChucCwgIndha2V1cC1zb3VyY2UiKSB8fAo+Pj4+ICAgICAgICAgIG9mX3Byb3BlcnR5X3JlYWRf Ym9vbChucCwgImVuYWJsZS1zZGlvLXdha2V1cCIpKSAvKiBsZWdhY3kgKi8KPj4+PiAgICAgICAg ICBob3N0LT5wbV9jYXBzIHw9IE1NQ19QTV9XQUtFX1NESU9fSVJROwo+Pj4+ICsgICAgaWYgKG9m X3Byb3BlcnR5X3JlYWRfYm9vbChucCwgIm1tYy1kZHItM18zdiIpKQo+Pj4+ICsgICAgICAgIGhv c3QtPmNhcHMyIHw9IE1NQ19DQVAyXzNfM1ZfT05MWV9ERFI7Cj4+Pj4gICAgICBpZiAob2ZfcHJv cGVydHlfcmVhZF9ib29sKG5wLCAibW1jLWRkci0xXzh2IikpCj4+Pj4gICAgICAgICAgaG9zdC0+ Y2FwcyB8PSBNTUNfQ0FQXzFfOFZfRERSOwo+Pj4+ICAgICAgaWYgKG9mX3Byb3BlcnR5X3JlYWRf Ym9vbChucCwgIm1tYy1kZHItMV8ydiIpKQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9j b3JlL21tYy5jIGIvZHJpdmVycy9tbWMvY29yZS9tbWMuYwo+Pj4+IGluZGV4IGYyZDE4NWMuLjhh OTMzZDUgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9tbWMvY29yZS9tbWMuYwo+Pj4+ICsrKyBi L2RyaXZlcnMvbW1jL2NvcmUvbW1jLmMKPj4+PiBAQCAtMjEwLDYgKzIxMCwxMiBAQCBzdGF0aWMg dm9pZCBtbWNfc2VsZWN0X2NhcmRfdHlwZShzdHJ1Y3QgbW1jX2NhcmQgKmNhcmQpCj4+Pj4gICAg ICAgICAgYXZhaWxfdHlwZSB8PSBFWFRfQ1NEX0NBUkRfVFlQRV9IU181MjsKPj4+PiAgICAgIH0K Pj4+Pgo+Pj4+ICsgICAgaWYgKGNhcHMyICYgTU1DX0NBUDJfM18zVl9PTkxZX0REUiAmJgo+Pj4+ ICsgICAgICAgIGNhcmRfdHlwZSAmIEVYVF9DU0RfQ0FSRF9UWVBFX0REUl8xXzhWKSB7Cj4+Pj4g KyAgICAgICAgaHNfbWF4X2R0ciA9IE1NQ19ISUdIX0REUl9NQVhfRFRSOwo+Pj4+ICsgICAgICAg IGF2YWlsX3R5cGUgfD0gRVhUX0NTRF9DQVJEX1RZUEVfRERSXzUyOwo+Pj4+ICsgICAgfQoKZGlk IHlvdSBrbm93IEVYVF9DU0RfQ0FSRF9UWVBFX0REUl81MiAtPiBUWVBFX0REUl8xXzhWIGFuZCBU WVBFX0REUl8xXzJWPwpJdCBtZWFucyBjYXJkIGNhbiB1c2UgdG8gdGhlIDEuOHYgYW5kIDEuMnYg ZGRyIG1vZGUuClNvIHRoaXMgcGF0Y2ggaXMgc3RyYW5nZS4uWW91IGFkZGVkIGNhcGFiaWxpdHkg Zm9yIG9ubHkgc3VwcG9ydGluZyAzXzN2LgoKQ29uZnVzaW5nLi4uCgpCZXN0IFJlZ2FyZHMsCkph ZWhvb24gQ2h1bmcKCj4+Pj4gKwo+Pj4+ICAgICAgaWYgKGNhcHMgJiBNTUNfQ0FQXzFfOFZfRERS ICYmCj4+Pj4gICAgICAgICAgY2FyZF90eXBlICYgRVhUX0NTRF9DQVJEX1RZUEVfRERSXzFfOFYp IHsKPj4+PiAgICAgICAgICBoc19tYXhfZHRyID0gTU1DX0hJR0hfRERSX01BWF9EVFI7Cj4+Pj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW1jL2hvc3QuaCBiL2luY2x1ZGUvbGludXgvbW1j L2hvc3QuaAo+Pj4+IGluZGV4IGFhNGJmYmYuLmRiMDc3NWQgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5j bHVkZS9saW51eC9tbWMvaG9zdC5oCj4+Pj4gKysrIGIvaW5jbHVkZS9saW51eC9tbWMvaG9zdC5o Cj4+Pj4gQEAgLTMxMSw2ICszMTEsNyBAQCBzdHJ1Y3QgbW1jX2hvc3Qgewo+Pj4+ICAjZGVmaW5l IE1NQ19DQVAyX0hTNDAwX0VTICAgICgxIDw8IDIwKSAgICAvKiBIb3N0IHN1cHBvcnRzIGVuaGFu Y2VkIHN0cm9iZSAqLwo+Pj4+ICAjZGVmaW5lIE1NQ19DQVAyX05PX1NEICAgICAgICAoMSA8PCAy MSkgICAgLyogRG8gbm90IHNlbmQgU0QgY29tbWFuZHMgZHVyaW5nCj4+Pj4gaW5pdGlhbGl6YXRp b24gKi8KPj4+PiAgI2RlZmluZSBNTUNfQ0FQMl9OT19NTUMgICAgICAgICgxIDw8IDIyKSAgICAv KiBEbyBub3Qgc2VuZCAoZSlNTUMgY29tbWFuZHMgZHVyaW5nCj4+Pj4gaW5pdGlhbGl6YXRpb24g Ki8KPj4+PiArI2RlZmluZSBNTUNfQ0FQMl8zXzNWX09OTFlfRERSICAgICgxIDw8IDIzKSAgICAv KiBPbmx5IHN1cHBvcnRzIDMuM1YgRERSICovCj4+Pj4KPj4+PiAgICAgIG1tY19wbV9mbGFnX3Qg ICAgICAgIHBtX2NhcHM7ICAgIC8qIHN1cHBvcnRlZCBwbSBmZWF0dXJlcyAqLwo+Pj4+Cj4+Pj4K Pj4+Cj4+Pgo+Pj4gLS0gCj4+PiBCZXN0IHJlZ2FyZHMsCj4+PiBNYXJlayBWYXN1dAo+PiAtLSAK Pj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2Ny aWJlIGxpbnV4LW1tYyIgaW4KPj4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2 Z2VyLmtlcm5lbC5vcmcKPj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2Vy bmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCj4+Cj4gCj4gCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: jh80.chung@samsung.com (Jaehoon Chung) Date: Thu, 11 Aug 2016 20:12:59 +0900 Subject: [PATCH RFC 2/3] mmc: core: add new cap for 3.3V only DDR MMCs In-Reply-To: <7284d9a4-164d-dd2d-b9a0-dd1de6c76274@rock-chips.com> References: <1470488140-10104-1-git-send-email-stefan.wahren@i2se.com> <1470488140-10104-3-git-send-email-stefan.wahren@i2se.com> <0e38d62a-b3d0-30ca-fca9-bb740ae54d0a@denx.de> <16443443.114784.752d0f22-93a7-46e8-bb14-c884787aaea3.open-xchange@email.1und1.de> <7284d9a4-164d-dd2d-b9a0-dd1de6c76274@rock-chips.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 08/07/2016 11:07 AM, Shawn Lin wrote: > ? 2016/8/6 22:18, Stefan Wahren ??: >> Hi Marek, >> >>> Marek Vasut hat am 6. August 2016 um 15:14 geschrieben: >>> >>> >>> On 08/06/2016 02:55 PM, Stefan Wahren wrote: >>>> This patch based on the work of Fabio Estevam: >>>> "[PATCH v2] mmc: core: Do not set mmc voltage to 1.8V when >>>> 'no-1-8-v' is present" >>>> >>>> It adds the support for 3.3V only DDR MMC hosts. >>> >>> Do such cards even exist ? Do you have a link where I can find some ? >> >> i never said anything about SD cards. I mean eMMC modules which usually have 8 >> data pins like this one [1]. >> >> Please don't blame me if it's not compatible to i.MX28. It's only an example. >> >> [1] - >> http://datasheet.octopart.com/THGBM3G4D1FBAIGH2H-Toshiba-datasheet-20748880.pdf > > > I download the datasheet you mentioned, and I explicitly see it > describe 1V8 everywhere, especially for the section of "ELECTRICAL > CHARACTERISTICS". > > I never see one eMMC claiming DDR52 capability but doesn't support 1V8 > so far. Could you kindly share me the part number of the eMMC you are > using? :) > >> >>> >>>> Signed-off-by: Stefan Wahren >>>> --- >>>> drivers/mmc/core/host.c | 2 ++ >>>> drivers/mmc/core/mmc.c | 6 ++++++ >>>> include/linux/mmc/host.h | 1 + >>>> 3 files changed, 9 insertions(+) >>>> >>>> Changes to Fabio's patch: >>>> - rebase to current linux-next >>>> - rename DT property to mmc-ddr-3_3v >>>> - use EXT_CSD_CARD_TYPE_DDR_52 instead of new define >>>> >>>> diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c >>>> index 98f25ff..4c971de 100644 >>>> --- a/drivers/mmc/core/host.c >>>> +++ b/drivers/mmc/core/host.c >>>> @@ -301,6 +301,8 @@ int mmc_of_parse(struct mmc_host *host) >>>> if (of_property_read_bool(np, "wakeup-source") || >>>> of_property_read_bool(np, "enable-sdio-wakeup")) /* legacy */ >>>> host->pm_caps |= MMC_PM_WAKE_SDIO_IRQ; >>>> + if (of_property_read_bool(np, "mmc-ddr-3_3v")) >>>> + host->caps2 |= MMC_CAP2_3_3V_ONLY_DDR; >>>> if (of_property_read_bool(np, "mmc-ddr-1_8v")) >>>> host->caps |= MMC_CAP_1_8V_DDR; >>>> if (of_property_read_bool(np, "mmc-ddr-1_2v")) >>>> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c >>>> index f2d185c..8a933d5 100644 >>>> --- a/drivers/mmc/core/mmc.c >>>> +++ b/drivers/mmc/core/mmc.c >>>> @@ -210,6 +210,12 @@ static void mmc_select_card_type(struct mmc_card *card) >>>> avail_type |= EXT_CSD_CARD_TYPE_HS_52; >>>> } >>>> >>>> + if (caps2 & MMC_CAP2_3_3V_ONLY_DDR && >>>> + card_type & EXT_CSD_CARD_TYPE_DDR_1_8V) { >>>> + hs_max_dtr = MMC_HIGH_DDR_MAX_DTR; >>>> + avail_type |= EXT_CSD_CARD_TYPE_DDR_52; >>>> + } did you know EXT_CSD_CARD_TYPE_DDR_52 -> TYPE_DDR_1_8V and TYPE_DDR_1_2V? It means card can use to the 1.8v and 1.2v ddr mode. So this patch is strange..You added capability for only supporting 3_3v. Confusing... Best Regards, Jaehoon Chung >>>> + >>>> if (caps & MMC_CAP_1_8V_DDR && >>>> card_type & EXT_CSD_CARD_TYPE_DDR_1_8V) { >>>> hs_max_dtr = MMC_HIGH_DDR_MAX_DTR; >>>> diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h >>>> index aa4bfbf..db0775d 100644 >>>> --- a/include/linux/mmc/host.h >>>> +++ b/include/linux/mmc/host.h >>>> @@ -311,6 +311,7 @@ struct mmc_host { >>>> #define MMC_CAP2_HS400_ES (1 << 20) /* Host supports enhanced strobe */ >>>> #define MMC_CAP2_NO_SD (1 << 21) /* Do not send SD commands during >>>> initialization */ >>>> #define MMC_CAP2_NO_MMC (1 << 22) /* Do not send (e)MMC commands during >>>> initialization */ >>>> +#define MMC_CAP2_3_3V_ONLY_DDR (1 << 23) /* Only supports 3.3V DDR */ >>>> >>>> mmc_pm_flag_t pm_caps; /* supported pm features */ >>>> >>>> >>> >>> >>> -- >>> Best regards, >>> Marek Vasut >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in >> the body of a message to majordomo at vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > >