| # 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>; |
| }; |
| }; |
| }; |
| }; |
| |
| ... |