[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<PH0PR03MB652569B08C1E10F2280B56A5ED84A@PH0PR03MB6525.namprd03.prod.outlook.com>
Date: Wed, 7 Jan 2026 09:52:42 +0000
From: "Escala, Edelweise" <Edelweise.Escala@...log.com>
To: Jacek Anaszewski <jacek.anaszewski@...il.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" <linux-leds@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...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].
devname_mandatory will be dropped, Thank you
> > +
> > + /* LED node reg/index/address goes from 1 to 18 */
> > + i = source - 1;
> > + led = <c3220_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,
Edelweise Escala
Powered by blists - more mailing lists