Define LEDs with mixed colors

From: hamza.farooq@xxxxxxxxxxx
Date: Wed Sep 01 2021 - 04:39:14 EST


Hello all,

I am toying with the idea of writing a multicolor LED GPIO driver. What would be the right way to define mixed color LEDs (for leds-gpio), in device tree or ACPI?
Consider the following:

leds {
compatible = "gpio-leds";
led0 {
gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_RED>;
};

led1 {
gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_GREEN>;
};
led2 {
gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW
&mcu_pio 1 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_AMBER>;
};
};

This probably won't work as "gpios" seem to be single object in gpio-leds driver code, but what can I do to achieve something similar?
It is important to define this LED in DT/ACPI in order for the user app to see it in the /sys/class/led folder, without having to write platform-specific driver.

Best,
Hamza