emmc: change emmc busmode from hs400 to hs200 [1/1]
authorRuixuan Li <ruixuan.li@amlogic.com>
Mon, 3 Jun 2019 11:19:03 +0000 (19:19 +0800)
committerNick Xie <nick@khadas.com>
Mon, 5 Aug 2019 06:41:24 +0000 (14:41 +0800)
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>
Signed-off-by: Luan Yuan <luan.yuan@amlogic.com>
arch/arm/boot/dts/amlogic/g12b_a311d_w400.dts
arch/arm/boot/dts/amlogic/sm1_s905d3_ac200.dts
arch/arm/boot/dts/amlogic/sm1_s905d3_ac202.dts
arch/arm/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts
arch/arm/boot/dts/amlogic/sm1_s905x3_ac213.dts
arch/arm64/boot/dts/amlogic/g12b_a311d_w400.dts
arch/arm64/boot/dts/amlogic/sm1_s905d3_ac200.dts
arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202.dts
arch/arm64/boot/dts/amlogic/sm1_s905d3_ac202_1g.dts
arch/arm64/boot/dts/amlogic/sm1_s905x3_ac213.dts
drivers/amlogic/mmc/aml_sd_emmc_v3.c

index cce633a..59ef6eb 100644 (file)
                         "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>;
        };
index 0e1114a..b1fb7d6 100644 (file)
                         "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>;
        };
index 6689342..fb690a9 100644 (file)
                         "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>;
        };
index 7e62340..3ae5976 100644 (file)
                         "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>;
        };
index bcd1ae0..e3b8caf 100644 (file)
                         "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>;
        };
index c8e2006..eb05b77 100644 (file)
                         "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>;
        };
index ee432c8..b78d698 100644 (file)
                         "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>;
        };
index 413ca42..d393610 100644 (file)
                         "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>;
        };
index def30b7..95ba9ac 100644 (file)
                         "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>;
        };
index 76d8856..14ae626 100644 (file)
                         "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>;
        };
index a388b18..97a585b 100644 (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");
@@ -506,7 +507,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;