From: "John Lenz" <lenz@cs.wisc.edu>
To: "Richard Purdie" <rpurdie@rpsys.net>
Cc: "Pavel Machek" <pavel@suse.cz>,
vojtech@suse.cz, "kernel list" <linux-kernel@vger.kernel.org>,
"Russell King" <rmk@arm.linux.org.uk>
Subject: Re: best way to handle LEDs
Date: Tue, 1 Nov 2005 19:03:19 -0600 (CST) [thread overview]
Message-ID: <55055.192.168.0.12.1130893399.squirrel@192.168.0.2> (raw)
In-Reply-To: <1130891953.8489.83.camel@localhost.localdomain>
On Tue, November 1, 2005 6:39 pm, Richard Purdie said:
> On Wed, 2005-11-02 at 00:44 +0100, Pavel Machek wrote:
>> Handheld machines have limited number of software-controlled status
>> LEDs. Collie, for example has two of them; one is labeled "charge" and
>> second is labeled "mail".
>
>> I think even slow blinking was used somewhere. I have some code from
>> John Lenz (attached); it uses sysfs interface, exports led collor, and
>> allows setting different frequencies.
>>
>> Is that acceptable, or should some other interface be used?
>
> This has been discussed before and I know there are several differing
> opinions.
>
> Based upon previous discussion both here, on linux-arm-kernel and in the
> handhelds community in general I came up with some ideas which I've yet
> to have time to code. I'll try and describe it though:
>
> The system would be in two sections (classes?), leds themselves and led
> triggers. The leds would be driven by something similar to John's driver
> Pavel attached. I think colour and other unchanging properties of the
> device should be something exported in the device name which could have
> some format like: device_name-colour-otherprops.
I believe that this can be built on top of my patch. If you take a look
at the led patch Pavel posted, it allows for in kernel code to acquire the
led by calling leds_acquire. Once a led is acquired through leds_acquire
function, any input from userspace is ignored.
Any interested kernel code can also register an interface to watch for led
additions and removals.
>
> Led triggers would be kernel sources of led on/off events. Some
> examples:
>
> 2Hz Heartbeat - useful for debugging (and/or Generic Timer)
This is included already in the leds driver part, although it could be
removed I guess...
> CPU Load indicator
> Charging indicator
> HDD activity (useful for microdrive on handheld)
> Network activity
> no doubt many more
All these are great ideas for triggers.
>
> led triggers would be connected to leds via sysfs. Each trigger would
> probably have a number you could echo into an led's trigger attribute.
> Sensible default mappings could be had by assigning a default trigger to
> a device by name in the platform code that declares the led.
This would be part of the triggers module... passing the right stuff into
those sysfs options would cause the triggers module to call leds_acquire
on the right led_properties structure.
>
> A trigger of "0" would mean the led becomes under userspace control via
> sysfs for whatever userspace wishes to do with it.
A trigger of "0" would call leds_release, which would cause the input from
userspace in the leds driver to be accepted again.
>
> The underlying principle would be to keep this class as simple as
> possible whilst maximising the options open for triggering the leds from
> both the kernel and userspace.
>
> Does this sound like a sensible way forward?
>
I think it can already be done from my patch... all the functions are
already there for in kernel manipulation.
John
next prev parent reply other threads:[~2005-11-02 1:03 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-01 23:44 Pavel Machek
2005-11-02 0:39 ` Richard Purdie
2005-11-02 1:03 ` John Lenz [this message]
2005-11-02 8:01 ` Chase Venters
2005-11-02 13:56 ` Pavel Machek
2005-11-02 14:38 ` Richard Purdie
2005-11-02 21:11 ` Pavel Machek
2005-11-02 22:05 ` Richard Purdie
2005-11-02 1:57 ` root
2005-11-02 11:40 ` Geert Uytterhoeven
2005-11-02 2:47 ` Ben Dooks
2005-11-02 9:48 ` Alessandro Zummo
2005-11-02 9:51 ` Pavel Machek
2005-11-03 2:31 ` John Lenz
2005-11-07 23:30 ` Pavel Machek
2005-11-08 0:27 ` John Lenz
2005-11-08 9:28 ` Pavel Machek
2005-11-08 12:07 ` Richard Purdie
2005-11-08 13:14 ` Pavel Machek
2005-11-02 10:18 ` Paul Mundt
2005-11-02 20:26 ` Robert Schwebel
2005-11-02 21:13 ` Pavel Machek
2005-11-02 21:33 ` Robert Schwebel
2005-11-03 2:52 ` John Lenz
2005-11-03 6:21 ` Robert Schwebel
2005-11-03 8:15 ` Russell King
2005-11-03 9:57 ` Pavel Machek
2005-11-03 14:49 ` Russell King
2005-11-03 15:34 ` Vojtech Pavlik
2005-11-03 16:01 ` Russell King
2005-11-03 16:11 ` Vojtech Pavlik
2005-11-03 16:38 ` linux-os (Dick Johnson)
2005-11-03 16:35 ` Pavel Machek
2005-11-04 0:41 ` Stefan Smietanowski
2005-11-03 14:26 ` Rich Walker
2005-11-03 3:09 ` Rob Landley
2005-11-03 8:37 ` Geert Uytterhoeven
2005-11-03 9:59 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55055.192.168.0.12.1130893399.squirrel@192.168.0.2 \
--to=lenz@cs.wisc.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@suse.cz \
--cc=rmk@arm.linux.org.uk \
--cc=rpurdie@rpsys.net \
--cc=vojtech@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®