mmc host 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 triiger 'reset' of dwmmc 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 Changelog: v5: * rebase onto https://github.com/jh80chung/dw-mmc v4: * add reset_control_assert() and usleep() before calling _deassert(). Guodong Xu (2): Documentation: synopsys-dw-mshc: add binding for resets mmc: dw_mmc: add reset support to dwmmc host controller .../devicetree/bindings/mmc/synopsys-dw-mshc.txt | 4 ++++ drivers/mmc/host/dw_mmc.c | 23 +++++++++++++++++++++- include/linux/mmc/dw_mmc.h | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html