Skip to content

Commit d7ab0c3

Browse files
Tonymac32ayufan
authored andcommitted
tonymac32: rk3328: sdmmc0 drive level change to 8mA (torvalds#38)
SD Instability has been a commonly reported issue on RK3328 boards, the Rockchip default drive level of 4mA is unable to reliably drive any significant capacitive load (even within SD card specification) at 50MHz high speed, especially with 3.3V signalling. Further testing may indicate a need for 12mA, but for now this patch has been shown to resolve SD boot and stability issues on several boards, including Rock64 and a Renegade. The issue spanning multiple boards is why I didn't simply override the settings in the board specific DTS. It may also be important to note the ASUS Tinker Board (RK3288) uses 8mA drive levels. This may be worth evaluating for RK3399 as well.
1 parent f17623f commit d7ab0c3

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

arch/arm64/boot/dts/rockchip/rk3328.dtsi

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,10 +1238,10 @@
12381238
emmc: dwmmc@ff520000 {
12391239
compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
12401240
reg = <0x0 0xff520000 0x0 0x4000>;
1241-
clock-freq-min-max = <400000 150000000>;
1241+
max-frequency = <150000000>;
12421242
clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
12431243
<&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
1244-
clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
1244+
clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
12451245
fifo-depth = <0x100>;
12461246
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
12471247
status = "disabled";
@@ -2122,35 +2122,35 @@
21222122
sdmmc0 {
21232123
sdmmc0_clk: sdmmc0-clk {
21242124
rockchip,pins =
2125-
<1 RK_PA6 RK_FUNC_1 &pcfg_pull_none_4ma>;
2125+
<1 RK_PA6 RK_FUNC_1 &pcfg_pull_none_8ma>;
21262126
};
21272127

21282128
sdmmc0_cmd: sdmmc0-cmd {
21292129
rockchip,pins =
2130-
<1 RK_PA4 RK_FUNC_1 &pcfg_pull_up_4ma>;
2130+
<1 RK_PA4 RK_FUNC_1 &pcfg_pull_up_8ma>;
21312131
};
21322132

21332133
sdmmc0_dectn: sdmmc0-dectn {
21342134
rockchip,pins =
2135-
<1 RK_PA5 RK_FUNC_1 &pcfg_pull_up_4ma>;
2135+
<1 RK_PA5 RK_FUNC_1 &pcfg_pull_up_8ma>;
21362136
};
21372137

21382138
sdmmc0_wrprt: sdmmc0-wrprt {
21392139
rockchip,pins =
2140-
<1 RK_PA7 RK_FUNC_1 &pcfg_pull_up_4ma>;
2140+
<1 RK_PA7 RK_FUNC_1 &pcfg_pull_up_8ma>;
21412141
};
21422142

21432143
sdmmc0_bus1: sdmmc0-bus1 {
21442144
rockchip,pins =
2145-
<1 RK_PA0 RK_FUNC_1 &pcfg_pull_up_4ma>;
2145+
<1 RK_PA0 RK_FUNC_1 &pcfg_pull_up_8ma>;
21462146
};
21472147

21482148
sdmmc0_bus4: sdmmc0-bus4 {
21492149
rockchip,pins =
2150-
<1 RK_PA0 RK_FUNC_1 &pcfg_pull_up_4ma>,
2151-
<1 RK_PA1 RK_FUNC_1 &pcfg_pull_up_4ma>,
2152-
<1 RK_PA2 RK_FUNC_1 &pcfg_pull_up_4ma>,
2153-
<1 RK_PA3 RK_FUNC_1 &pcfg_pull_up_4ma>;
2150+
<1 RK_PA0 RK_FUNC_1 &pcfg_pull_up_8ma>,
2151+
<1 RK_PA1 RK_FUNC_1 &pcfg_pull_up_8ma>,
2152+
<1 RK_PA2 RK_FUNC_1 &pcfg_pull_up_8ma>,
2153+
<1 RK_PA3 RK_FUNC_1 &pcfg_pull_up_8ma>;
21542154
};
21552155

21562156
sdmmc0_gpio: sdmmc0-gpio {

0 commit comments

Comments
 (0)