diff --git a/projects/Allwinner/patches/u-boot/0001-Revert-arm64-dts-allwinner-h6-Use-RSB-for-AXP805-PMI.patch b/projects/Allwinner/patches/u-boot/0001-Revert-arm64-dts-allwinner-h6-Use-RSB-for-AXP805-PMI.patch new file mode 100644 index 0000000000..cb7a3a15a2 --- /dev/null +++ b/projects/Allwinner/patches/u-boot/0001-Revert-arm64-dts-allwinner-h6-Use-RSB-for-AXP805-PMI.patch @@ -0,0 +1,157 @@ +From dec5528de024e8ddd1dafd8461df3a1bdcfc4bad Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sat, 15 Mar 2025 09:57:57 +0100 +Subject: [PATCH] Revert "arm64: dts: allwinner: h6: Use RSB for AXP805 PMIC + connection" + +Hardware that uses I2C wasn't designed with high speeds in mind, so +communication with PMIC via RSB can intermittently fail. Go back to I2C +as higher speed and efficiency isn't worth the trouble. + +Signed-off-by: Jernej Skrabec +--- + arch/arm/dts/sun50i-h6-beelink-gs1.dts | 38 +++++++++++++------------- + arch/arm/dts/sun50i-h6-orangepi-3.dts | 14 +++++----- + arch/arm/dts/sun50i-h6-orangepi.dtsi | 22 +++++++-------- + 3 files changed, 37 insertions(+), 37 deletions(-) + +diff --git a/arch/arm/dts/sun50i-h6-beelink-gs1.dts b/arch/arm/dts/sun50i-h6-beelink-gs1.dts +index 529285fc34fd..8359a8ac2a33 100644 +--- a/arch/arm/dts/sun50i-h6-beelink-gs1.dts ++++ b/arch/arm/dts/sun50i-h6-beelink-gs1.dts +@@ -151,28 +151,12 @@ + vcc-pg-supply = <®_aldo1>; + }; + +-&r_ir { +- linux,rc-map-name = "rc-beelink-gs1"; ++&r_i2c { + status = "okay"; +-}; + +-&r_pio { +- /* +- * FIXME: We can't add that supply for now since it would +- * create a circular dependency between pinctrl, the regulator +- * and the RSB Bus. +- * +- * vcc-pl-supply = <®_aldo1>; +- */ +- vcc-pm-supply = <®_aldo1>; +-}; +- +-&r_rsb { +- status = "okay"; +- +- axp805: pmic@745 { ++ axp805: pmic@36 { + compatible = "x-powers,axp805", "x-powers,axp806"; +- reg = <0x745>; ++ reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; +@@ -290,6 +274,22 @@ + }; + }; + ++&r_ir { ++ linux,rc-map-name = "rc-beelink-gs1"; ++ status = "okay"; ++}; ++ ++&r_pio { ++ /* ++ * PL0 and PL1 are used for PMIC I2C ++ * don't enable the pl-supply else ++ * it will fail at boot ++ * ++ * vcc-pl-supply = <®_aldo1>; ++ */ ++ vcc-pm-supply = <®_aldo1>; ++}; ++ + &spdif { + pinctrl-names = "default"; + pinctrl-0 = <&spdif_tx_pin>; +diff --git a/arch/arm/dts/sun50i-h6-orangepi-3.dts b/arch/arm/dts/sun50i-h6-orangepi-3.dts +index bdcec466246f..f920f8f0a4dd 100644 +--- a/arch/arm/dts/sun50i-h6-orangepi-3.dts ++++ b/arch/arm/dts/sun50i-h6-orangepi-3.dts +@@ -175,16 +175,12 @@ + vcc-pg-supply = <®_vcc_wifi_io>; + }; + +-&r_ir { ++&r_i2c { + status = "okay"; +-}; + +-&r_rsb { +- status = "okay"; +- +- axp805: pmic@745 { ++ axp805: pmic@36 { + compatible = "x-powers,axp805", "x-powers,axp806"; +- reg = <0x745>; ++ reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; +@@ -295,6 +291,10 @@ + }; + }; + ++&r_ir { ++ status = "okay"; ++}; ++ + &rtc { + clocks = <&ext_osc32k>; + }; +diff --git a/arch/arm/dts/sun50i-h6-orangepi.dtsi b/arch/arm/dts/sun50i-h6-orangepi.dtsi +index 4403769fc36e..6846797a8afd 100644 +--- a/arch/arm/dts/sun50i-h6-orangepi.dtsi ++++ b/arch/arm/dts/sun50i-h6-orangepi.dtsi +@@ -112,20 +112,12 @@ + vcc-pg-supply = <®_aldo1>; + }; + +-&r_ir { ++&r_i2c { + status = "okay"; +-}; + +-&r_pio { +- vcc-pm-supply = <®_bldo3>; +-}; +- +-&r_rsb { +- status = "okay"; +- +- axp805: pmic@745 { ++ axp805: pmic@36 { + compatible = "x-powers,axp805", "x-powers,axp806"; +- reg = <0x745>; ++ reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; +@@ -240,6 +232,14 @@ + }; + }; + ++&r_ir { ++ status = "okay"; ++}; ++ ++&r_pio { ++ vcc-pm-supply = <®_bldo3>; ++}; ++ + &rtc { + clocks = <&ext_osc32k>; + }; +-- +2.48.1 +