Linux kernels before 4.12-rc1 don't know about the AXP803 PMIC, so can't
enable the MMC driver with the current DT anymore, because that now
depends on a driver for this regulator.
To restore compatiblity with older kernels (where MMC worked fine
without explicit AXP support), restore the former fixed-regulator.
This is no technical disadvantage, as the MMC power rail is actually
VDD-SYS, which drives most of the rest of the board, so can't be turned
off anyway. To underline this, this DCDC1 rail is marked as
"regulator-always-on" in the DT.
This affects the BananaPi-M64, NanoPi-A64, Olinuxo-A64.

Signed-off-by: Andre Przywara <andre.przyw...@arm.com>
---
 arch/arm/dts/sun50i-a64-bananapi-m64.dts | 11 +++++++++--
 arch/arm/dts/sun50i-a64-nanopi-a64.dts   |  9 ++++++++-
 arch/arm/dts/sun50i-a64-olinuxino.dts    |  9 ++++++++-
 3 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/arch/arm/dts/sun50i-a64-bananapi-m64.dts 
b/arch/arm/dts/sun50i-a64-bananapi-m64.dts
index 4a8d3f83a3..e84855d633 100644
--- a/arch/arm/dts/sun50i-a64-bananapi-m64.dts
+++ b/arch/arm/dts/sun50i-a64-bananapi-m64.dts
@@ -60,6 +60,13 @@
                stdout-path = "serial0:115200n8";
        };
 
+       reg_vcc3v3: vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
@@ -99,7 +106,7 @@
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins>;
-       vmmc-supply = <&reg_dcdc1>;
+       vmmc-supply = <&reg_vcc3v3>;
        cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
        cd-inverted;
        disable-wp;
@@ -129,7 +136,7 @@
 &mmc2 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_pins>;
-       vmmc-supply = <&reg_dcdc1>;
+       vmmc-supply = <&reg_vcc3v3>;
        bus-width = <8>;
        non-removable;
        cap-mmc-hw-reset;
diff --git a/arch/arm/dts/sun50i-a64-nanopi-a64.dts 
b/arch/arm/dts/sun50i-a64-nanopi-a64.dts
index 2beef9e6cb..6dedbfe609 100644
--- a/arch/arm/dts/sun50i-a64-nanopi-a64.dts
+++ b/arch/arm/dts/sun50i-a64-nanopi-a64.dts
@@ -57,6 +57,13 @@
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       reg_vcc3v3: vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
 };
 
 &ehci0 {
@@ -81,7 +88,7 @@
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins>;
-       vmmc-supply = <&reg_dcdc1>;
+       vmmc-supply = <&reg_vcc3v3>;
        cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
        cd-inverted;
        disable-wp;
diff --git a/arch/arm/dts/sun50i-a64-olinuxino.dts 
b/arch/arm/dts/sun50i-a64-olinuxino.dts
index 338e786155..c88ec4e281 100644
--- a/arch/arm/dts/sun50i-a64-olinuxino.dts
+++ b/arch/arm/dts/sun50i-a64-olinuxino.dts
@@ -57,12 +57,19 @@
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       reg_vcc3v3: vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
 };
 
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins>;
-       vmmc-supply = <&reg_dcdc1>;
+       vmmc-supply = <&reg_vcc3v3>;
        cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
        cd-inverted;
        disable-wp;
-- 
2.14.1

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to