emmc: change emmc busmode from hs400 to hs200 [1/1]

PD#SWPL-9326

Problem:
hs400 200M not stable on some platform

Solution:
modify dts to hs200 mode

Verify:
passed on g12b_revb tl1 sm1 tm2

Change-Id: I45670c979b62a2caeed1e7ebc35b035bbbf8968c
Signed-off-by: Ruixuan Li <ruixuan.li@amlogic.com>
This commit is contained in:
Ruixuan Li
2019-06-03 19:19:03 +08:00
committed by Jianxin Pan
parent 5bb8220ebd
commit 6112c545e1
21 changed files with 42 additions and 22 deletions

View File

@@ -1340,7 +1340,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_A";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1707,7 +1707,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1786,7 +1786,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1720,7 +1720,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1720,7 +1720,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1636,7 +1636,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1937,7 +1937,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <198000000>;
};

View File

@@ -1935,7 +1935,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <198000000>;
};

View File

@@ -1984,7 +1984,8 @@
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1991,7 +1991,8 @@
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1341,7 +1341,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_A";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1694,7 +1694,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1773,7 +1773,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1706,7 +1706,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1707,7 +1707,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1699,7 +1699,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1933,7 +1933,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <198000000>;
};

View File

@@ -1927,7 +1927,8 @@
"MMC_CAP_ERASE",
"MMC_CAP_CMD23",
"MMC_CAP_DRIVER_TYPE_D";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <198000000>;
};

View File

@@ -1981,7 +1981,8 @@
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -1987,7 +1987,8 @@
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
caps2 = "MMC_CAP2_HS200";
/*MMC_CAP2_HS400"*/
f_min = <400000>;
f_max = <200000000>;
};

View File

@@ -241,7 +241,7 @@ static int meson_mmc_clk_set_rate_v3(struct mmc_host *mmc,
host->mux_parent[0]);
if (ret)
pr_warn("set comp0 as mux_clk parent error\n");
} else if (((host->data->chip_type >= MMC_CHIP_TL1)
/* } else if (((host->data->chip_type >= MMC_CHIP_TL1)
|| (host->data->chip_type == MMC_CHIP_G12B))
&& (clk_ios >= 166000000)) {
src0_clk = devm_clk_get(host->dev, "clkin2");
@@ -263,6 +263,7 @@ static int meson_mmc_clk_set_rate_v3(struct mmc_host *mmc,
host->mux_parent[0]);
if (ret)
pr_warn("set comp0 as mux_clk parent error\n");
*/
} else if (clk_get_rate(host->mux_parent[0]) > 200000000) {
pr_info("%s %d\n", __func__, __LINE__);
src0_clk = devm_clk_get(host->dev, "xtal");
@@ -512,7 +513,6 @@ void meson_mmc_set_ios_v3(struct mmc_host *mmc,
complete(&host->drv_completion);
}
irqreturn_t meson_mmc_irq_thread_v3(int irq, void *dev_id)
{
struct amlsd_host *host = dev_id;