[PATCH 0/2] arm64: dts: allwinner: fix Orange Pi Zero 3 PMIC interrupt routing
Michal Piekos
michal.piekos at mmpsystems.pl
Sat Mar 7 21:16:50 PST 2026
This fixes a kernel hang during boot on the Orange Pi Zero 3 caused by
incorrect interrupt routing for the AXP313A PMIC.
The PMIC interrupt on is connected to PL bank GPIO handled by the R_PIO
controller. However current dts routes the interrupts to PIO controller.
This causes the kernel to select wrong pinctrl instance when configuring
the interrupt which leads to invalid register access and a kernel hang
during boot.
The problem existed previously but became visible after the commit
01e10d0272b9 (pinctrl: sunxi: Implement gpiochip::get_direction()),
which causes gpiolib to call the gpiochip::get_direction() callback
during interrupt setup.
Patch 1 declares R_PIO node as interrupt controller so it can be used as
interrupt parrent.
Patch 2 fixes the board device tree by routing the interrupt to R_PIO
---
Michal Piekos (2):
arm64: dts: allwinner: h616: declare r_pio as interrupt controller
arm64: dts: allwinner: orangepi-zero3: fix axp313 interrupt parrent
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 2 ++
arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
---
base-commit: 4ae12d8bd9a830799db335ee661d6cbc6597f838
change-id: 20260308-rc2-boot-hang-269e8546635b
Best regards,
--
Michal Piekos <michal.piekos at mmpsystems.pl>
More information about the linux-arm-kernel
mailing list