diff options
| author | Nam Tran <trannamatk@gmail.com> | 2025-12-21 11:19:48 +0700 |
|---|---|---|
| committer | Lee Jones <lee@kernel.org> | 2026-02-04 09:20:43 +0000 |
| commit | 2fe4df9fa931812fdfa6624944adf269db7fad96 (patch) | |
| tree | 2d89db4c9687a844013e99fea855918ae9226fd2 /Documentation | |
| parent | a18983b95a61b093847b3ec37a5ac9c29ff6257d (diff) | |
dt-bindings: leds: add TI/National Semiconductor LP5812 LED Driver
The LP5812 is a 4x3 RGB LED driver with an autonomous animation
engine and time-cross-multiplexing (TCM) support for up to 12 LEDs
or 4 RGB LEDs. It supports both analog (256 levels) and PWM (8-bit)
dimming, including exponential PWM for smooth brightness control.
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Nam Tran <trannamatk@gmail.com>
Link: https://patch.msgid.link/20251221041950.4631-2-trannamatk@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/devicetree/bindings/leds/ti,lp5812.yaml | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/leds/ti,lp5812.yaml b/Documentation/devicetree/bindings/leds/ti,lp5812.yaml new file mode 100644 index 000000000000..de34bff441c7 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/ti,lp5812.yaml @@ -0,0 +1,246 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/leds/ti,lp5812.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TI LP5812 4x3 Matrix RGB LED Driver with Autonomous Control + +maintainers: + - Nam Tran <trannamatk@gmail.com> + +description: | + The LP5812 is a 4x3 matrix RGB LED driver with I2C interface + and autonomous animation engine control. + For more product information please see the link below: + https://www.ti.com/product/LP5812#tech-docs + +properties: + compatible: + const: ti,lp5812 + + reg: + maxItems: 1 + + ti,scan-mode: + description: | + Selects the LED scan mode of the LP5812. The device supports + three modes: + - Direct-drive mode (by default if 'ti,scan-mode' is omitted) + drives up to 4 LEDs directly by internal current sinks (LED0-LED3). + - TCM-drive mode ("tcm:<n>:<order...>") drives up to 12 LEDs + (4 RGB) using 1-4 scan multiplexing. The <n> specifies the number + of scans (1-4), and <order...> defines the scan order of the outputs. + - Mix-drive mode ("mix:<n>:<direct>:<order...>") combines + direct-drive and TCM-drive outputs. The <n> specifies the number + of scans, <direct> selects the direct-drive outputs, and <order...> + defines the scan order. + $ref: /schemas/types.yaml#/definitions/string + pattern: '^(tcm|mix):[1-4](:[0-3]){1,4}$' + + vcc-supply: + description: Regulator providing power to the 'VCC' pin. + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + +patternProperties: + "^led@[0-3]$": + type: object + $ref: common.yaml# + unevaluatedProperties: false + + properties: + reg: + minimum: 0 + maximum: 3 + + required: + - reg + + "^multi-led@[4-7]$": + type: object + $ref: leds-class-multicolor.yaml# + unevaluatedProperties: false + + properties: + reg: + minimum: 4 + maximum: 7 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + patternProperties: + "^led@[4-9a-f]$": + type: object + $ref: common.yaml# + unevaluatedProperties: false + + properties: + reg: + minimum: 4 + maximum: 15 + + required: + - reg + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include <dt-bindings/leds/common.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + led-controller@1b { + #address-cells = <1>; + #size-cells = <0>; + compatible = "ti,lp5812"; + reg = <0x1b>; + ti,scan-mode = "tcm:4:0:1:2:3"; + vcc-supply = <&vdd_3v3_reg>; + + led@0 { + reg = <0x0>; + label = "LED0"; + led-max-microamp = <25500>; + }; + + led@1 { + reg = <0x1>; + label = "LED1"; + led-max-microamp = <25500>; + }; + + led@2 { + reg = <0x2>; + label = "LED2"; + led-max-microamp = <25500>; + }; + + led@3 { + reg = <0x3>; + label = "LED3"; + led-max-microamp = <25500>; + }; + + multi-led@4 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0x4>; + color = <LED_COLOR_ID_RGB>; + label = "LED_A"; + + led@4 { + reg = <0x4>; + color = <LED_COLOR_ID_GREEN>; + led-max-microamp = <25500>; + }; + + led@5 { + reg = <0x5>; + color = <LED_COLOR_ID_RED>; + led-max-microamp = <25500>; + }; + + led@6 { + reg = <0x6>; + color = <LED_COLOR_ID_BLUE>; + led-max-microamp = <25500>; + }; + }; + + multi-led@5 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0x5>; + color = <LED_COLOR_ID_RGB>; + label = "LED_B"; + + led@7 { + reg = <0x7>; + color = <LED_COLOR_ID_GREEN>; + led-max-microamp = <25500>; + }; + + led@8 { + reg = <0x8>; + color = <LED_COLOR_ID_RED>; + led-max-microamp = <25500>; + }; + + led@9 { + reg = <0x9>; + color = <LED_COLOR_ID_BLUE>; + led-max-microamp = <25500>; + }; + }; + + multi-led@6 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0x6>; + color = <LED_COLOR_ID_RGB>; + label = "LED_C"; + + led@a { + reg = <0xa>; + color = <LED_COLOR_ID_GREEN>; + led-max-microamp = <25500>; + }; + + led@b { + reg = <0xb>; + color = <LED_COLOR_ID_RED>; + led-max-microamp = <25500>; + }; + + led@c { + reg = <0xc>; + color = <LED_COLOR_ID_BLUE>; + led-max-microamp = <25500>; + }; + }; + + multi-led@7 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0x7>; + color = <LED_COLOR_ID_RGB>; + label = "LED_D"; + + led@d { + reg = <0xd>; + color = <LED_COLOR_ID_GREEN>; + led-max-microamp = <25500>; + }; + + led@e { + reg = <0xe>; + color = <LED_COLOR_ID_RED>; + led-max-microamp = <25500>; + }; + + led@f { + reg = <0xf>; + color = <LED_COLOR_ID_BLUE>; + led-max-microamp = <25500>; + }; + }; + }; + }; + +... |
