[OpenWrt-Devel] [PATCH v2] ramips: mmc: Read mmc-caps from dt with mmc_of_parse
Benedikt-Alexander Mokroß
openwrt at bamkrs.de
Tue Apr 28 03:26:37 EDT 2020
The original mmc-driver for ramips used hardcoded mmc-caps for bus-width.
Further it used custom bindings for cd-polling and cd-invert that are
not conform to the standard mmc-bindings.
This patch removes the hardcoded bus-width, enables dt parsing with
mmc_of_parse and enables the use of standard mmc-bindings.
Signed-off-by: Benedikt-Alexander Mokroß <openwrt at bamkrs.de>
---
v2:
* Added bus-width = <4>; to all affected device-trees
* Reworded the patch comment for clarity
* Enabled usage of standard mmc-bindings for cd-polling and cd-invert
.../ramips/dts/mt7620a_bdcom_wap2100-sk.dts | 1 +
.../ramips/dts/mt7620a_glinet_gl-mt300a.dts | 1 +
.../ramips/dts/mt7620a_glinet_gl-mt750.dts | 1 +
.../ramips/dts/mt7620a_head-weblink_hdrm200.dts | 1 +
.../linux/ramips/dts/mt7620a_hiwifi_hc5x61.dtsi | 1 +
target/linux/ramips/dts/mt7620a_hnet_c108.dts | 1 +
.../linux/ramips/dts/mt7620a_ohyeah_oy-0001.dts | 1 +
.../linux/ramips/dts/mt7620a_planex_cs-qr10.dts | 1 +
.../ramips/dts/mt7620a_ralink_mt7620a-evb.dts | 1 +
.../dts/mt7620a_ralink_mt7620a-mt7610e-evb.dts | 1 +
.../ramips/dts/mt7620a_sanlinking_d240.dts | 1 +
target/linux/ramips/dts/mt7620a_youku_yk1.dts | 1 +
.../ramips/dts/mt7620a_zbtlink_zbt-we1026.dtsi | 1 +
.../ramips/dts/mt7620a_zbtlink_zbt-we826.dtsi | 1 +
target/linux/ramips/dts/mt7620a_zte_q7.dts | 1 +
.../linux/ramips/dts/mt7621_afoundry_ew1200.dts | 1 +
.../ramips/dts/mt7621_alfa-network_quad-e4g.dts | 1 +
.../linux/ramips/dts/mt7621_asiarf_ap7621.dtsi | 1 +
.../linux/ramips/dts/mt7621_asus_rt-acx5p.dtsi | 1 +
.../linux/ramips/dts/mt7621_d-team_pbr-m1.dts | 1 +
.../linux/ramips/dts/mt7621_firefly_firewrt.dts | 1 +
.../linux/ramips/dts/mt7621_gnubee_gb-pc1.dts | 1 +
.../linux/ramips/dts/mt7621_gnubee_gb-pc2.dts | 1 +
.../ramips/dts/mt7621_lenovo_newifi-d1.dts | 1 +
.../dts/mt7621_mediatek_ap-mt7621a-v60.dts | 1 +
.../dts/mt7621_mediatek_mt7621-eval-board.dts | 1 +
.../dts/mt7621_mikrotik_routerboard-750gr3.dts | 1 +
.../dts/mt7621_mikrotik_routerboard-m33g.dts | 1 +
target/linux/ramips/dts/mt7621_mqmaker_witi.dts | 1 +
target/linux/ramips/dts/mt7621_mtc_wr1201.dts | 1 +
.../ramips/dts/mt7621_thunder_timecloud.dts | 1 +
.../ramips/dts/mt7621_unielec_u7621-06.dtsi | 1 +
.../ramips/dts/mt7621_xzwifi_creativebox-v1.dts | 1 +
target/linux/ramips/dts/mt7621_youku_yk-l2.dts | 1 +
.../ramips/dts/mt7621_zbtlink_zbt-we1326.dts | 1 +
.../ramips/dts/mt7621_zbtlink_zbt-we3526.dts | 1 +
.../ramips/dts/mt7621_zbtlink_zbt-wg2626.dts | 1 +
.../ramips/dts/mt7621_zbtlink_zbt-wg3526.dtsi | 1 +
.../linux/ramips/dts/mt7628an_d-team_pbr-d1.dts | 3 ++-
target/linux/ramips/dts/mt7628an_duzun_dm06.dts | 1 +
.../dts/mt7628an_mediatek_linkit-smart-7688.dts | 3 ++-
.../linux/ramips/dts/mt7628an_onion_omega2.dtsi | 1 +
.../linux/ramips/dts/mt7628an_widora_neo.dtsi | 1 +
.../ramips/dts/mt7628an_wiznet_wizfi630s.dts | 3 ++-
.../ramips/dts/mt7628an_wrtnode_wrtnode2.dtsi | 1 +
.../ramips/files/drivers/mmc/host/mtk-mmc/sd.c | 17 +++++++++++------
46 files changed, 59 insertions(+), 9 deletions(-)
diff --git a/target/linux/ramips/dts/mt7620a_bdcom_wap2100-sk.dts
b/target/linux/ramips/dts/mt7620a_bdcom_wap2100-sk.dts
index 64aafd0a52..38f0b92f0f 100644
--- a/target/linux/ramips/dts/mt7620a_bdcom_wap2100-sk.dts
+++ b/target/linux/ramips/dts/mt7620a_bdcom_wap2100-sk.dts
@@ -111,6 +111,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_glinet_gl-mt300a.dts
b/target/linux/ramips/dts/mt7620a_glinet_gl-mt300a.dts
index 9a9d9f45ae..dde729eb19 100644
--- a/target/linux/ramips/dts/mt7620a_glinet_gl-mt300a.dts
+++ b/target/linux/ramips/dts/mt7620a_glinet_gl-mt300a.dts
@@ -126,6 +126,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_glinet_gl-mt750.dts
b/target/linux/ramips/dts/mt7620a_glinet_gl-mt750.dts
index 9df5f464c7..9dd802303f 100644
--- a/target/linux/ramips/dts/mt7620a_glinet_gl-mt750.dts
+++ b/target/linux/ramips/dts/mt7620a_glinet_gl-mt750.dts
@@ -121,6 +121,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_head-weblink_hdrm200.dts
b/target/linux/ramips/dts/mt7620a_head-weblink_hdrm200.dts
index fbee809893..c900288044 100644
--- a/target/linux/ramips/dts/mt7620a_head-weblink_hdrm200.dts
+++ b/target/linux/ramips/dts/mt7620a_head-weblink_hdrm200.dts
@@ -111,6 +111,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_hiwifi_hc5x61.dtsi
b/target/linux/ramips/dts/mt7620a_hiwifi_hc5x61.dtsi
index 82bc8c9957..c6846c8bf3 100644
--- a/target/linux/ramips/dts/mt7620a_hiwifi_hc5x61.dtsi
+++ b/target/linux/ramips/dts/mt7620a_hiwifi_hc5x61.dtsi
@@ -117,6 +117,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&wmac {
diff --git a/target/linux/ramips/dts/mt7620a_hnet_c108.dts
b/target/linux/ramips/dts/mt7620a_hnet_c108.dts
index 15b2a12af7..9078ea367f 100644
--- a/target/linux/ramips/dts/mt7620a_hnet_c108.dts
+++ b/target/linux/ramips/dts/mt7620a_hnet_c108.dts
@@ -154,6 +154,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_ohyeah_oy-0001.dts
b/target/linux/ramips/dts/mt7620a_ohyeah_oy-0001.dts
index b8f86fad50..bf53713987 100644
--- a/target/linux/ramips/dts/mt7620a_ohyeah_oy-0001.dts
+++ b/target/linux/ramips/dts/mt7620a_ohyeah_oy-0001.dts
@@ -117,6 +117,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_planex_cs-qr10.dts
b/target/linux/ramips/dts/mt7620a_planex_cs-qr10.dts
index 3998ea6019..96c8311ecd 100644
--- a/target/linux/ramips/dts/mt7620a_planex_cs-qr10.dts
+++ b/target/linux/ramips/dts/mt7620a_planex_cs-qr10.dts
@@ -140,6 +140,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_ralink_mt7620a-evb.dts
b/target/linux/ramips/dts/mt7620a_ralink_mt7620a-evb.dts
index 34f870906e..abcaf4932c 100644
--- a/target/linux/ramips/dts/mt7620a_ralink_mt7620a-evb.dts
+++ b/target/linux/ramips/dts/mt7620a_ralink_mt7620a-evb.dts
@@ -112,6 +112,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&pcie {
diff --git
a/target/linux/ramips/dts/mt7620a_ralink_mt7620a-mt7610e-evb.dts
b/target/linux/ramips/dts/mt7620a_ralink_mt7620a-mt7610e-evb.dts
index b4554675c7..b0fab5381e 100644
--- a/target/linux/ramips/dts/mt7620a_ralink_mt7620a-mt7610e-evb.dts
+++ b/target/linux/ramips/dts/mt7620a_ralink_mt7620a-mt7610e-evb.dts
@@ -83,6 +83,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&pcie {
diff --git a/target/linux/ramips/dts/mt7620a_sanlinking_d240.dts
b/target/linux/ramips/dts/mt7620a_sanlinking_d240.dts
index 2bbd68cf7a..162c5a7b55 100644
--- a/target/linux/ramips/dts/mt7620a_sanlinking_d240.dts
+++ b/target/linux/ramips/dts/mt7620a_sanlinking_d240.dts
@@ -156,6 +156,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
/* the pins function is already set during pinmux driver load */
/delete-property/ pinctrl-0;
};
diff --git a/target/linux/ramips/dts/mt7620a_youku_yk1.dts
b/target/linux/ramips/dts/mt7620a_youku_yk1.dts
index a95f1e9320..9ddce40d1f 100644
--- a/target/linux/ramips/dts/mt7620a_youku_yk1.dts
+++ b/target/linux/ramips/dts/mt7620a_youku_yk1.dts
@@ -129,6 +129,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026.dtsi
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026.dtsi
index 91bbd4a044..52517e009e 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026.dtsi
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026.dtsi
@@ -76,6 +76,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826.dtsi
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826.dtsi
index a2051efaad..386fc3c391 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826.dtsi
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826.dtsi
@@ -63,6 +63,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7620a_zte_q7.dts
b/target/linux/ramips/dts/mt7620a_zte_q7.dts
index 182b7db905..8ff8f8ad9c 100644
--- a/target/linux/ramips/dts/mt7620a_zte_q7.dts
+++ b/target/linux/ramips/dts/mt7620a_zte_q7.dts
@@ -107,6 +107,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&ehci {
diff --git a/target/linux/ramips/dts/mt7621_afoundry_ew1200.dts
b/target/linux/ramips/dts/mt7621_afoundry_ew1200.dts
index 97f13b0bb0..321c5d8719 100644
--- a/target/linux/ramips/dts/mt7621_afoundry_ew1200.dts
+++ b/target/linux/ramips/dts/mt7621_afoundry_ew1200.dts
@@ -49,6 +49,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_alfa-network_quad-e4g.dts
b/target/linux/ramips/dts/mt7621_alfa-network_quad-e4g.dts
index 6ac9e337fc..c70536b05c 100644
--- a/target/linux/ramips/dts/mt7621_alfa-network_quad-e4g.dts
+++ b/target/linux/ramips/dts/mt7621_alfa-network_quad-e4g.dts
@@ -204,6 +204,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_asiarf_ap7621.dtsi
b/target/linux/ramips/dts/mt7621_asiarf_ap7621.dtsi
index bd6642fe51..5cc18a4dd7 100644
--- a/target/linux/ramips/dts/mt7621_asiarf_ap7621.dtsi
+++ b/target/linux/ramips/dts/mt7621_asiarf_ap7621.dtsi
@@ -37,6 +37,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_asus_rt-acx5p.dtsi
b/target/linux/ramips/dts/mt7621_asus_rt-acx5p.dtsi
index 37056c7934..736234f0e2 100644
--- a/target/linux/ramips/dts/mt7621_asus_rt-acx5p.dtsi
+++ b/target/linux/ramips/dts/mt7621_asus_rt-acx5p.dtsi
@@ -62,6 +62,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&nand {
diff --git a/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
b/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
index 49d8648f8a..880c0cb365 100644
--- a/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
+++ b/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
@@ -103,6 +103,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_firefly_firewrt.dts
b/target/linux/ramips/dts/mt7621_firefly_firewrt.dts
index 10b33993ac..f863b316eb 100644
--- a/target/linux/ramips/dts/mt7621_firefly_firewrt.dts
+++ b/target/linux/ramips/dts/mt7621_firefly_firewrt.dts
@@ -48,6 +48,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_gnubee_gb-pc1.dts
b/target/linux/ramips/dts/mt7621_gnubee_gb-pc1.dts
index 6b1c9a8f9d..7064edf2c7 100644
--- a/target/linux/ramips/dts/mt7621_gnubee_gb-pc1.dts
+++ b/target/linux/ramips/dts/mt7621_gnubee_gb-pc1.dts
@@ -57,6 +57,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts
b/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts
index a015a5e84a..98eccf74c8 100644
--- a/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts
+++ b/target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts
@@ -67,6 +67,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
b/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
index 5654a6f196..96af204e1b 100644
--- a/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
+++ b/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
@@ -71,6 +71,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_mediatek_ap-mt7621a-v60.dts
b/target/linux/ramips/dts/mt7621_mediatek_ap-mt7621a-v60.dts
index 731eb4d8e2..1b9021242c 100644
--- a/target/linux/ramips/dts/mt7621_mediatek_ap-mt7621a-v60.dts
+++ b/target/linux/ramips/dts/mt7621_mediatek_ap-mt7621a-v60.dts
@@ -116,6 +116,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&gmac0 {
diff --git
a/target/linux/ramips/dts/mt7621_mediatek_mt7621-eval-board.dts
b/target/linux/ramips/dts/mt7621_mediatek_mt7621-eval-board.dts
index 8321caae6e..40e6755313 100644
--- a/target/linux/ramips/dts/mt7621_mediatek_mt7621-eval-board.dts
+++ b/target/linux/ramips/dts/mt7621_mediatek_mt7621-eval-board.dts
@@ -43,6 +43,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&switch0 {
diff --git
a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts
b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts
index 3f37155f24..d36378776a 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts
@@ -175,4 +175,5 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
diff --git
a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts
b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts
index 19e1a71e99..bf1f397854 100644
--- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts
+++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-m33g.dts
@@ -197,6 +197,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&i2c {
diff --git a/target/linux/ramips/dts/mt7621_mqmaker_witi.dts
b/target/linux/ramips/dts/mt7621_mqmaker_witi.dts
index 87421486a9..0b8572816f 100644
--- a/target/linux/ramips/dts/mt7621_mqmaker_witi.dts
+++ b/target/linux/ramips/dts/mt7621_mqmaker_witi.dts
@@ -38,6 +38,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_mtc_wr1201.dts
b/target/linux/ramips/dts/mt7621_mtc_wr1201.dts
index 66b4f92852..851b369011 100644
--- a/target/linux/ramips/dts/mt7621_mtc_wr1201.dts
+++ b/target/linux/ramips/dts/mt7621_mtc_wr1201.dts
@@ -141,6 +141,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&pcie {
diff --git a/target/linux/ramips/dts/mt7621_thunder_timecloud.dts
b/target/linux/ramips/dts/mt7621_thunder_timecloud.dts
index 60eea877b1..21420a5b73 100644
--- a/target/linux/ramips/dts/mt7621_thunder_timecloud.dts
+++ b/target/linux/ramips/dts/mt7621_thunder_timecloud.dts
@@ -53,6 +53,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi
b/target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi
index ca0e2d7dcd..e5786ff18f 100644
--- a/target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi
+++ b/target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi
@@ -98,6 +98,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&pcie {
diff --git a/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
b/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
index 0db8b34474..e32776fee0 100644
--- a/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
+++ b/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
@@ -130,6 +130,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&pcie {
diff --git a/target/linux/ramips/dts/mt7621_youku_yk-l2.dts
b/target/linux/ramips/dts/mt7621_youku_yk-l2.dts
index e43ee8451a..0f5f49fa90 100644
--- a/target/linux/ramips/dts/mt7621_youku_yk-l2.dts
+++ b/target/linux/ramips/dts/mt7621_youku_yk-l2.dts
@@ -62,6 +62,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&xhci {
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
index f91f0d77d4..aa3990b269 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
@@ -131,4 +131,5 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
index 1f43f2a2dc..4e50db68c9 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
@@ -32,6 +32,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
index 5e8e250432..1f2e7ff51a 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
@@ -48,6 +48,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg3526.dtsi
b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg3526.dtsi
index 8c9d31325a..f1d9028cf0 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg3526.dtsi
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg3526.dtsi
@@ -46,6 +46,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7628an_d-team_pbr-d1.dts
b/target/linux/ramips/dts/mt7628an_d-team_pbr-d1.dts
index d406bac0e8..1c2ec916f0 100644
--- a/target/linux/ramips/dts/mt7628an_d-team_pbr-d1.dts
+++ b/target/linux/ramips/dts/mt7628an_d-team_pbr-d1.dts
@@ -159,5 +159,6 @@
&sdhci {
status = "okay";
- mediatek,cd-high;
+ bus-width = <4>;
+ cd-inverted;
};
diff --git a/target/linux/ramips/dts/mt7628an_duzun_dm06.dts
b/target/linux/ramips/dts/mt7628an_duzun_dm06.dts
index 4164bae184..4d08c8a849 100644
--- a/target/linux/ramips/dts/mt7628an_duzun_dm06.dts
+++ b/target/linux/ramips/dts/mt7628an_duzun_dm06.dts
@@ -85,6 +85,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&gdma {
diff --git
a/target/linux/ramips/dts/mt7628an_mediatek_linkit-smart-7688.dts
b/target/linux/ramips/dts/mt7628an_mediatek_linkit-smart-7688.dts
index ebc4c3d6f9..b4a5fb0793 100644
--- a/target/linux/ramips/dts/mt7628an_mediatek_linkit-smart-7688.dts
+++ b/target/linux/ramips/dts/mt7628an_mediatek_linkit-smart-7688.dts
@@ -154,7 +154,8 @@
&sdhci {
status = "okay";
- mediatek,cd-high;
+ bus-width = <4>;
+ cd-inverted;
};
&wmac {
diff --git a/target/linux/ramips/dts/mt7628an_onion_omega2.dtsi
b/target/linux/ramips/dts/mt7628an_onion_omega2.dtsi
index f8fad35c05..ed582e5c46 100644
--- a/target/linux/ramips/dts/mt7628an_onion_omega2.dtsi
+++ b/target/linux/ramips/dts/mt7628an_onion_omega2.dtsi
@@ -156,6 +156,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
mediatek,cd-low;
};
diff --git a/target/linux/ramips/dts/mt7628an_widora_neo.dtsi
b/target/linux/ramips/dts/mt7628an_widora_neo.dtsi
index 252ffd71f5..4bd548f386 100644
--- a/target/linux/ramips/dts/mt7628an_widora_neo.dtsi
+++ b/target/linux/ramips/dts/mt7628an_widora_neo.dtsi
@@ -110,6 +110,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
mediatek,cd-low;
};
diff --git a/target/linux/ramips/dts/mt7628an_wiznet_wizfi630s.dts
b/target/linux/ramips/dts/mt7628an_wiznet_wizfi630s.dts
index 0aeff750e9..ddea3cb700 100644
--- a/target/linux/ramips/dts/mt7628an_wiznet_wizfi630s.dts
+++ b/target/linux/ramips/dts/mt7628an_wiznet_wizfi630s.dts
@@ -176,7 +176,8 @@
&sdhci {
status = "okay";
- mediatek,cd-high;
+ bus-width = <4>;
+ cd-inverted;
};
&wmac {
diff --git a/target/linux/ramips/dts/mt7628an_wrtnode_wrtnode2.dtsi
b/target/linux/ramips/dts/mt7628an_wrtnode_wrtnode2.dtsi
index 882a8838dd..c7788e9964 100644
--- a/target/linux/ramips/dts/mt7628an_wrtnode_wrtnode2.dtsi
+++ b/target/linux/ramips/dts/mt7628an_wrtnode_wrtnode2.dtsi
@@ -79,6 +79,7 @@
&sdhci {
status = "okay";
+ bus-width = <4>;
};
&pcie {
diff --git a/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
b/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
index 8cbc87da3a..9094270818 100644
--- a/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
+++ b/target/linux/ramips/files/drivers/mmc/host/mtk-mmc/sd.c
@@ -2235,15 +2235,22 @@ static int msdc_drv_probe(struct platform_device
*pdev)
mmc->f_max = HOST_MAX_MCLK;
mmc->ocr_avail = MSDC_OCR_AVAIL;
- mmc->caps = MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED;
+ ret = mmc_of_parse(mmc);
+ if (ret)
+ goto release;
- //TODO: read this as bus-width from dt (via mmc_of_parse)
- mmc->caps |= MMC_CAP_4_BIT_DATA;
+ if (mmc->f_max > HOST_MAX_MCLK) {
+ dev_warn(mmc->parent,
+ "\"max-frequency\" property greater than max-frequency of %d, using
%d.\n",
+ HOST_MAX_MCLK, HOST_MAX_MCLK);
+ mmc->f_max = HOST_MAX_MCLK;
+ }
- cd_active_low = !of_property_read_bool(pdev->dev.of_node,
"mediatek,cd-high");
+ /* It seems these caps must be set regardles of the dt */
+ mmc->caps = MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED;
- if (of_property_read_bool(pdev->dev.of_node, "mediatek,cd-poll"))
- mmc->caps |= MMC_CAP_NEEDS_POLL;
+ /* Get cd_active_low from caps2's MMC_CAP2_CD_ACTIVE_HIGH flag */
+ cd_active_low = (host->caps2 & MMC_CAP2_CD_ACTIVE_HIGH) == 0;
/* MMC core transfer sizes tunable parameters */
mmc->max_segs = MAX_HW_SGMTS;
--
2.20.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list