Thread (29 messages) 29 messages, 2 authors, 2021-10-12

Re: [PATCH v6 19/19] auxdisplay: ht16k33: Add LED support

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-10-12 15:08:38
Also in: linux-leds, linux-mips, lkml

Hoi Robin,

On Mon, Oct 4, 2021 at 10:26 AM Robin van der Gracht [off-list ref] wrote:
On 2021-10-01 17:51, Geert Uytterhoeven wrote:
quoted
On Thu, Sep 30, 2021 at 12:57 PM Robin van der Gracht [off-list ref]
wrote:
quoted
On 2021-09-14 16:38, Geert Uytterhoeven wrote:
quoted
Instantiate a single LED based on the "led" subnode in DT.
This allows the user to control display brightness and blinking (backed
by hardware support) through the LED class API and triggers, and exposes
the display color.  The LED will be named
"auxdisplay:<color>:<function>".

When running in dot-matrix mode and if no "led" subnode is found, the
driver falls back to the traditional backlight mode, to preserve
backwards compatibility.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
quoted
quoted
quoted
+
+     err = devm_led_classdev_register_ext(dev, led, &init_data);
+     if (err)
+             dev_err(dev, "Failed to register LED\n");
You might want to call ht16k33_brightness_set(priv, brightness) here to get
a
know value into the display setup register (0x80).

Right now if I enable hardware blinking and (soft)reboot my board it keeps
on
blinking even after a re-probe.
I don't have that issue.
Aha, ht16k33_seg_probe() calls ht16k33_brightness_set(), but
ht16k33_fbdev_probe() doesn't.  The latter should do that, too,
when not using backwards compatibility mode.
Ack. I have hardware which uses the ht16k33 in dot matrix mode and I tested
both the backlight and led setup. I ran into this with the fbdev + led setup.

I noticed ht16k33_bl_update_status() is called in ht16k33_fbdev_probe()
before the fbdev device is registered. Which is fine right now, but in theory
the fbdev blank state can influence the backlight setting (nitpick since
the fbdev device is unblanked by default).

The point: Maybe ht16k33_brightness_set() (or ht16k33_bl_update_status() for
backlight device) should be called in one central place (i.e at the end of
the
main probe function).
That would mean the main function need to know more about which mode
is being used, so I think it's better to leave it to the individual display
sub-drivers.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help