[PATCH v5 1/5] dt-bindings: leds: add TI/National Semiconductor LP5812 LED Driver

Nam Tran
2025-04-14T14:58:20Z

The LP5812 is a 4×3 RGB LED driver with an autonomous animation engine
and time-cross-multiplexing (TCM) support for up to 12 LEDs.
It supports both analog (256 levels) and PWM (8-bit) dimming,
including exponential PWM for smooth brightness control.

Signed-off-by: Nam Tran <trannamatk@gmail.com>
---
.../devicetree/bindings/leds/ti,lp5812.yaml | 119 ++++++++++++++++++
MAINTAINERS | 6 +
2 files changed, 125 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/ti,lp5812.yaml

diff --git a/Documentation/devicetree/bindings/leds/ti,lp5812.yaml b/Documentation/devicetree/bindings/leds/ti,lp5812.yaml
new file mode 100644
index 000000000000..448d6f87b586
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/ti,lp5812.yaml
@@ -0,0 +1,119 @@
+# 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/National Semiconductor LP5812 LED Driver
+
+maintainers:
+ - Nam Tran <trannamatk@gmail.com>
+
+description: |
+ The LP5812 is an I2C LED Driver that can support LED matrix 4x3.
+ 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
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+patternProperties:
+ "^led@[0-9a-b]$":
+ type: object
+ $ref: common.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ reg:
+ minimum: 0
+ maximum: 0xb
+
+ chan-name:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: LED channel name
+
+ required:
+ - reg
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/leds/common.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led-controller@1b {
+ compatible = "ti,lp5812";
+ reg = <0x1b>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led@0 {
+ reg = <0x0>;
+ chan-name = "a0";
+ };
+ led@1 {
+ reg = <0x1>;
+ chan-name = "a1";
+ };
+ led@2 {
+ reg = <0x2>;
+ chan-name = "a2";
+ };
+ led@3 {
+ reg = <0x3>;
+ chan-name = "b0";
+ };
+ led@4 {
+ reg = <0x4>;
+ chan-name = "b1";
+ };
+ led@5 {
+ reg = <0x5>;
+ chan-name = "b2";
+ };
+ led@6 {
+ reg = <0x6>;
+ chan-name = "c0";
+ };
+ led@7 {
+ reg = <0x7>;
+ chan-name = "c1";
+ };
+ led@8 {
+ reg = <0x8>;
+ chan-name = "c2";
+ };
+ led@9 {
+ reg = <0x9>;
+ chan-name = "d0";
+ };
+ led@a {
+ reg = <0xa>;
+ chan-name = "d1";
+ };
+ led@b {
+ reg = <0xb>;
+ chan-name = "d2";
+ };
+ };
+ };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index c59316109e3f..3901c04b9734 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -23934,6 +23934,12 @@ S: Supported
F: Documentation/devicetree/bindings/iio/dac/ti,dac7612.yaml
F: drivers/iio/dac/ti-dac7612.c

+TEXAS INSTRUMENTS' LP5812 LED DRIVER
+M: Nam Tran <trannamatk@gmail.com>
+L: linux-leds@vger.kernel.org
+S: Maintained
+F: Documentation/devicetree/bindings/leds/ti,lp5812.yaml
+
TEXAS INSTRUMENTS' LB8864 LED BACKLIGHT DRIVER
M: Alexander Sverdlin <alexander.sverdlin@siemens.com>
L: linux-leds@vger.kernel.org
--
2.25.1