| From: |
| sven-AT-svenschwermer.de |
| To: |
| linux-leds-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-pwm-AT-vger.kernel.org |
| Subject: |
| [RFC PATCH v2 0/2] Multicolor PWM LED support |
| Date: |
| Tue, 25 Jan 2022 16:12:24 +0100 |
| Message-ID: |
| <20220125151226.31049-1-sven@svenschwermer.de> |
| Cc: |
| Sven Schwermer <sven.schwermer-AT-disruptive-technologies.com>, pavel-AT-ucw.cz, dmurphy-AT-ti.com, robh+dt-AT-kernel.org, thierry.reding-AT-gmail.com, u.kleine-koenig-AT-pengutronix.de, lee.jones-AT-linaro.org, post-AT-lespocky.de |
| Archive-link: |
| Article |
From: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Hi,
As previously discussed [1] on the linux-leds list I am missing
multicolor PWM LED support. In the mean time I have put together a
working prototype for such a driver. This is my first Linux driver
so I'm hoping for some feedback. Here are some questions that came up
while putting this thing together:
1. Currently, the max-brightness property is expected as a property to
the multi-led node. That seems consistent with the existing
multicolor class code, but I'm wondering whether it would make
sense to have a max-brigthness for the individual LEDs as well?
2. The current multi-led node definition calls for a node index which
would in turn require the reg property to be set within the node.
In this context, that doesn't seem to make sense. Should this
requirement be lifted from leds-class-multicolor.yaml?
3. I'm not currently reusing any leds-pwm code because there aren't
too many overlaps. Does anyone have suggestions what could be
factored out into a common source file?
I would appreciate if anyone would test this code. It runs on my
i.MX6ULL-based hardware.
Best regards,
Sven
[1]: https://www.spinics.net/lists/linux-leds/msg19988.html
Sven Schwermer (2):
dt-bindings: leds: Add multicolor PWM LED bindings
leds: Add PWM multicolor driver
.../bindings/leds/leds-pwm-multicolor.yaml | 76 ++++++++
drivers/leds/Kconfig | 8 +
drivers/leds/Makefile | 1 +
drivers/leds/leds-pwm-multicolor.c | 184 ++++++++++++++++++
4 files changed, 269 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml
create mode 100644 drivers/leds/leds-pwm-multicolor.c
Interdiff against v1:
diff --git a/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml
index 8552a5498bdd..b82b26f2e140 100644
--- a/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml
@@ -14,7 +14,8 @@ description: |
LED using the multicolor LED class.
properties:
- compatible: pwm-leds-multicolor
+ compatible:
+ const: pwm-leds-multicolor
patternProperties:
'^multi-led@[0-9a-f]$':
@@ -34,10 +35,12 @@ patternProperties:
color:
$ref: common.yaml#/properties/color
+ required:
+ - pwms
+ - color
+
required:
- compatible
- - pwms
- - color
additionalProperties: false
--
2.35.0