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

Andre Przywara andre.przywara at arm.com
Tue Jul 21 15:38:36 PDT 2026


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




More information about the linux-arm-kernel mailing list