Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751880AbaKYVUJ (ORCPT ); Tue, 25 Nov 2014 16:20:09 -0500 Received: from mail-ob0-f171.google.com ([209.85.214.171]:40039 "EHLO mail-ob0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751303AbaKYVUH (ORCPT ); Tue, 25 Nov 2014 16:20:07 -0500 MIME-Version: 1.0 In-Reply-To: References: <1415109789-7046-1-git-send-email-addy.ke@rock-chips.com> <1415678573-6093-1-git-send-email-addy.ke@rock-chips.com> <5464152E.7040209@rock-chips.com> <5473EB8B.3000803@rock-chips.com> From: Alexandru Stan Date: Tue, 25 Nov 2014 13:11:43 -0800 Message-ID: Subject: Re: [PATCH] mmc: dw_mmc: try pick the exact same voltage as vmmc for vqmmc To: Doug Anderson Cc: Addy , Ulf Hansson , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Randy Dunlap , "tgih.jun@samsung.com" , Jaehoon Chung , Chris Ball , Dinh Nguyen , =?UTF-8?Q?Heiko_St=C3=BCbner?= , Olof Johansson , Sonny Rao , "devicetree@vger.kernel.org" , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , linux-mmc , "linux-arm-kernel@lists.infradead.org" , "open list:ARM/Rockchip SoC..." , "zhenfu.fang" , Eddie Cai , lintao , chenfen , zyf , Jianqun Xu , Tao Huang , Chris Zhong , =?UTF-8?B?5aea5pm65oOF?= , han jiang , Kever Yang , zhangqing , Lin Huang Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >From what I understand... High speed SD cards have 1.8V regulators inside them(sourced by vmmc (what we power the SD card with)). So in terms of the SD card IO pins they will either use exactly vmmc or 1.8V. It doesn't make sense for vqmmc (the voltage we use to power the AP block connected to the SD cards) to be anything but exactly equal to vmmc or 1.8V. If vqmmc differs from vmmc(or 1.8V, depending on mode) by more than a little (~100-200mV), both up or down, you start getting leaks into the input protection diodes of the pins(either the AP or the SD card) which is a pretty BAD thing (you're essentially powering the sd card through the IO pins, or the SD card is powering the IO block on the AP). Alexandru Stan (amstan) On Mon, Nov 24, 2014 at 9:36 PM, Doug Anderson wrote: > Addy, > > On Mon, Nov 24, 2014 at 6:38 PM, Addy wrote: >>> In worst case scenario, VDD = 3.6V and VIO = 2.7V. That gives as the >>> factor of 0.75, thus we are inside spec but without margins. >> >> * From eMMC4.5 spec: >> 1. (VDDF)vcc: Supply voltage for flash memory, which is 2.7v -- 3.3v >> 2. (VDD)vccq: Supply voltage for memory controller, which is 1.7v -- >> 1.95v and 2,7v -- 3.6v >> >> * And from RK3288 datasheet: >> Digtial GPIO Power(SDMMC0_VDD --> vccq) is 3.0v -- 3.6v and 1.62v - 1.98v >> >> So I think: >> 3.3v: (2.7v < vccq < 3.6v) && (3.0v < vccq < 3.6v) ==> (3.0v < vccq < >> 3.6v) >> 1.8v: (1.7v < vccq < 1.95v) && (1.62v < vccq < 1.98v) ==> (1.7v < vccq < >> 1.95v) >> >> and (2.7v < vcc < 3.3v) >> >> * And according to our hardware engineer: >> All of supply voltage must have +/- 10% cushion. >> >> * And we have found in some worse card that there is 200mv voltage collapse >> when these card is insert. >> >> So I think the best resolution is that vcc and vccq is configurable int dt >> table. > > Ah, interesting. ...so what we really need to be able to do is to say > that the regulator we for vqmmc have supports the ranges 3.0V - 3.3V > and 1.7V - 1.95V but not anything in between 1.95V ad 3.0V. I have no > idea how to express that in the regulator framework. > > Technically you could take the IO Voltage Domains code (responsible > for choosing the 1.8V range or the 3.3V range) and have it communicate > the requirements to the regulator framework if you could figure out > how to communicate them. > > > ...of course if you implemented my suggestion of keeping vqmmc as the > highest voltage <= vmmc then maybe the whole point is moot and we > don't have to figure it out. Just make sure that vmmc never goes > below 3.0V. > > > -Doug -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/