Message ID | 20250405183246.198568-2-trannamatk@gmail.com |
---|---|
State | New |
Headers | show |
Series | leds: add new LED driver for TI LP5812 | expand |
On 05/04/2025 20:32, Nam Tran wrote: > +properties: > + compatible: > + const: ti,lp5812 > + > + reg: > + maxItems: 1 > + description: > + I2C slave address > + lp5812/12- 0x1b Drop description, redundant. > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > +patternProperties: > + "^led@[0-9a-b]$": > + type: object > + $ref: common.yaml# > + unevaluatedProperties: false > + > + properties: > + reg: > + minimum: 0 > + maximum: 0xb > + > + chan-name: > + $ref: /schemas/types.yaml#/definitions/string > + description: LED channel name Isn't this existing label property? Or node name? You don't need this and instead whatever currently LED subsystem is expecting (label got discouraged so maybe there is something else now). There is no multi-led support in the device? Datasheet this can work as matrix and as direct drive of 4 LEDs, so binding looks incomplete. Not sure what you exactly miss here - check other recent devices with similar features. > + > + required: > + - reg > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/leds/common.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + led-controller@1b { > + compatible = "ti,lp5812"; > + reg = <0x1b>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + led@0 { > + reg = <0x0>; > + chan-name = "a0"; Mixed up indentation. Best regards, Krzysztof
On Sun, 6 Apr 2025, Krzysztof Kozlowski wrote: > On 05/04/2025 20:32, Nam Tran wrote: > > +properties: > > + compatible: > > + const: ti,lp5812 > > + > > + reg: > > + maxItems: 1 > > + description: > > + I2C slave address > > + lp5812/12- 0x1b > > Drop description, redundant. I will drop it. > > + > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 0 > > + > > +patternProperties: > > + "^led@[0-9a-b]$": > > + type: object > > + $ref: common.yaml# > > + unevaluatedProperties: false > > + > > + properties: > > + reg: > > + minimum: 0 > > + maximum: 0xb > > + > > + chan-name: > > + $ref: /schemas/types.yaml#/definitions/string > > + description: LED channel name > > Isn't this existing label property? Or node name? You don't need this > and instead whatever currently LED subsystem is expecting (label got > discouraged so maybe there is something else now). It isn't common led and multi-led. LP5812 is new 4x3 matrix leds on mainline. Therefore, it isn't same as existing led driver common. > There is no multi-led support in the device? Datasheet this can work as > matrix and as direct drive of 4 LEDs, so binding looks incomplete. Not > sure what you exactly miss here - check other recent devices with > similar features. My device doesn't support multi-led. Leds are controlled by the control register index directly. I will list more D0 - D3 leds. However, the maximum of leds are 12 LEDS. It depends on the operation mode that the end user selects. > > + > > + required: > > + - reg > > + > > +required: > > + - compatible > > + - reg > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/leds/common.h> > > + > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + led-controller@1b { > > + compatible = "ti,lp5812"; > > + reg = <0x1b>; > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + led@0 { > > + reg = <0x0>; > > + chan-name = "a0"; > > Mixed up indentation. I will fix the indentation. Thanks for your detailed review. Appreciate your time and feedback! Best regards, Nam Tran
diff --git a/Documentation/devicetree/bindings/leds/ti,lp5812.yaml b/Documentation/devicetree/bindings/leds/ti,lp5812.yaml new file mode 100644 index 000000000000..e492386ff127 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/ti,lp5812.yaml @@ -0,0 +1,122 @@ +# 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/National Semiconductor LP5812 LED Driver + +maintainers: + - Nam Tran <trannamatk@gmail.com> + +description: | + The LP5812 is an I2C LED Driver that can support LED matrix 4x3. + 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 + description: + I2C slave address + lp5812/12- 0x1b + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + +patternProperties: + "^led@[0-9a-b]$": + type: object + $ref: common.yaml# + unevaluatedProperties: false + + properties: + reg: + minimum: 0 + maximum: 0xb + + chan-name: + $ref: /schemas/types.yaml#/definitions/string + description: LED channel name + + required: + - reg + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include <dt-bindings/leds/common.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + led-controller@1b { + compatible = "ti,lp5812"; + reg = <0x1b>; + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0x0>; + chan-name = "a0"; + }; + led@1 { + reg = <0x1>; + chan-name = "a1"; + }; + led@2 { + reg = <0x2>; + chan-name = "a2"; + }; + led@3 { + reg = <0x3>; + chan-name = "b0"; + }; + led@4 { + reg = <0x4>; + chan-name = "b1"; + }; + led@5 { + reg = <0x5>; + chan-name = "b2"; + }; + led@6 { + reg = <0x6>; + chan-name = "c0"; + }; + led@7 { + reg = <0x7>; + chan-name = "c1"; + }; + led@8 { + reg = <0x8>; + chan-name = "c2"; + }; + led@9 { + reg = <0x9>; + chan-name = "d0"; + }; + led@a { + reg = <0xa>; + chan-name = "d1"; + }; + led@b { + reg = <0xb>; + chan-name = "d2"; + }; + }; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index 3b5fa8436987..afbc481d0311 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -23531,6 +23531,12 @@ S: Supported F: Documentation/devicetree/bindings/iio/dac/ti,dac7612.yaml F: drivers/iio/dac/ti-dac7612.c +TEXAS INSTRUMENTS' LP5812 LED DRIVER +M: Nam Tran <trannamatk@gmail.com> +L: linux-leds@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/leds/ti,lp5812.yaml + TEXAS INSTRUMENTS' LB8864 LED BACKLIGHT DRIVER M: Alexander Sverdlin <alexander.sverdlin@siemens.com> L: linux-leds@vger.kernel.org
The LP5812 is a 4×3 RGB LED driver with an autonomous animation engine and time-cross-multiplexing (TCM) support for up to 12 LEDs. It supports both analog (256 levels) and PWM (8-bit) dimming, including exponential PWM for smooth brightness control. Signed-off-by: Nam Tran <trannamatk@gmail.com> --- .../devicetree/bindings/leds/ti,lp5812.yaml | 122 ++++++++++++++++++ MAINTAINERS | 6 + 2 files changed, 128 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/ti,lp5812.yaml base-commit: 2df0c02dab829dd89360d98a8a1abaa026ef5798