Message ID | 20210109190937.42409-1-linux@fw-web.de |
---|---|
State | New |
Headers | show |
Series | dts64: mt7622: fix slow sd card access | expand |
I guess issue is caused by incompatible setting in uboot,but have not found which exactly so i handled it like emmc. If patch is ready to be applied please add Cc: stable@vger.kernel.org because all kernel versions are affected (tested at least in 5.4 and 5.9). If i need to create a v2,i will add it @sean/ryder/wenbin can you tell me if sd on mt7622/bpi-r64 is maybe capable of hs400? regards Frank
On Sun, 2021-01-10 at 03:10 +0800, Frank Wunderlich wrote: > From: Linux-mediatek [mailto:linux-mediatek-bounces@lists.infradead.org] On Behalf Of Frank Wunderlich > Sent: Sunday, January 10, 2021 3:10 AM > To: linux-mediatek@lists.infradead.org > Cc: devicetree@vger.kernel.org; Ryder Lee <Ryder.Lee@mediatek.com>; Wenbin Mei <Wenbin.Mei@mediatek.com>; Wenjie Hu <ot_wenjie.hu@mediatek.com>; Frank Wunderlich <frank-w@public-files.de>; Sean Wang <Sean.Wang@mediatek.com>; linux-kernel@vger.kernel.org; Rob Herring <robh+dt@kernel.org>; linux-arm-kernel@lists.infradead.org; Matthias Brugger <matthias.bgg@gmail.com>; Jimin Wang (汪济民) <Jimin.Wang@mediatek.com> > Subject: [PATCH] dts64: mt7622: fix slow sd card access > > From: Frank Wunderlich <frank-w@public-files.de> > > - change sdcard (mmc1) to uhs by change vqmmc-supply to 1V8 because driver > maps pinctrl depending on this > - add reset-control for mmc1 like it's done for mmc0/emmc > > Fixes: 2c002a3049f7 ("arm64: dts: mt7622: add mmc related device nodes") > Fixes: 0b6286dd96c0 ("arm64: dts: mt7622: add bananapi BPI-R64 board") > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > --- > arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 3 ++- > arch/arm64/boot/dts/mediatek/mt7622.dtsi | 2 ++ > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts > index 2f77dc40b9b8..916ca89ab8eb 100644 > --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts > +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts > @@ -232,10 +232,11 @@ &mmc1 { > bus-width = <4>; > max-frequency = <50000000>; > cap-sd-highspeed; > +mmc-hs200-1_8v; > r_smpl = <1>; > cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>; > vmmc-supply = <®_3p3v>; > -vqmmc-supply = <®_3p3v>; > +vqmmc-supply = <®_1p8v>; > assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>; > assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>; }; diff --git a/arch/arm64/boot/dts/mediatek/mt7622.dtsi b/arch/arm64/boot/dts/mediatek/mt7622.dtsi > index 5b9ec032ce8d..7c6d871538a6 100644 mt7622's SD/MMC host controller doesn't support UHS-1 mode for SD card. To meet compatibility of mtk-sd.c driver, which is also used on other platforms besides mt7622, we add pinctrl-1 set in mt7622 & banana pi's dts. But actually we don't use UHS-1 pin settings on mt7622. So there's no need to set vqmmc-supply to 1.8V
Hi Thanks for clarification. I will send out a v2 with only the reset. Seems this is enough. Next time please send answer also to me (not only mailinglist). regards Frank
diff --git a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts index 2f77dc40b9b8..916ca89ab8eb 100644 --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts @@ -232,10 +232,11 @@ &mmc1 { bus-width = <4>; max-frequency = <50000000>; cap-sd-highspeed; + mmc-hs200-1_8v; r_smpl = <1>; cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>; vmmc-supply = <®_3p3v>; - vqmmc-supply = <®_3p3v>; + vqmmc-supply = <®_1p8v>; assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>; assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>; }; diff --git a/arch/arm64/boot/dts/mediatek/mt7622.dtsi b/arch/arm64/boot/dts/mediatek/mt7622.dtsi index 5b9ec032ce8d..7c6d871538a6 100644 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi @@ -698,6 +698,8 @@ mmc1: mmc@11240000 { clocks = <&pericfg CLK_PERI_MSDC30_1_PD>, <&topckgen CLK_TOP_AXI_SEL>; clock-names = "source", "hclk"; + resets = <&pericfg MT7622_PERI_MSDC1_SW_RST>; + reset-names = "hrst"; status = "disabled"; };