Re: [PATCH] arm64: dts: allwinner: a523: x96qpro+: overvolting eMMC
Andre Przywara <[email protected]>
| Newsgroups | dev.linux.lists.linux-sunxi,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Organization | Arm Ltd. |
| Message-ID | <[email protected]> |
On Mon, 20 Jul 2026 23:38:32 +0200 Andre Przywara <[email protected]> wrote: Hi, > On the X96QPro+ TV box, the eMMC wasn't working properly: the chip would > be detected, but most requests failed, leaving it unusable. Some > "solutions" were circulating downstream, one "popular" one is severely > limiting the clock frequency, with a drastic performance impact. > > Instead slightly bumping the I/O voltage on PortC from the canonical > 1.8V to 1.9V seemed to do the trick: the eMMC now works and reaches the > expected 120MB/s performance. So for the records: please disregard this patch, it was more voodoo than a proper fix. As Sashiko pointed out, this slight voltage bump changes the GPIO bank withstand voltage, which turned out to be the actual culprit: the encoding was wrong, and the new voltage here now changed the value to inadvertently use the right bit setting. I will send another patch to fix this properly. Cheers, Andre > > Adjust the respective regulator voltage in the .dts to enable eMMC > operation on that device. > > Signed-off-by: Andre Przywara <[email protected]> > --- > Hi, > > I am not super happy with this patch, but it seems to be a pragmatic and > the least hacky solution I have seen. > > Cheers, > Andre > > arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts b/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts > index a96927fbdadd5..5636e95312218 100644 > --- a/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts > +++ b/arch/arm64/boot/dts/allwinner/sun55i-h728-x96qpro+.dts > @@ -194,8 +194,8 @@ reg_bldo4: bldo4 { > > reg_cldo1: cldo1 { > regulator-always-on; > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > + regulator-min-microvolt = <1900000>; > + regulator-max-microvolt = <1900000>; > regulator-name = "vcc-codec-sd"; > }; >