From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Szyprowski Subject: Re: [PATCH 1/4] mmc: core: add support for hardware reset gpio line Date: Thu, 29 Jan 2015 12:01:39 +0100 Message-ID: <54CA1313.1090302@samsung.com> References: <1422453595-21160-1-git-send-email-m.szyprowski@samsung.com> <1422453595-21160-2-git-send-email-m.szyprowski@samsung.com> <54C9FA48.5050705@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-reply-to: Sender: linux-samsung-soc-owner@vger.kernel.org To: Javier Martinez Canillas Cc: Ulf Hansson , linux-mmc , "devicetree@vger.kernel.org" , linux-samsung-soc , Kukjin Kim , Tobias Jakobi , Daniel Drake , Sebastian Reichel , Seungwon Jeon , Jaehoon Chung , Chris Ball , Joonyoung Shim List-Id: linux-mmc@vger.kernel.org Hello, On 2015-01-29 11:56, Javier Martinez Canillas wrote: > On Thu, Jan 29, 2015 at 10:15 AM, Marek Szyprowski > wrote: >>> Also, I wonder whether we could extend the mmc-pwrseq to cover your >>> case? Did you consider that as an option? >> I didn't consider mmc-pwrseq yet. For me it looked straightforward to > I agree with Ulf that using mmc-pwrseq would be a good solution and in > fact I think the pwrseq_simple [0] driver will fit your use case since > it supports a reset GPIO pin which is what many WLAN chips attached to > a SDIO interface use. >> implement >> it just like card detect or write-protection gpio pins. I already noticed >> that >> there is code for some mmc host driver, which perform mmc hardware reset. If >> you >> think that extending pwrseq is the better approach, I will try to update my >> patches. This will add reboot handler to mmc-pwrseq then. The only question >> is > I don't think that adding a reboot handler to mmc-pwrseq is needed. > AFAICT the call chain is: > > sys_reboot() -> kernel_restart() -> device_shutdown() -> > mmc_bus_shutdown() -> _mmc_suspend() -> mmc_power_off() -> > mmc_pwrseq_power_off() -> struct mmc_pwrseq_ops .power_off > > So since the pwrseq_simple already asserts the reset GPIO in > .power_off, it should be enough to ensure the eMMC will be reset to > its default configuration for the iROM to work properly. I think that I had to add reset handler, because device_shutdown() was not called if reset was triggered from magic sysrq, but I will check it again. > It also asserts the GPIO pin in .pre_power_on and de-asserts in > .post_power_on which should be needed as well for the other case you > mentioned when a broken bootloader left the emmc card in some unknown > state. > >> weather to use it always when mmc-pwrseq has been enabled or only if some >> additional property like 'reset-on-reboot' has been provided. >> > Having a reset GPIO is optional AFAIK so I don't think there is a need > for an additional "reset-on-reboot" propery. > >> Best regards >> -- >> Marek Szyprowski, PhD >> Samsung R&D Institute Poland >> > Best regards, > Javier > > [0]: > FYI, these are the relevant commits in linux-next: > fe1922d5d4d0 mmc: pwrseq_simple: Add support for a reset GPIO pin > ec2017f2491f mmc: pwrseq: Initial support for the simple MMC power > sequence provider > fe1686658f9c mmc: pwrseq: Document DT bindings for the simple MMC power sequence > 1b745e8a4627 mmc: core: Initial support for MMC power sequences Ok, I will check it. Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland