[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YYre31rVDcs8OWre@lunn.ch>
Date: Tue, 9 Nov 2021 21:49:35 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Ansuel Smith <ansuelsmth@...il.com>
Cc: Marek BehĂșn <kabel@...nel.org>,
Vivien Didelot <vivien.didelot@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
Vladimir Oltean <olteanv@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Jonathan Corbet <corbet@....net>, Pavel Machek <pavel@....cz>,
John Crispin <john@...ozen.org>, netdev@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-doc@...r.kernel.org, linux-leds@...r.kernel.org
Subject: Re: [RFC PATCH v3 2/8] leds: add function to configure hardware
controlled LED
> > > +#ifdef CONFIG_LEDS_HARDWARE_CONTROL
> > > +enum blink_mode_cmd {
> > > + BLINK_MODE_ENABLE, /* Enable the hardware blink mode */
> > > + BLINK_MODE_DISABLE, /* Disable the hardware blink mode */
> > > + BLINK_MODE_READ, /* Read the status of the hardware blink mode */
> > > + BLINK_MODE_SUPPORTED, /* Ask the driver if the hardware blink mode is supported */
> > > + BLINK_MODE_ZERO, /* Disable any hardware blink active */
> > > +};
> > > +#endif
> >
> > this is a strange proposal for the API.
> >
> > Anyway, led_classdev already has the blink_set() method, which is documented as
> > /*
> > * Activate hardware accelerated blink, delays are in milliseconds
> > * and if both are zero then a sensible default should be chosen.
> > * The call should adjust the timings in that case and if it can't
> > * match the values specified exactly.
> > * Deactivate blinking again when the brightness is set to LED_OFF
> > * via the brightness_set() callback.
> > */
> > int (*blink_set)(struct led_classdev *led_cdev,
> > unsigned long *delay_on,
> > unsigned long *delay_off);
> >
> > So we already have a method to set hardware blkinking, we don't need
> > another one.
> >
> > Marek
>
> But that is about hardware blink, not a LED controlled by hardware based
> on some rules/modes.
> Doesn't really match the use for the hardware control.
> Blink_set makes the LED blink contantly at the declared delay.
> The blink_mode_cmd are used to request stuff to a LED in hardware mode.
>
> Doesn't seem correct to change/enhance the blink_set function with
> something that would do something completely different.
Humm. I can see merits for both.
What i like about reusing blink_set() is that it is well understood.
There is a defined sysfs API for it. ledtrig-oneshot.c also uses it,
for a non-repeating blink. So i think that also fits the PHY LED use
case.
Andrew
Powered by blists - more mailing lists