# 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 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::") drives up to 12 LEDs (4 RGB) using 1-4 scan multiplexing. The specifies the number of scans (1-4), and defines the scan order of the outputs. - Mix-drive mode ("mix:::") combines direct-drive and TCM-drive outputs. The specifies the number of scans, selects the direct-drive outputs, and 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 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 = ; label = "LED_A"; led@4 { reg = <0x4>; color = ; led-max-microamp = <25500>; }; led@5 { reg = <0x5>; color = ; led-max-microamp = <25500>; }; led@6 { reg = <0x6>; color = ; led-max-microamp = <25500>; }; }; multi-led@5 { #address-cells = <1>; #size-cells = <0>; reg = <0x5>; color = ; label = "LED_B"; led@7 { reg = <0x7>; color = ; led-max-microamp = <25500>; }; led@8 { reg = <0x8>; color = ; led-max-microamp = <25500>; }; led@9 { reg = <0x9>; color = ; led-max-microamp = <25500>; }; }; multi-led@6 { #address-cells = <1>; #size-cells = <0>; reg = <0x6>; color = ; label = "LED_C"; led@a { reg = <0xa>; color = ; led-max-microamp = <25500>; }; led@b { reg = <0xb>; color = ; led-max-microamp = <25500>; }; led@c { reg = <0xc>; color = ; led-max-microamp = <25500>; }; }; multi-led@7 { #address-cells = <1>; #size-cells = <0>; reg = <0x7>; color = ; label = "LED_D"; led@d { reg = <0xd>; color = ; led-max-microamp = <25500>; }; led@e { reg = <0xe>; color = ; led-max-microamp = <25500>; }; led@f { reg = <0xf>; color = ; led-max-microamp = <25500>; }; }; }; }; ...