Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1390710
| From | Shawn Lin <shawn.lin@rock-chips.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v2 0/6] Add enhanced strobe support for emmc version 5.1 or later |
| Date | 2016-04-29 05:10 +0200 |
| Message-ID | <rt6Fc-6Ps-7@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
Hello Ulf and Adrian, This patch is going to support enhanced strobe function for emmc version 5.1+ introduced by JEDEC recently. Enchanced strobe is a optional function, so we add a new cap* for drivers to decide whether to use it. When introduing hs400 mode, JEDEC asks controllers to use data strobe line to latch the data from emmc devives. But for cmd-reponse, not mentioned yet. Since emmc version 5.1 published, JEDEC adds enhanced strobe function to deal with cmd-response the same way as data-read. This feature is optional. From the spec(section 6.6.2.3), the standard scenario to select HS400 enhanced strobe mode illustrated like this: (1) set HS_TIMIMG (Highspeed) (2) Host change freq to <= 52Mhz (3) set the bus width to Enhanced strobe and DDR8Bit(CMD6), EXT_CSD[183] = 0x86 instead of 0x80 (4) set HS_TIMING to 0x3 (HS400) (5) Host change freq to <= 200Mhz (6) Host select HS400 enhanced strobe complete I can't find a upstreamed controller claimed to support it, as well as the mmc stack. But my "arasan,sdhci-5.1" actually supports this function. So I decide to work for this part. By looking into the SDHCI spec, I find there isn't any registers to enable the enhanced strobe function. But from my "arasan,sdhci-5.1" databook, it describes a register called VENDOR_REGISTER(0x78) to trigger this mode. So I guess other sdhci variant drivers may also need s vendor specific register to deal with it. If we are sure that our controller supports enhanced strobe mode, just add mmc-hs400-enhanced-strobe in DT. Once emmc devices claims to support this mode, we enable it automatically. Of course, other sdhci*/non-sdhci drivers should implement/overwrite the prepare_enhanced_strobe by themselves. I believe all of the platforms which need to support this mode should do some basic preparation for their controllers. Currently I just limit the callback within ths scope of arasan,sdhci-5.1, but I prone to believe arasan will use VENDOR_REGISTER to tirgger this mode from now on because I do believe vendor will consider the registers' compatibility. With this patchset applied, we can successfully run in HS400 enhanced strobe mode on RK3399 platform with Samsung eMMC KLMBG2JENB-B041(v5.1, 16GB). mmc1: new HS400 Enhanced strobe MMC card at address 0001 mmcblk0: mmc1:0001 AJNB4R 14.6 GiB mmcblk0boot0: mmc1:0001 AJNB4R partition 1 4.00 MiB mmcblk0boot1: mmc1:0001 AJNB4R partition 2 4.00 MiB mmcblk0rpmb: mmc1:0001 AJNB4R partition 3 4.00 MiB Changes in v2: - switch to HS400ES from Highspeed mode directly Shawn Lin (6): Documentation: mmc: add mmc-hs400-enhanced-strobe mmc: core: add mmc-hs400-enhanced-strobe support mmc: core: implement enhanced strobe support mmc: debugfs: add HS400 enhanced strobe description mmc: sdhci: implement enhanced strobe callback mmc: sdhci-of-arasan: overwrite enhanced strobe callback Documentation/devicetree/bindings/mmc/mmc.txt | 1 + drivers/mmc/core/bus.c | 3 +- drivers/mmc/core/debugfs.c | 4 +- drivers/mmc/core/host.c | 2 + drivers/mmc/core/mmc.c | 77 ++++++++++++++++++++++++--- drivers/mmc/host/sdhci-of-arasan.c | 22 ++++++++ drivers/mmc/host/sdhci.c | 11 ++++ include/linux/mmc/card.h | 1 + include/linux/mmc/host.h | 18 +++++++ include/linux/mmc/mmc.h | 3 ++ 10 files changed, 134 insertions(+), 8 deletions(-) -- 2.3.7
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH v2 0/6] Add enhanced strobe support for emmc version 5.1 or later Shawn Lin <shawn.lin@rock-chips.com> - 2016-04-29 05:10 +0200
[PATCH v2 3/6] mmc: core: implement enhanced strobe support Shawn Lin <shawn.lin@rock-chips.com> - 2016-04-29 05:10 +0200
Re: [PATCH v2 3/6] mmc: core: implement enhanced strobe support Ulf Hansson <ulf.hansson@linaro.org> - 2016-05-04 14:10 +0200
Re: [PATCH v2 3/6] mmc: core: implement enhanced strobe support Adrian Hunter <adrian.hunter@intel.com> - 2016-05-04 15:20 +0200
Re: [PATCH v2 3/6] mmc: core: implement enhanced strobe support Shawn Lin <shawn.lin@rock-chips.com> - 2016-05-05 04:20 +0200
Re: [PATCH v2 3/6] mmc: core: implement enhanced strobe support Adrian Hunter <adrian.hunter@intel.com> - 2016-05-09 14:10 +0200
Re: [PATCH v2 3/6] mmc: core: implement enhanced strobe support Shawn Lin <shawn.lin@kernel-upstream.org> - 2016-05-10 10:40 +0200
[PATCH v2 1/6] Documentation: mmc: add mmc-hs400-enhanced-strobe Shawn Lin <shawn.lin@rock-chips.com> - 2016-04-29 05:10 +0200
Re: [PATCH v2 1/6] Documentation: mmc: add mmc-hs400-enhanced-strobe Rob Herring <robh@kernel.org> - 2016-05-03 19:10 +0200
csiph-web