如果需要使用EMMC硬件复位,按照源码流程,则需要三个条件:
1.设备树EMMC节点添加cap-mmc-hw-reset描述符
2.需要在读取ext_csd寄存器前,将ext_csd寄存器中的162号写0x1,这样读取出来的值就是1了(实际上这也是EMMC做硬件复位的要求,参考链接EMMC RSTN信号分析)
3.需要修改源码sdhci-of_arasan.c中sdhci_arasan_ops结构体,从中添加.hw_rest成员,并完成复位管脚上下拉电平的操作。
另外的资料:也有一种办法可以实现EMMC的硬件复位,关键词:mmc_pwrseq,参考链接:mmc_pwrseq
具体实现办法比较简单,只需要添加一下设备树,然后利用mmc_pwrseq_reset去实现IO脚的上下拉操作,但始终绕不开的还是需要将ext_csd寄存器的162号写0x1噢。