Document device tree bindings for the LTC3220 18-channel LED driver
with I2C interface, individual brightness control, and hardware-assisted
blink/gradation features.
Signed-off-by: Edelweise Escala <edelweise.escala@analog.com>
---
.../devicetree/bindings/leds/leds-ltc3220.yaml | 120 +++++++++++++++++++++
MAINTAINERS | 7 ++
2 files changed, 127 insertions(+)
diff --git a/Documentation/devicetree/bindings/leds/leds-ltc3220.yaml b/Documentation/devicetree/bindings/leds/leds-ltc3220.yaml
new file mode 100644
index 000000000000..d0af38547b28
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-ltc3220.yaml
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/leds-ltc3220.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC3220 LED Driver
+
+maintainers:
+ - Edelweise Escala <edelweise.escala@analog.com>
+
+description:
+ The LTC3220 is a multi-display LED driver, which contains a high-efficiency,
+ low-noise charge pump to provide power to up to 18 LED current sources.
+ The LEDs are individually configurable to 64-step linear brightness control,
+ blinking and gradation control via 2-wire I2C interface.
+
+ For more product information please see the link below
+ https://www.analog.com/en/products/ltc3220.html
+
+properties:
+ compatible:
+ const: adi,ltc3220
+
+ reg:
+ maxItems: 1
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ reset-gpios:
+ maxItems: 1
+
+ adi,quick-write:
+ type: boolean
+ description:
+ Enables the hardware quick-write feature where a write to the LED 1
+ output register simultaneously updates all 18 LED output registers
+ to the same value. Only applicable when LED 1 output is physically
+ present and defined in the device tree.
+
+patternProperties:
+ '^led@([1-9]|1[0-8])$':
+ type: object
+ $ref: /schemas/leds/common.yaml#
+ unevaluatedProperties: false
+ properties:
+ reg:
+ description: Output channel for the LED (1-18 maps to LED outputs D1-D18).
+ minimum: 1
+ maximum: 18
+
+ required:
+ - reg
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/leds/common.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led-controller@1c {
+ compatible = "adi,ltc3220";
+ reg = <0x1c>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reset-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ adi,quick-write;
+
+ led@1 {
+ reg = <1>;
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <1>;
+ };
+
+ led@2 {
+ reg = <2>;
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <2>;
+ };
+
+ led@3 {
+ reg = <3>;
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <3>;
+ };
+
+ led@4 {
+ reg = <4>;
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <4>;
+ };
+
+ led@5 {
+ reg = <5>;
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <5>;
+ };
+
+ led@6 {
+ reg = <6>;
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <6>;
+ };
+ };
+ };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 327d74ca7ecb..d640c35d1f93 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14955,6 +14955,13 @@ W: https://ez.analog.com/linux-software-drivers
F: Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
F: drivers/iio/temperature/ltc2983.c
+LTC3220 LED DRIVER
+M: Edelweise Escala <edelweise.escala@analog.com>
+L: linux-leds@vger.kernel.org
+S: Maintained
+W: https://ez.analog.com/linux-software-drivers
+F: Documentation/devicetree/bindings/leds/leds-ltc3220.yaml
+
LTC4282 HARDWARE MONITOR DRIVER
M: Nuno Sa <nuno.sa@analog.com>
L: linux-hwmon@vger.kernel.org
--
2.43.0
On Mon, Jan 12, 2026 at 04:55:54PM +0800, Edelweise Escala wrote: > Document device tree bindings for the LTC3220 18-channel LED driver > with I2C interface, individual brightness control, and hardware-assisted > blink/gradation features. > > Signed-off-by: Edelweise Escala <edelweise.escala@analog.com> > --- No changelog in the cover letter, no changelog here. > .../devicetree/bindings/leds/leds-ltc3220.yaml | 120 +++++++++++++++++++++ > MAINTAINERS | 7 ++ > 2 files changed, 127 insertions(+) > > + adi,quick-write: > + type: boolean > + description: > + Enables the hardware quick-write feature where a write to the LED 1 > + output register simultaneously updates all 18 LED output registers > + to the same value. Only applicable when LED 1 output is physically > + present and defined in the device tree. I have doubts that this works fine. If you define 18 different LED nodes, each can be controlled by user-space or kernel independently, but with this property updates to LED 1 would overwrite updates to other LEDs. Isn't this then an aggregated LED, so in such case only one LED can be defined in DT (optionally with 18 led-sources)? > + > +patternProperties: > + '^led@([1-9]|1[0-8])$': > + type: object > + $ref: /schemas/leds/common.yaml# > + unevaluatedProperties: false > + properties: > + reg: > + description: Output channel for the LED (1-18 maps to LED outputs D1-D18). > + minimum: 1 > + maximum: 18 Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.