Hello Per request I removed the ops structure. But there is a potential need for some device drivers to have a call back that sets the intesity of the LED color without modifying the hardware register. The hardware registers are only updated when the brightness_set<op> is called. The need arises with the LP50xx chip series where the chip has 2 control knobs to modify the output current to the LED. In most cases drivers only have a single brightness register for a given iOUT pin. But the LP50xx has a brightness register that controls cluster brightness and individual registers to control the monochrome LED intensity. The set_color_brightness call back has been simplified in the LP50xx device driver so that it can cache the LED intensity in it's stack for a specific color as opposed to having to call back into the MC FW for the current intensity which made the driver complex. Once the set_brightness<op> is called the driver can set the brightness and then set the LED intensity registers if the driver has that ability. Dan Dan Murphy (9): leds: multicolor: Add sysfs interface definition documention: leds: Add multicolor class documentation dt: bindings: Add multicolor class dt bindings documention dt-bindings: leds: Add multicolor ID to the color ID list leds: Add multicolor ID to the color ID list leds: multicolor: Introduce a multicolor class definition dt: bindings: lp50xx: Introduce the lp50xx family of RGB drivers leds: lp50xx: Add the LP50XX family of the RGB LED driver leds: Update the lp55xx to use the multi color framework .../ABI/testing/sysfs-class-led-multicolor | 43 + .../bindings/leds/leds-class-multicolor.txt | 95 +++ .../devicetree/bindings/leds/leds-lp50xx.txt | 148 ++++ Documentation/leds/index.rst | 1 + Documentation/leds/leds-class-multicolor.rst | 91 ++ drivers/leds/Kconfig | 17 + drivers/leds/Makefile | 2 + drivers/leds/led-class-multicolor.c | 316 +++++++ drivers/leds/led-core.c | 1 + drivers/leds/leds-lp50xx.c | 785 ++++++++++++++++++ drivers/leds/leds-lp5523.c | 13 + drivers/leds/leds-lp55xx-common.c | 131 ++- drivers/leds/leds-lp55xx-common.h | 9 + include/dt-bindings/leds/common.h | 3 +- include/linux/led-class-multicolor.h | 76 ++ include/linux/platform_data/leds-lp55xx.h | 6 + 16 files changed, 1714 insertions(+), 23 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-class-led-multicolor create mode 100644 Documentation/devicetree/bindings/leds/leds-class-multicolor.txt create mode 100644 Documentation/devicetree/bindings/leds/leds-lp50xx.txt create mode 100644 Documentation/leds/leds-class-multicolor.rst create mode 100644 drivers/leds/led-class-multicolor.c create mode 100644 drivers/leds/leds-lp50xx.c create mode 100644 include/linux/led-class-multicolor.h -- 2.22.0.214.g8dca754b1e