Commit 6b66d2ee47e28babb6fbca3206abda6d10961b36

Authored by Faiz Abbas
Committed by Tom Rini
1 parent 684af0be94

ARM: dts: am57xx: Disable voltage switching for SD card

If UHS speed modes are enabled, a compatible SD card switches down to 1.8V
during enumeration. If after this a software reboot/crash takes place and
on-chip ROM tries to enumerate the SD card, the difference in
IO voltages (host @ 3.3V and card @ 1.8V) may end up damaging the card.

The fix for this is to have support for power cycling the card in
hardware (with a PORz/soft-reset line causing a power cycle of the card).
Because the beaglebone X15 (rev A,B and C), am57xx-evms and am57xx-idks don't
have this capability, disable voltage switching for these boards.

The major effect of this is that the maximum supported speed mode is now
high speed(50 MHz) down from SDR104(200 MHz).

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>

Showing 6 changed files with 6 additions and 24 deletions Side-by-side Diff

arch/arm/dts/am571x-idk.dts
... ... @@ -102,14 +102,9 @@
102 102 };
103 103  
104 104 &mmc1 {
105   - pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
  105 + pinctrl-names = "default", "hs";
106 106 pinctrl-0 = <&mmc1_pins_default_no_clk_pu>;
107 107 pinctrl-1 = <&mmc1_pins_hs>;
108   - pinctrl-2 = <&mmc1_pins_sdr12>;
109   - pinctrl-3 = <&mmc1_pins_sdr25>;
110   - pinctrl-4 = <&mmc1_pins_sdr50>;
111   - pinctrl-5 = <&mmc1_pins_ddr50_rev20 &mmc1_iodelay_ddr50_conf>;
112   - pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
113 108 };
114 109  
115 110 &mmc2 {
arch/arm/dts/am572x-idk.dts
... ... @@ -21,14 +21,9 @@
21 21 };
22 22  
23 23 &mmc1 {
24   - pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
  24 + pinctrl-names = "default", "hs";
25 25 pinctrl-0 = <&mmc1_pins_default_no_clk_pu>;
26 26 pinctrl-1 = <&mmc1_pins_hs>;
27   - pinctrl-2 = <&mmc1_pins_sdr12>;
28   - pinctrl-3 = <&mmc1_pins_sdr25>;
29   - pinctrl-4 = <&mmc1_pins_sdr50>;
30   - pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev20_conf>;
31   - pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
32 27 };
33 28  
34 29 &mmc2 {
arch/arm/dts/am57xx-beagle-x15-common.dtsi
... ... @@ -433,6 +433,7 @@
433 433  
434 434 bus-width = <4>;
435 435 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
  436 + no-1-8-v;
436 437 };
437 438  
438 439 &mmc2 {
arch/arm/dts/am57xx-beagle-x15-revb1.dts
... ... @@ -19,14 +19,9 @@
19 19 };
20 20  
21 21 &mmc1 {
22   - pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
  22 + pinctrl-names = "default", "hs";
23 23 pinctrl-0 = <&mmc1_pins_default>;
24 24 pinctrl-1 = <&mmc1_pins_hs>;
25   - pinctrl-2 = <&mmc1_pins_sdr12>;
26   - pinctrl-3 = <&mmc1_pins_sdr25>;
27   - pinctrl-4 = <&mmc1_pins_sdr50>;
28   - pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev11_conf>;
29   - pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev11_conf>;
30 25 vmmc-supply = <&vdd_3v3>;
31 26 vqmmc-supply = <&ldo1_reg>;
32 27 };
arch/arm/dts/am57xx-beagle-x15-revc.dts
... ... @@ -19,14 +19,9 @@
19 19 };
20 20  
21 21 &mmc1 {
22   - pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
  22 + pinctrl-names = "default", "hs";
23 23 pinctrl-0 = <&mmc1_pins_default>;
24 24 pinctrl-1 = <&mmc1_pins_hs>;
25   - pinctrl-2 = <&mmc1_pins_sdr12>;
26   - pinctrl-3 = <&mmc1_pins_sdr25>;
27   - pinctrl-4 = <&mmc1_pins_sdr50>;
28   - pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev20_conf>;
29   - pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
30 25 vmmc-supply = <&vdd_3v3>;
31 26 vqmmc-supply = <&ldo1_reg>;
32 27 };
arch/arm/dts/am57xx-idk-common.dtsi
... ... @@ -405,6 +405,7 @@
405 405 vqmmc-supply = <&ldo1_reg>;
406 406 bus-width = <4>;
407 407 cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
  408 + no-1-8-v;
408 409 };
409 410  
410 411 &mmc2 {