Hi! > > I'm currently implementing the multicolors sysfs leds interface for several > Clevo and Tongfang barebones, but I'm unsure how to actually map the leds to > the multicolor interface: > > The keyboards come in 5 variants: > > Single zone RGB + Brightness > > Single Zone RGB > > 3 Zone RGB + Shared Brightness > > Per Key RGB > > Per Key RGB + Shared Brightness > > First question: How do I map multiple zones or per-key leds? > > Should I register a seperate ::kbd_backlight for zone/key? resulting in > ::kbd_backlight, ::kbd_backlight_1, ::kbd_backlight_2, ::kbd_backlight_3, > etc? For a zone, yes. > Should I give them more desciptive names like ::kbd_backlight_left, > ::kbd_backlight_center, ::kbd_backlight_right, ::kbd_backlight_a, > ::kbd_backlight_b, ::kbd_backlight_enter? > > Or Should I only create a single ::kbd_backlight instance and map the > different zones to subleds? So there are number of zones * 3 subleds, with > each tripplet controlling the rgb values of one zone/key? This would help > performance, as for the per-key backlight, the firmware in the backend wants > an array for all keys at once. So setting each key seperatly would mean > sending the whole array for each key individually. And I think what most > people want to do is to set the whole keyboard at once anyway and nit key by > key. Not sure what to do there. And not sure if LED subsystem is suitable for this, actually. This starts to look like a display... > Second question: For the keyboards with shared brightness, is it ok to have > the brightness values of ::kbd_backlight, ::kbd_backlight_1 etc. just in > sync? I did not see a way to have a ::kbd_backlight without the brightness > sysfs entry (then I would have just given the brightness switch to > ::kbd_backlight and not to ::kbd_backlight_1 and ::kbd_backlight_2) Can we simply ignore shared brightness to get reasonable API? > Third question: The 3 zone RGB and the per-key keyboards have firmware > accelerated modes, like breathing and rainbow. How do I make them accessible > via the multicolor leds interface? the blinking pattern interface does not > really match the usecase as these modes are a simple single value toggle > (0=static color, 1=breathing, 2=ignore color settings and play predefined > moving rainbow pattern, etc). Take a look at drivers/leds/trigger/ledtrig-pattern.c . That's interface we'd like. Best regards, Pavel -- People of Russia, stop Putin before his war on Ukraine escalates.
Attachment:
signature.asc
Description: PGP signature