From: Robin Farine <robin.farine@terminus.org>
To: Richard Purdie <rpurdie@rpsys.net>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] LEDS: generic driver
Date: Fri, 8 Jun 2007 10:48:04 +0200 [thread overview]
Message-ID: <200706081048.05001.robin.farine@terminus.org> (raw)
In-Reply-To: <1181258872.30600.12.camel@localhost.localdomain>
On Fri June 8 2007 01:27, Richard Purdie wrote:
> I'm not sure about this to be honest. I can see a case for
> perhaps having a couple of standard suspend/resume functions for
> platform device based LED drivers as those functions are often
> identical. I'm not sure whether there is going to be much need
> for more than that.
I am not persuaded either. To give a better idea of the context, my
platform has to sets of LEDs, a first attached to a write-only
register on the extension bus and the second on an optional
daughter board and I2C controlled. The value of the register on the
extension bus is shadowed and needs to be manipulated through an
API that takes care of the locking.
Thus, instead of adding new board specific drivers to drivers/leds,
my idea was that given a generic LED driver:
- the module that implements accesses to the write-only register
defines one platform device for each LED attached to the register
and implements the LED toggling internally;
- the I2C driver for the daughter board defines one platform device
for each LED on the daughter board and implement the LED toggling
internally as well.
> Having looked through a few of the LED drivers, even the
> suspend/resume functions are often different...
I looked at this too and it seemed to me that in all but one case
the suspend function ends up by calling led_classdev_suspend for
each LED the driver controls, and the resume function calls
led_classdev_resume for each LED as well. In the generic LED
driver, it is equivalent since there is a different platform device
for each LED so only one call to led_classdev_xyz is needed.
> >From a style point of view, why not
> > s/pdev_to_led/platform_get_drvdata/?
Yes, of course :-).
> What are your thoughts on multiple LEDs on a single device?
Physically that is what I have on my platform, but the system sees
each LED as a separate device. The platform device data and
function for a set of LEDS attached to the same physical device
take care of the multiplexing.
> Given the LED class is going to get a conversion to struct device
> soon, I'd prefer to put this on hold until after I've made that
> conversion at which point I'll reconsider this.
Yes, sure. I am well aware that it applies to very specific
situations and that there may be a cleaner solution in which case I
would be happy to drop this idea. I am not pushing for this to be
included in mainline.
Thanks for looking into this and for the feed-back,
Robin
prev parent reply other threads:[~2007-06-08 8:48 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <ab8cd0edce36b4ea93429c7ab695f5a967b11365.1181149111.git.robin.farine@terminus.org>
2007-06-06 17:02 ` Robin Farine
2007-06-07 23:27 ` Richard Purdie
2007-06-08 8:48 ` Robin Farine [this message]
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=200706081048.05001.robin.farine@terminus.org \
--to=robin.farine@terminus.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rpurdie@rpsys.net \
/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®