Message ID | 20230102081021.138648-1-jjhiblot@traphandler.com |
---|---|
Headers | show |
Series | Add a multicolor LED driver for groups of monochromatic LEDs | expand |
On Mon, 02 Jan 2023, Jean-Jacques Hiblot wrote: > Some HW design implement multicolor LEDs with several monochromatic LEDs. > Grouping the monochromatic LEDs allows to configure them in sync and use > the triggers. > The PWM multicolor LED driver implements such grouping but only for > PWM-based LEDs. As this feature is also desirable for the other types of > LEDs, this series implements it for any kind of LED device. Another for Pavel. > changes v6->v7: > - in led_mcg_probe() increment the counter at the end of the loop for > clarity. > > changes v5->v6: > - restore sysfs access to the leds when the device is removed > > changes v4->v5: > - Use "depends on COMPILE_TEST || OF" in Kconfig to indicate that OF > is a functional requirement, not just a requirement for the > compilation. > - in led_mcg_probe() check if devm_of_led_get_optional() returns an > error before testing for the end of the list. > - use sysfs_emit() instead of sprintf() in color_show(). > - some grammar fixes in the comments and the commit logs. > > changes v2->v3, only minor changes: > - rephrased the Kconfig descritpion > - make the sysfs interface of underlying LEDs read-only only if the probe > is successful. > - sanitize the header files > - removed the useless call to dev_set_drvdata() > - use dev_fwnode() to get the fwnode to the device. > > changes v1->v2: > - Followed Rob Herrings's suggestion to make the dt binding much simpler. > - Added a patch to store the color property of a LED in its class > structure (struct led_classdev). > > > Jean-Jacques Hiblot (6): > devres: provide devm_krealloc_array() > leds: class: simplify the implementation of devm_of_led_get() > leds: provide devm_of_led_get_optional() > leds: class: store the color index in struct led_classdev > dt-bindings: leds: Add binding for a multicolor group of LEDs > leds: Add a multicolor LED driver to group monochromatic LEDs > > Documentation/ABI/testing/sysfs-class-led | 9 + > .../bindings/leds/leds-group-multicolor.yaml | 64 +++++++ > drivers/leds/led-class.c | 65 +++++-- > drivers/leds/rgb/Kconfig | 10 ++ > drivers/leds/rgb/Makefile | 1 + > drivers/leds/rgb/leds-group-multicolor.c | 166 ++++++++++++++++++ > include/linux/device.h | 13 ++ > include/linux/leds.h | 3 + > 8 files changed, 317 insertions(+), 14 deletions(-) > create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml > create mode 100644 drivers/leds/rgb/leds-group-multicolor.c > > -- > 2.25.1 >
Hi Pavel, Would you be kind enough and have a look at this series ? It may not be the prettiest series of all, but the feature make senses as it provides an atomic way of handling color leds from user space. Any feedback would be appreciated. Thanks, Jean-Jacques On 09/01/2023 18:19, Lee Jones wrote: > On Mon, 02 Jan 2023, Jean-Jacques Hiblot wrote: >> Some HW design implement multicolor LEDs with several monochromatic LEDs. >> Grouping the monochromatic LEDs allows to configure them in sync and use >> the triggers. >> The PWM multicolor LED driver implements such grouping but only for >> PWM-based LEDs. As this feature is also desirable for the other types of >> LEDs, this series implements it for any kind of LED device. > Another for Pavel. > >> changes v6->v7: >> - in led_mcg_probe() increment the counter at the end of the loop for >> clarity. >> >> changes v5->v6: >> - restore sysfs access to the leds when the device is removed >> >> changes v4->v5: >> - Use "depends on COMPILE_TEST || OF" in Kconfig to indicate that OF >> is a functional requirement, not just a requirement for the >> compilation. >> - in led_mcg_probe() check if devm_of_led_get_optional() returns an >> error before testing for the end of the list. >> - use sysfs_emit() instead of sprintf() in color_show(). >> - some grammar fixes in the comments and the commit logs. >> >> changes v2->v3, only minor changes: >> - rephrased the Kconfig descritpion >> - make the sysfs interface of underlying LEDs read-only only if the probe >> is successful. >> - sanitize the header files >> - removed the useless call to dev_set_drvdata() >> - use dev_fwnode() to get the fwnode to the device. >> >> changes v1->v2: >> - Followed Rob Herrings's suggestion to make the dt binding much simpler. >> - Added a patch to store the color property of a LED in its class >> structure (struct led_classdev). >> >> >> Jean-Jacques Hiblot (6): >> devres: provide devm_krealloc_array() >> leds: class: simplify the implementation of devm_of_led_get() >> leds: provide devm_of_led_get_optional() >> leds: class: store the color index in struct led_classdev >> dt-bindings: leds: Add binding for a multicolor group of LEDs >> leds: Add a multicolor LED driver to group monochromatic LEDs >> >> Documentation/ABI/testing/sysfs-class-led | 9 + >> .../bindings/leds/leds-group-multicolor.yaml | 64 +++++++ >> drivers/leds/led-class.c | 65 +++++-- >> drivers/leds/rgb/Kconfig | 10 ++ >> drivers/leds/rgb/Makefile | 1 + >> drivers/leds/rgb/leds-group-multicolor.c | 166 ++++++++++++++++++ >> include/linux/device.h | 13 ++ >> include/linux/leds.h | 3 + >> 8 files changed, 317 insertions(+), 14 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml >> create mode 100644 drivers/leds/rgb/leds-group-multicolor.c >> >> -- >> 2.25.1 >>
On Mon, 20 Feb 2023, Jean-Jacques Hiblot wrote: > Hi Pavel, > > Would you be kind enough and have a look at this series ? It may not be the > prettiest series of all, but the feature make senses as it provides an > atomic way of handling color leds from user space. > > Any feedback would be appreciated. If Pavel doesn't get back to you soon, I'll do my best to take a look through. > On 09/01/2023 18:19, Lee Jones wrote: > > On Mon, 02 Jan 2023, Jean-Jacques Hiblot wrote: > > > Some HW design implement multicolor LEDs with several monochromatic LEDs. > > > Grouping the monochromatic LEDs allows to configure them in sync and use > > > the triggers. > > > The PWM multicolor LED driver implements such grouping but only for > > > PWM-based LEDs. As this feature is also desirable for the other types of > > > LEDs, this series implements it for any kind of LED device. > > Another for Pavel. > > > changes v6->v7: > > > - in led_mcg_probe() increment the counter at the end of the loop for > > > clarity. > > > > > > changes v5->v6: > > > - restore sysfs access to the leds when the device is removed > > > > > > changes v4->v5: > > > - Use "depends on COMPILE_TEST || OF" in Kconfig to indicate that OF > > > is a functional requirement, not just a requirement for the > > > compilation. > > > - in led_mcg_probe() check if devm_of_led_get_optional() returns an > > > error before testing for the end of the list. > > > - use sysfs_emit() instead of sprintf() in color_show(). > > > - some grammar fixes in the comments and the commit logs. > > > > > > changes v2->v3, only minor changes: > > > - rephrased the Kconfig descritpion > > > - make the sysfs interface of underlying LEDs read-only only if the probe > > > is successful. > > > - sanitize the header files > > > - removed the useless call to dev_set_drvdata() > > > - use dev_fwnode() to get the fwnode to the device. > > > > > > changes v1->v2: > > > - Followed Rob Herrings's suggestion to make the dt binding much simpler. > > > - Added a patch to store the color property of a LED in its class > > > structure (struct led_classdev). > > > > > > > > > Jean-Jacques Hiblot (6): > > > devres: provide devm_krealloc_array() > > > leds: class: simplify the implementation of devm_of_led_get() > > > leds: provide devm_of_led_get_optional() > > > leds: class: store the color index in struct led_classdev > > > dt-bindings: leds: Add binding for a multicolor group of LEDs > > > leds: Add a multicolor LED driver to group monochromatic LEDs > > > > > > Documentation/ABI/testing/sysfs-class-led | 9 + > > > .../bindings/leds/leds-group-multicolor.yaml | 64 +++++++ > > > drivers/leds/led-class.c | 65 +++++-- > > > drivers/leds/rgb/Kconfig | 10 ++ > > > drivers/leds/rgb/Makefile | 1 + > > > drivers/leds/rgb/leds-group-multicolor.c | 166 ++++++++++++++++++ > > > include/linux/device.h | 13 ++ > > > include/linux/leds.h | 3 + > > > 8 files changed, 317 insertions(+), 14 deletions(-) > > > create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml > > > create mode 100644 drivers/leds/rgb/leds-group-multicolor.c > > > > > > -- > > > 2.25.1 > > >
On Mon, 02 Jan 2023, Jean-Jacques Hiblot wrote: > > Some HW design implement multicolor LEDs with several monochromatic LEDs. > Grouping the monochromatic LEDs allows to configure them in sync and use > the triggers. > The PWM multicolor LED driver implements such grouping but only for > PWM-based LEDs. As this feature is also desirable for the other types of > LEDs, this series implements it for any kind of LED device. > > changes v6->v7: > - in led_mcg_probe() increment the counter at the end of the loop for > clarity. > > changes v5->v6: > - restore sysfs access to the leds when the device is removed > > changes v4->v5: > - Use "depends on COMPILE_TEST || OF" in Kconfig to indicate that OF > is a functional requirement, not just a requirement for the > compilation. > - in led_mcg_probe() check if devm_of_led_get_optional() returns an > error before testing for the end of the list. > - use sysfs_emit() instead of sprintf() in color_show(). > - some grammar fixes in the comments and the commit logs. > > changes v2->v3, only minor changes: > - rephrased the Kconfig descritpion > - make the sysfs interface of underlying LEDs read-only only if the probe > is successful. > - sanitize the header files > - removed the useless call to dev_set_drvdata() > - use dev_fwnode() to get the fwnode to the device. > > changes v1->v2: > - Followed Rob Herrings's suggestion to make the dt binding much simpler. > - Added a patch to store the color property of a LED in its class > structure (struct led_classdev). > > > Jean-Jacques Hiblot (6): > devres: provide devm_krealloc_array() > leds: class: simplify the implementation of devm_of_led_get() > leds: provide devm_of_led_get_optional() > leds: class: store the color index in struct led_classdev > dt-bindings: leds: Add binding for a multicolor group of LEDs > leds: Add a multicolor LED driver to group monochromatic LEDs > > Documentation/ABI/testing/sysfs-class-led | 9 + > .../bindings/leds/leds-group-multicolor.yaml | 64 +++++++ > drivers/leds/led-class.c | 65 +++++-- > drivers/leds/rgb/Kconfig | 10 ++ > drivers/leds/rgb/Makefile | 1 + > drivers/leds/rgb/leds-group-multicolor.c | 166 ++++++++++++++++++ > include/linux/device.h | 13 ++ > include/linux/leds.h | 3 + > 8 files changed, 317 insertions(+), 14 deletions(-) > create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml > create mode 100644 drivers/leds/rgb/leds-group-multicolor.c Most patches are good to go. Once you've fixed up patch 6, I'll apply the set. -- Lee Jones [李琼斯]