Maybe the led path should be added to the deviceinfo as an array since there isn't realy a naming standard for RGB leds (But they are working on a RGB led interface: https://patchwork.kernel.org/patch/8470681/).
I don't think the python code can handle multiline arrays just yet in deviceinfo files (but we could add that).
Anyway, how about storing the names of the LED files, assuming, that they are all under /sys/class/leds/? That would be way shorter:
deviceinfo_status_led = "lp5523:r lp5523:g lp5523:b"
only led names would work. But I found out that some led controllers need more than the brightness setting to change the value. For exampe:
Simply set the brightness, then set on_off_ms, then trigger via rgb_start. Note that two transactions will need different numbers to be sent to rgb_start
the samsung i9070 doesn't even have a notification led, but as an alternative we can use the button backlight:
/sys/class/leds/button-backlight/brightness
In my titan device I can control the white one but however I'm still unable to switch on the RGB led. So I guess we could start with the white one might work for everyone just by echoing values to brightness
These are my led devices:
# ls -F /sys/class/leds/lcd-backlight@led:flash_0@led:flash_torch@lm3630a-backlight@mmc0::@mmc1::@rgb@white@
rgb:
localhost:/sys/class/leds# ls -F rgb/brightnesscontroldevice@max_brightnesspower/subsystem@triggeruevent
Notice the control interface. I can read and write to it but the led is always off. I've also played a bit with triggers but still, nothing:
localhost:/sys/class/leds# ls -F white/brightnessdevice@max_brightnesspower/subsystem@triggeruevent
With the white led, I can also set a specific trigger and the led will switch on after some time (any idea how and how often is the trigger value checked?)
Since deviceinfo is now available in initramfs, we can try @ollieparanoid's apporach of defining the led names in the file, e.g.: deviceinfo_status_led = "lp5523:r lp5523:g lp5523:b".