Add YAML devicetree binding for AWINIC AW20036/AW20052/AW20074
led driver.
Signed-off-by: Martin Kurbanov <mmkurbanov@sberdevices.ru>
---
.../bindings/leds/awinic,aw200xx.yaml | 126 ++++++++++++++++++
1 file changed, 126 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml
diff --git a/Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml b/Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml
new file mode 100644
index 000000000000..08181703e223
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml
@@ -0,0 +1,126 @@
+# 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: |
+ This controller is present on AW20036/AW20054/AW20072.
+ It is a 3x12/6x9/6x12 matrix LED programmed via
+ an I2C interface, up to 36/54/72 LEDs or 12/18/24 RGBs,
+ 3 pattern controllers for auto breathing or group dimming control.
+
+ For more product information please see the link below:
+ aw20036 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151532_5eb65894d205a.pdf
+ aw20054 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151602_5eb658b2b77cb.pdf
+ aw20072 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151754_5eb659227a145.pdf
+
+properties:
+ compatible:
+ enum:
+ - awinic,aw20036
+ - awinic,aw20054
+ - awinic,aw20072
+
+ reg:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ awinic,display-rows:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Leds matrix size
+
+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 / display-rows)
+ And the minimum output current formula:
+ IMINled = 3300 * (592 / 600.5) * (1 / display-rows)
+
+required:
+ - compatible
+ - reg
+ - "#address-cells"
+ - "#size-cells"
+ - awinic,display-rows
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: awinic,aw20036
+ then:
+ properties:
+ awinic,display-rows:
+ enum: [1, 2, 3]
+ else:
+ properties:
+ awinic,display-rows:
+ enum: [1, 2, 3, 4, 5, 6, 7]
+
+additionalProperties: false
+
+examples:
+ - |
+ #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>;
+ awinic,display-rows = <3>;
+
+ 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>;
+ };
+ };
+ };
+
+...
--
2.38.1
On 28/02/2023 22:10, Martin Kurbanov wrote: > Add YAML devicetree binding for AWINIC AW20036/AW20052/AW20074 > led driver. > > Signed-off-by: Martin Kurbanov <mmkurbanov@sberdevices.ru> > --- > .../bindings/leds/awinic,aw200xx.yaml | 126 ++++++++++++++++++ > 1 file changed, 126 insertions(+) > create mode 100644 Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml > > diff --git a/Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml b/Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml > new file mode 100644 > index 000000000000..08181703e223 > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/awinic,aw200xx.yaml > @@ -0,0 +1,126 @@ > +# 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: | > + This controller is present on AW20036/AW20054/AW20072. > + It is a 3x12/6x9/6x12 matrix LED programmed via > + an I2C interface, up to 36/54/72 LEDs or 12/18/24 RGBs, > + 3 pattern controllers for auto breathing or group dimming control. > + > + For more product information please see the link below: > + aw20036 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151532_5eb65894d205a.pdf > + aw20054 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151602_5eb658b2b77cb.pdf > + aw20072 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151754_5eb659227a145.pdf Links do not work. Error 401 > + > +properties: > + compatible: > + enum: > + - awinic,aw20036 > + - awinic,aw20054 > + - awinic,aw20072 > + > + reg: > + maxItems: 1 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + awinic,display-rows: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Leds matrix size Why do you need this property? Number of LEDs are known from the number of children. Matrix size is fixed in compatible, isn't it? > + > +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 / display-rows) > + And the minimum output current formula: > + IMINled = 3300 * (592 / 600.5) * (1 / display-rows) > + Best regards, Krzysztof
On 2023-03-02 10:48, Krzysztof Kozlowski wrote: >> + For more product information please see the link below: >> + aw20036 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151532_5eb65894d205a.pdf >> + aw20054 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151602_5eb658b2b77cb.pdf >> + aw20072 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151754_5eb659227a145.pdf > > Links do not work. Error 401 They are changed the links. I will correct in the next version. >> + awinic,display-rows: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + description: >> + Leds matrix size > > Why do you need this property? Number of LEDs are known from the number > of children. Matrix size is fixed in compatible, isn't it? Number of LEDs are known, but matrix size are programmable. Example for the aw20036, the matrix size can be 1x12, 2x12, 3x12. -- Best Regards, Kurbanov Martin
On 02/03/2023 17:02, Martin Kurbanov wrote: > On 2023-03-02 10:48, Krzysztof Kozlowski wrote: > >>> + For more product information please see the link below: >>> + aw20036 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151532_5eb65894d205a.pdf >>> + aw20054 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151602_5eb658b2b77cb.pdf >>> + aw20072 - https://www.awinic.com/Public/Uploads/uploadfile/files/20200509/20200509151754_5eb659227a145.pdf >> >> Links do not work. Error 401 > > They are changed the links. I will correct in the next version. > >>> + awinic,display-rows: >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + description: >>> + Leds matrix size >> >> Why do you need this property? Number of LEDs are known from the number >> of children. Matrix size is fixed in compatible, isn't it? > > Number of LEDs are known, but matrix size are programmable. > Example for the aw20036, the matrix size can be 1x12, 2x12, 3x12. Ah ok, makes sense. Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.