lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3fe2eb05-f45d-4910-a9e5-8472c5c7f43f@gmail.com>
Date: Tue, 6 Jan 2026 13:03:18 +0100
From: Jacek Anaszewski <jacek.anaszewski@...il.com>
To: Edelweise Escala <edelweise.escala@...log.com>, Lee Jones
 <lee@...nel.org>, Pavel Machek <pavel@...nel.org>,
 Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
 Conor Dooley <conor+dt@...nel.org>
Cc: linux-leds@...r.kernel.org, devicetree@...r.kernel.org,
 linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] leds: ltc3220: add driver

On 1/6/26 06:27, Edelweise Escala wrote:
> Add driver for ltc3220. LTC3220 18 Channel LED Driver
> 
> Signed-off-by: Edelweise Escala <edelweise.escala@...log.com>
> ---
>   MAINTAINERS                 |   1 +
>   drivers/leds/Kconfig        |  10 +
>   drivers/leds/Makefile       |   1 +
>   drivers/leds/leds-ltc3220.c | 465 ++++++++++++++++++++++++++++++++++++++++++++
>   4 files changed, 477 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d640c35d1f93..fda0d2963c4f 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -14961,6 +14961,7 @@ L:	linux-leds@...r.kernel.org
>   S:	Maintained
>   W:	https://ez.analog.com/linux-software-drivers
>   F:	Documentation/devicetree/bindings/leds/leds-ltc3220.yaml
> +F:	drivers/leds/leds-ltc3220.c
>   
[...]
> +				     "Failed to set command\n");
> +
> +	device_for_each_child_node_scoped(&client->dev, child) {
> +		struct led_init_data init_data = {};
> +		struct ltc3220_uled_cfg *led;
> +		u32 source;
> +
> +		ret = fwnode_property_read_u32(child, "reg", &source);
> +		if (ret)
> +			return dev_err_probe(&client->dev, ret,
> +					     "Couldn't read LED address\n");
> +
> +		if (!source || source > LTC3220_NUM_LEDS)
> +			return dev_err_probe(&client->dev, -EINVAL,
> +					     "LED address out of range\n");
> +
> +		init_data.fwnode = child;
> +		init_data.devicename = "ltc3220";
> +		init_data.devname_mandatory = true;

Why? Please get acquainted with the section "LED Device Naming" in [0],
and the documentation of this property in [1].

> +
> +		/* LED node reg/index/address goes from 1 to 18 */
> +		i = source - 1;
> +		led = &ltc3220_state->uled_cfg[i];
> +		led->led_index = i;
> +		led->reg_value = 0;
> +		led->ltc3220_state = ltc3220_state;
> +		led->led_cdev.brightness_set_blocking = ltc3220_set_led_data;
> +		led->led_cdev.brightness_get = ltc3220_get_led_data;
> +		led->led_cdev.max_brightness = 255;
> +		led->led_cdev.blink_set = ltc3220_blink_set;
> +		led->led_cdev.pattern_set = ltc3220_pattern_set;
> +		led->led_cdev.pattern_clear = ltc3220_pattern_clear;
> +
> +		ret = devm_led_classdev_register_ext(&client->dev,
> +						      &led->led_cdev,
> +						      &init_data);
> +		if (ret)
> +			return dev_err_probe(&client->dev, ret,
> +					     "Failed to register LED class device\n");

[0] Documentation/leds/leds-class.rst
[1] include/linux/leds.h

-- 
Best regards,
Jacek Anaszewski


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ