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)
committerJianxin Pan <jianxin.pan@amlogic.com>
Thu, 6 Jun 2019 05:24:18 +0000 (22:24 -0700)
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>
21 files changed:
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_ac200_buildroot.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/arm/boot/dts/amlogic/tl1_t962x2_x301_1g.dts
arch/arm/boot/dts/amlogic/tl1_t962x2_x301_2g.dts
arch/arm/boot/dts/amlogic/tm2_t962e2_ab311.dts
arch/arm/boot/dts/amlogic/tm2_t962x3_ab301.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_ac200_buildroot.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
arch/arm64/boot/dts/amlogic/tl1_t962x2_x301_1g.dts
arch/arm64/boot/dts/amlogic/tl1_t962x2_x301_2g.dts
arch/arm64/boot/dts/amlogic/tm2_t962e2_ab311.dts
arch/arm64/boot/dts/amlogic/tm2_t962x3_ab301.dts
drivers/amlogic/mmc/aml_sd_emmc_v3.c

index 301d5b7..e163917 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 fcd12e4..acc912f 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 423606a..a29bf5d 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 6f52805..3a4657f 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 a07c16d..87b47b1 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 02aa64a..6dd37a7 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 ebcb331..335d45f 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 = <198000000>;
        };
index 96559b7..8998909 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 = <198000000>;
        };
index b856026..ea9a620 100644 (file)
                         "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>;
        };
index 7a4da04..c2ed633 100644 (file)
                         "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>;
        };
index 28b2948..ad55f5b 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 f7cb35e..cde36a1 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 4475804..8c1c73a 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 827574b..2c434d2 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 6c288b1..b843445 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 73933cc..2917c7c 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 baeb20c..e8bc174 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 = <198000000>;
        };
index 8b12ec1..b63004b 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 = <198000000>;
        };
index 26e434a..0f18e3b 100644 (file)
                         "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>;
        };
index 30ef7a2..c70294d 100644 (file)
                         "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>;
        };
index 401728c..fa28992 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");
@@ -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;