it's modified from hi3798cv200 driver, but quite a lot of code gets rewritten because of the hardware differences. Actually cv200 DWMMC core is called HIMCIV200 while mv200 DWMMC core is called HIMCIV300 in downstream. Pending on: [PATCH] mmc: host: replace 1st argument to struct device * for mmc_of_parse_clk_phase(): https://lore.kernel.org/all/20240215-mmc_phase-v1-1-f27644ee13e4@xxxxxxxxxxx/ Signed-off-by: Yang Xiwen <forbidden405@xxxxxxxxxxx> --- Changes in v2: - dw_mmc-hi3798mv200: use dev_err_probe() helper - Suggested by Krzysztof Kozlowski. - dw_mmc-hi3798mv200: add missing err=0; - dw_mmc-hi3798c(m)v200: remove unused MODULE_ALIAS() - Suggested by Krzysztof Kozlowski. - binding: rename the binding, a lot of tweaks suggested by Krzysztof Kozlowski. - Link to v1: https://lore.kernel.org/r/20240216-b4-mmc-hi3798mv200-v1-0-7d46db845ae6@xxxxxxxxxxx --- Yang Xiwen (4): mmc: dw_mmc-hi3798cv200: remove MODULE_ALIAS() mmc: dw_mmc: add support for hi3798mv200 dt-bindings: mmc: dw-mshc-hi3798cv200: convert to YAML dt-bindings: mmc: hisilicon,hi3798cv200-dw-mshc: rename to hisilicon,hi3798-dw-mshc .../bindings/mmc/hi3798cv200-dw-mshc.txt | 40 ---- .../bindings/mmc/hisilicon,hi3798-dw-mshc.yaml | 92 ++++++++ drivers/mmc/host/Kconfig | 9 + drivers/mmc/host/Makefile | 1 + drivers/mmc/host/dw_mmc-hi3798cv200.c | 1 - drivers/mmc/host/dw_mmc-hi3798mv200.c | 235 +++++++++++++++++++++ 6 files changed, 337 insertions(+), 41 deletions(-) --- base-commit: 8d3dea210042f54b952b481838c1e7dfc4ec751d change-id: 20240121-b4-mmc-hi3798mv200-a5730edf122c Best regards, -- Yang Xiwen <forbidden405@xxxxxxxxxxx>