-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
Describe the bug
The green ACT LED (controlled via AON_GPIO_09) on the Raspberry Pi 5 exhibits non-standard and unexpected behavior with common triggers and direct sysfs brightness control with Kernel 6.12.20+rpt-rpi-2712 (and potentially other recent versions).
Issue 1: mmc0 Trigger Idle State
- When
dtparam=act_led_trigger=mmc0is set, the trigger correctly becomes active ([mmc0]). - The LED correctly blinks during SD card activity.
- Problem: The LED remains solid green when the SD card is idle, contrary to the
default-state = "off"set in the device tree.
Issue 2: cpu Trigger State
- When
dtparam=act_led_trigger=cpuis set, the trigger correctly becomes active ([cpu]). - Problem: The LED remains permanently off, even under high CPU load (e.g.,
sha256sum /dev/zero).
Issue 3: Manual Brightness Control Inverted
- When the trigger is set to
none([none]confirmed active), direct control via sysfs shows inverted logic:echo 1 > /sys/class/leds/ACT/brightnessturns the LED OFF.
echo 0 > /sys/class/leds/ACT/brightnessturns the LED ON.
Conclusion/Hypothesis:
The inverted manual brightness control strongly suggests a driver bug related to handling the GPIO_ACTIVE_LOW property for AON_GPIO_09. This likely causes the incorrect idle state for mmc0 (brightness 0 interpreted as ON) and the lack of output for cpu (brightness 1 interpreted as OFF).
Steps to reproduce the behaviour
- Use a Raspberry Pi 5 with a recent Raspberry Pi OS (Debian Bookworm base) and Kernel (e.g., 6.12.20+rpt-rpi-2712).
- Edit
/boot/firmware/config.txtand ensure any existingdtparam=act_led_...lines are commented out. - Test
mmc0: Adddtparam=act_led_trigger=mmc0. Save and reboot. Observe LED is solid green when idle. Check withcat /sys/class/leds/ACT/trigger(shows[mmc0]). - Test
cpu: Change the line todtparam=act_led_trigger=cpu. Save and reboot. Observe LED is permanently off, even under load (e.g.,sha256sum /dev/zero). Check withcat /sys/class/leds/ACT/trigger(shows[cpu]). - Test Manual Control: Change the line to
dtparam=act_led_trigger=none. Save and reboot. Confirm trigger is[none]withcat /sys/class/leds/ACT/trigger. Then execute:echo 1 | sudo tee /sys/class/leds/ACT/brightness-> Observe LED turns OFF.echo 0 | sudo tee /sys/class/leds/ACT/brightness-> Observe LED turns ON.
Relevant Device Tree Snippet from bcm2712-rpi-5-b.dts (rpi-6.12.y branch):
leds: leds {
compatible = "gpio-leds";
// [...] PWR LED definition omitted
led_act: led-act {
label = "ACT";
gpios = <&gio_aon 9 GPIO_ACTIVE_LOW>;
default-state = "off";
linux,default-trigger = "mmc0";
};
};
Device (s)
Raspberry Pi 5
System
cat /etc/rpi-issue
Raspberry Pi reference 2024-11-19
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 891df1e21ed2b6099a2e6a13e26c91dea44b34d4, stage2
vcgencmd version
2024/09/23 14:02:56
Copyright (c) 2012 Broadcom
version 26826259 (release) (embedded)
uname -a
Linux raspberrypi 6.12.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.20-1+rpt1~bpo12+1 (2025-03-19) aarch64 GNU/Linux