mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 05:12:49 +00:00
94d4090b61
AW200XX controllers have the capability to declare more than 0xf LEDs,
therefore, it is necessary to accept LED names using an appropriate
regex pattern.
The register offsets can be adjusted within the specified range, with
the maximum value corresponding to the highest number of LEDs that can
be connected to the controller.
Fixes: e338a05e76
("dt-bindings: leds: Add binding for AW200xx")
Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20231125200519.1750-12-ddrokosov@salutedevices.com
Signed-off-by: Lee Jones <lee@kernel.org>
173 lines
4.1 KiB
YAML
173 lines
4.1 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/leds/awinic,aw200xx.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: AWINIC AW200XX LED
|
|
|
|
maintainers:
|
|
- Martin Kurbanov <mmkurbanov@sberdevices.ru>
|
|
|
|
description: |
|
|
It is a matrix LED driver programmed via an I2C interface. Devices have
|
|
a set of individually controlled leds and support 3 pattern controllers
|
|
for auto breathing or group dimming control. Supported devices:
|
|
- AW20036 (3x12) 36 LEDs
|
|
- AW20054 (6x9) 54 LEDs
|
|
- AW20072 (6x12) 72 LEDs
|
|
- AW20108 (9x12) 108 LEDs
|
|
|
|
For more product information please see the link below:
|
|
aw20036 - https://www.awinic.com/en/productDetail/AW20036QNR#tech-docs
|
|
aw20054 - https://www.awinic.com/en/productDetail/AW20054QNR#tech-docs
|
|
aw20072 - https://www.awinic.com/en/productDetail/AW20072QNR#tech-docs
|
|
aw20108 - https://www.awinic.com/en/productDetail/AW20108QNR#tech-docs
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- awinic,aw20036
|
|
- awinic,aw20054
|
|
- awinic,aw20072
|
|
- awinic,aw20108
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 0
|
|
|
|
enable-gpios:
|
|
maxItems: 1
|
|
|
|
patternProperties:
|
|
"^led@[0-9a-f]+$":
|
|
type: object
|
|
$ref: common.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
properties:
|
|
reg:
|
|
description:
|
|
LED number
|
|
maxItems: 1
|
|
|
|
led-max-microamp:
|
|
default: 9780
|
|
description: |
|
|
Note that a driver will take the minimum of all LED limits
|
|
since the chip has a single global setting.
|
|
The maximum output current of each LED is calculated by the
|
|
following formula:
|
|
IMAXled = 160000 * (592 / 600.5) * (1 / max-current-switch-number)
|
|
And the minimum output current formula:
|
|
IMINled = 3300 * (592 / 600.5) * (1 / max-current-switch-number)
|
|
where max-current-switch-number is determinated by led configuration
|
|
and depends on how leds are physically connected to the led driver.
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: awinic,aw20036
|
|
then:
|
|
patternProperties:
|
|
"^led@[0-9a-f]+$":
|
|
properties:
|
|
reg:
|
|
items:
|
|
minimum: 0
|
|
maximum: 36
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: awinic,aw20054
|
|
then:
|
|
patternProperties:
|
|
"^led@[0-9a-f]+$":
|
|
properties:
|
|
reg:
|
|
items:
|
|
minimum: 0
|
|
maximum: 54
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: awinic,aw20072
|
|
then:
|
|
patternProperties:
|
|
"^led@[0-9a-f]+$":
|
|
properties:
|
|
reg:
|
|
items:
|
|
minimum: 0
|
|
maximum: 72
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: awinic,aw20108
|
|
then:
|
|
patternProperties:
|
|
"^led@[0-9a-f]+$":
|
|
properties:
|
|
reg:
|
|
items:
|
|
minimum: 0
|
|
maximum: 108
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- "#address-cells"
|
|
- "#size-cells"
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/leds/common.h>
|
|
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
led-controller@3a {
|
|
compatible = "awinic,aw20036";
|
|
reg = <0x3a>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
enable-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
|
|
|
|
led@0 {
|
|
reg = <0x0>;
|
|
color = <LED_COLOR_ID_RED>;
|
|
led-max-microamp = <9780>;
|
|
};
|
|
|
|
led@1 {
|
|
reg = <0x1>;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
led-max-microamp = <9780>;
|
|
};
|
|
|
|
led@2 {
|
|
reg = <0x2>;
|
|
color = <LED_COLOR_ID_BLUE>;
|
|
led-max-microamp = <9780>;
|
|
};
|
|
};
|
|
};
|
|
|
|
...
|