mmc controller registers may in abnormal state if mmc is used in
bootloader, eg. to load kernel from eMMC. Some controllers cann't
clear their registers when clk is set. They use dedicated reset
logics to do this.
In this patch, a 'resets' property is added into dw_mmc dts
node. When driver does parse_dt and probe, it calls reset API to
deassert the 'reset' of dw_mmc host controller. When probe error or
remove, it calls reset API to assert it.
Chip vendor's actual reset logics is implemented in reset driver, not
in dw_mmc code.
Please also refer to Documentation/devicetree/bindings/reset/reset.txt
Guodong Xu (2):
Documentation: synopsys-dw-mshc: add binding for resets
mmc: dw_mmc: add resets support to dw_mmc
.../devicetree/bindings/mmc/synopsys-dw-mshc.txt | 4 ++++
drivers/mmc/host/dw_mmc.c | 20 +++++++++++++++++++-
include/linux/mmc/dw_mmc.h | 6 ++++--
3 files changed, 27 insertions(+), 3 deletions(-)