mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-15 23:22:19 +00:00
This LED controller has a driver under development which is currently being reviewed by the respective kernel maintainers. They are currently on v11 which is included here. The LED1202 is a 12-channel low quiescent current LED driver with: * Supply range from 2.6 V to 5 V * 20 mA current capability per channel * 1.8 V compatible I2C control interface * 8-bit analog dimming individual control * 12-bit local PWM resolution * 8 programmable patterns If the led node is present in the controller then the channel is set to active. The output current can be adjusted separately for each channel by 8-bit analog (current sink input) and 12-bit digital (PWM) dimming control. The LED1202 implements 12 low-side current generators with independent dimming control. Internal volatile memory allows the user to store up to 8 different patterns, each pattern is a particular output configuration in terms of PWM duty-cycle (on 4096 steps). Analog dimming (on 256 steps) is per channel but common to all patterns. Each device tree LED node will have a corresponding entry in /sys/class/leds with the label name. The brightness property corresponds to the per channel analog dimming, while the patterns[1-8] to the PWM dimming control. Signed-off-by: Manuel Fombuena <fombuena@outlook.com> Link: https://github.com/openwrt/openwrt/pull/17451 Signed-off-by: Robert Marko <robimarko@gmail.com>
182 lines
5.3 KiB
Diff
182 lines
5.3 KiB
Diff
From: Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
|
|
To: Pavel Machek <pavel@ucw.cz>, Lee Jones <lee@kernel.org>,
|
|
Rob Herring <robh@kernel.org>,
|
|
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
|
Conor Dooley <conor+dt@kernel.org>,
|
|
Jonathan Corbet <corbet@lwn.net>,
|
|
Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>,
|
|
linux-leds@vger.kernel.org, devicetree@vger.kernel.org,
|
|
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org
|
|
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
|
Subject: [PATCH v11 2/3] dt-bindings: leds: Add LED1202 LED Controller
|
|
Date: Wed, 18 Dec 2024 18:33:58 +0000 [thread overview]
|
|
Message-ID: <20241218183401.41687-3-vicentiu.galanopulo@remote-tech.co.uk> (raw)
|
|
In-Reply-To: <20241218183401.41687-1-vicentiu.galanopulo@remote-tech.co.uk>
|
|
|
|
The LED1202 is a 12-channel low quiescent current LED driver with:
|
|
* Supply range from 2.6 V to 5 V
|
|
* 20 mA current capability per channel
|
|
* 1.8 V compatible I2C control interface
|
|
* 8-bit analog dimming individual control
|
|
* 12-bit local PWM resolution
|
|
* 8 programmable patterns
|
|
|
|
If the led node is present in the controller then the channel is
|
|
set to active.
|
|
|
|
Signed-off-by: Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
|
|
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
|
---
|
|
v1: https://lore.kernel.org/lkml/ZnCnnQfwuRueCIQ0@admins-Air/T/
|
|
v2: https://lore.kernel.org/all/ZniNdGgKyUMV-hjq@admins-Air/T/
|
|
v3: https://lore.kernel.org/all/ZniNdGgKyUMV-hjq@admins-Air/T/
|
|
|
|
Changes in v4:
|
|
- remove label property, use devm_led_classdev_register_ext instead
|
|
Changes in v3:
|
|
- remove active property
|
|
Changes in v2:
|
|
- renamed label to remove color from it
|
|
- add color property for each node
|
|
- add function and function-enumerator property for each node
|
|
|
|
.../devicetree/bindings/leds/st,led1202.yaml | 132 ++++++++++++++++++
|
|
1 file changed, 132 insertions(+)
|
|
create mode 100644 Documentation/devicetree/bindings/leds/st,led1202.yaml
|
|
|
|
--- /dev/null
|
|
+++ b/Documentation/devicetree/bindings/leds/st,led1202.yaml
|
|
@@ -0,0 +1,132 @@
|
|
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
+%YAML 1.2
|
|
+---
|
|
+$id: http://devicetree.org/schemas/leds/st,led1202.yaml#
|
|
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
+
|
|
+title: ST LED1202 LED controllers
|
|
+
|
|
+maintainers:
|
|
+ - Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
|
|
+
|
|
+description: |
|
|
+ The LED1202 is a 12-channel low quiescent current LED controller
|
|
+ programmable via I2C; The output current can be adjusted separately
|
|
+ for each channel by 8-bit analog and 12-bit digital dimming control.
|
|
+ Datasheet available at
|
|
+ https://www.st.com/en/power-management/led1202.html
|
|
+
|
|
+properties:
|
|
+ compatible:
|
|
+ const: st,led1202
|
|
+
|
|
+ reg:
|
|
+ maxItems: 1
|
|
+
|
|
+ "#address-cells":
|
|
+ const: 1
|
|
+
|
|
+ "#size-cells":
|
|
+ const: 0
|
|
+
|
|
+patternProperties:
|
|
+ "^led@[0-9a-f]$":
|
|
+ type: object
|
|
+ $ref: common.yaml#
|
|
+ unevaluatedProperties: false
|
|
+
|
|
+ properties:
|
|
+ reg:
|
|
+ minimum: 0
|
|
+ maximum: 11
|
|
+
|
|
+ required:
|
|
+ - reg
|
|
+
|
|
+required:
|
|
+ - compatible
|
|
+ - reg
|
|
+ - "#address-cells"
|
|
+ - "#size-cells"
|
|
+
|
|
+additionalProperties: false
|
|
+
|
|
+examples:
|
|
+ - |
|
|
+ #include <dt-bindings/leds/common.h>
|
|
+
|
|
+ i2c {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ led-controller@58 {
|
|
+ compatible = "st,led1202";
|
|
+ reg = <0x58>;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ led@0 {
|
|
+ reg = <0x0>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_RED>;
|
|
+ function-enumerator = <1>;
|
|
+ };
|
|
+
|
|
+ led@1 {
|
|
+ reg = <0x1>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
+ function-enumerator = <2>;
|
|
+ };
|
|
+
|
|
+ led@2 {
|
|
+ reg = <0x2>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_BLUE>;
|
|
+ function-enumerator = <3>;
|
|
+ };
|
|
+
|
|
+ led@3 {
|
|
+ reg = <0x3>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_RED>;
|
|
+ function-enumerator = <4>;
|
|
+ };
|
|
+
|
|
+ led@4 {
|
|
+ reg = <0x4>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
+ function-enumerator = <5>;
|
|
+ };
|
|
+
|
|
+ led@5 {
|
|
+ reg = <0x5>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_BLUE>;
|
|
+ function-enumerator = <6>;
|
|
+ };
|
|
+
|
|
+ led@6 {
|
|
+ reg = <0x6>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_RED>;
|
|
+ function-enumerator = <7>;
|
|
+ };
|
|
+
|
|
+ led@7 {
|
|
+ reg = <0x7>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_GREEN>;
|
|
+ function-enumerator = <8>;
|
|
+ };
|
|
+
|
|
+ led@8 {
|
|
+ reg = <0x8>;
|
|
+ function = LED_FUNCTION_STATUS;
|
|
+ color = <LED_COLOR_ID_BLUE>;
|
|
+ function-enumerator = <9>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+...
|