Re: [PATCH] arm64: dts: allwinner: a523: x96qpro+: overvolting eMMC

From: Andre Przywara

Date: Tue Jul 21 2026 - 19:36:27 EST


On Mon, 20 Jul 2026 23:38:32 +0200
Andre Przywara <andre.przywara@xxxxxxx> 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 <andre.przywara@xxxxxxx>
> ---
> 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";
> };
>