blob: fe8aaecf301081cce8f2f057dd27bdfdae8f821f [file] [log] [blame]
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/leds-lp55xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI/National Semiconductor LP55xx and LP8501 LED Drivers
maintainers:
- Jacek Anaszewski <jacek.anaszewski@gmail.com>
- Pavel Machek <pavel@ucw.cz>
description: |
Bindings for the TI/National Semiconductor LP55xx and LP8501 multi channel
LED Drivers.
For more product information please see the link below:
https://www.ti.com/lit/gpn/lp5521
https://www.ti.com/lit/gpn/lp5523
https://www.ti.com/lit/gpn/lp55231
https://www.ti.com/lit/gpn/lp5562
https://www.ti.com/lit/gpn/lp8501
properties:
compatible:
enum:
- national,lp5521
- national,lp5523
- ti,lp55231
- ti,lp5562
- ti,lp5569
- ti,lp8501
reg:
maxItems: 1
description: I2C slave address
clock-mode:
$ref: /schemas/types.yaml#/definitions/uint8
description: |
Input clock mode
enum:
- 0 # automode
- 1 # internal
- 2 # external
enable-gpios:
maxItems: 1
description: |
GPIO attached to the chip's enable pin
label: true
pwr-sel:
$ref: /schemas/types.yaml#/definitions/uint8
description: |
LP8501 specific property. Power selection for output channels.
enum:
- 0 # D1~9 are connected to VDD
- 1 # D1~6 with VDD, D7~9 with VOUT
- 2 # D1~6 with VOUT, D7~9 with VDD
- 3 # D1~9 are connected to VOUT
'#address-cells':
const: 1
'#size-cells':
const: 0
ti,charge-pump-mode:
description:
Set the operating mode of the internal charge pump as defined in
<dt-bindings/leds/leds-lp55xx.h>.
$ref: /schemas/types.yaml#/definitions/uint32
default: 3 # auto
maximum: 3
patternProperties:
'^multi-led@[0-8]$':
type: object
$ref: leds-class-multicolor.yaml#
unevaluatedProperties: false
properties:
reg:
maximum: 8
'#address-cells':
const: 1
'#size-cells':
const: 0
patternProperties:
"^led@[0-8]$":
type: object
$ref: common.yaml#
unevaluatedProperties: false
properties:
led-cur:
$ref: /schemas/types.yaml#/definitions/uint8
description: |
Current setting at each LED channel (mA x10, 0 if LED is not connected)
minimum: 0
maximum: 255
max-cur:
$ref: /schemas/types.yaml#/definitions/uint8
description: Maximum current at each LED channel.
reg:
maximum: 8
required:
- reg
"^led@[0-8]$":
type: object
$ref: common.yaml#
unevaluatedProperties: false
properties:
led-cur:
$ref: /schemas/types.yaml#/definitions/uint8
description: |
Current setting at each LED channel (mA x10, 0 if LED is not connected)
minimum: 0
maximum: 255
max-cur:
$ref: /schemas/types.yaml#/definitions/uint8
description: Maximum current at each LED channel.
reg:
description: |
Output channel for the LED. This is zero based channel identifier and
the data sheet is a one based channel identifier.
reg value to output to LED output number
enum:
- 0 # LED output D1
- 1 # LED output D2
- 2 # LED output D3
- 3 # LED output D4
- 4 # LED output D5
- 5 # LED output D6
- 6 # LED output D7
- 7 # LED output D8
- 8 # LED output D9
chan-name:
$ref: /schemas/types.yaml#/definitions/string
description: name of channel
if:
not:
properties:
compatible:
contains:
const: ti,lp8501
then:
properties:
pwr-sel: false
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/leds/common.h>
#include <dt-bindings/leds/leds-lp55xx.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
led-controller@32 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "ti,lp8501";
reg = <0x32>;
clock-mode = /bits/ 8 <2>;
pwr-sel = /bits/ 8 <3>; /* D1~9 connected to VOUT */
ti,charge-pump-mode = <LP55XX_CP_BYPASS>;
led@0 {
reg = <0>;
chan-name = "d1";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@1 {
reg = <1>;
chan-name = "d2";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@2 {
reg = <2>;
chan-name = "d3";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@3 {
reg = <3>;
chan-name = "d4";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@4 {
reg = <4>;
chan-name = "d5";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@5 {
reg = <5>;
chan-name = "d6";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@6 {
reg = <6>;
chan-name = "d7";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@7 {
reg = <7>;
chan-name = "d8";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
led@8 {
reg = <8>;
chan-name = "d9";
led-cur = /bits/ 8 <0x14>;
max-cur = /bits/ 8 <0x20>;
};
};
led-controller@33 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "national,lp5523";
reg = <0x33>;
clock-mode = /bits/ 8 <0>;
multi-led@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x2>;
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_STANDBY;
linux,default-trigger = "heartbeat";
led@0 {
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
reg = <0x0>;
color = <LED_COLOR_ID_GREEN>;
};
led@1 {
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
reg = <0x1>;
color = <LED_COLOR_ID_BLUE>;
};
led@6 {
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
reg = <0x6>;
color = <LED_COLOR_ID_RED>;
};
};
};
};
...