Message ID | alpine.LRH.2.02.1802061650060.4974@file01.intranet.prod.int.rdu2.redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Feb 06, 2018 at 04:59:22PM -0500, Mikulas Patocka wrote: > Hi > > When the MacchiatoBIN kernel is compiled with CONFIG_PM=y, it is > frequently reporing this error (the error happens every time some I/O on > built-in eMMC happens): > > "mmc0: Switching to 3.3V signalling voltage failed" Yep, it's annoying. > The problem is that the "&ap_sdhci0" device tree node asserts that the > controller doesn't support 1.8v, but it attaches it to the fixed voltage > regulator "v_vddo_h" that only supplies 1.8V. > > Should it be attached to the 3.3V regulator instead? Or should the > "vqmmc-supply" statemet be deleted? Or should the statement "no-1-8-v" be > deleted? Removing the "no-1-8-v" statement breaks it, and the reality is that the signalling voltage is fixed at 1.8V, so the "vqmmc-supply" is correct. The problem here is that the MMC layer doesn't understand that, and always wants to do the initial probe at vqmmc=3.3V. Hence the above message. It would be nice if MMC understood the concept of a bus operating at a fixed voltage, then the "no-1-8-v" hack could be removed. Which-ever way is chosen, the result is that we end up _not_ describing the hardware, but we end up describing something suitable for the implementation, which is not how DT is supposed to work. MMC really needs to be fixed.
Index: linux-4.14.13/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts =================================================================== --- linux-4.14.13.orig/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts 2017-11-29 02:52:18.000000000 +0100 +++ linux-4.14.13/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts 2018-01-14 14:54:59.000000000 +0100 @@ -115,7 +115,6 @@ no-sdio; non-removable; status = "okay"; - vqmmc-supply = <&v_vddo_h>; }; &cpm_i2c0 {