From: Greg KH <gregkh@suse.de>
To: Jani Nikula <ext-jani.1.nikula@nokia.com>
Cc: "dbrownell@users.sourceforge.net"
<dbrownell@users.sourceforge.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"dsilvers@simtec.co.uk" <dsilvers@simtec.co.uk>,
"ben@simtec.co.uk" <ben@simtec.co.uk>,
"Bityutskiy Artem (Nokia-D/Helsinki)"
<Artem.Bityutskiy@nokia.com>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: Re: [PATCH 2/3] gpiolib: add support for having symlinks under gpio class directory
Date: Thu, 10 Dec 2009 06:49:20 -0800 [thread overview]
Message-ID: <20091210144920.GA27237@suse.de> (raw)
In-Reply-To: <1260455537.25352.1762.camel@jani-desktop>
On Thu, Dec 10, 2009 at 04:32:17PM +0200, Jani Nikula wrote:
> On Thu, 2009-12-10 at 03:48 +0100, ext Greg KH wrote:
> > On Wed, Dec 09, 2009 at 03:49:03PM +0200, Jani Nikula wrote:
> > > Extend the functionality of gpio_export_link() to allow exported GPIOs
> > > to have names using sysfs links under /sys/class/gpio.
> >
> > No, please don't create symlinks under a class, that is not something
> > that any userspace tool is expecting.
> >
> > I don't understand what you are trying to do here, why do you need a
> > symlink? What is wrong with the original device names?
>
> The problem
> ~~~~~~~~~~~
>
> GPIOs can be exported to gpiolib sysfs at /sys/class/gpio/ like this:
>
> # ls -l /sys/class/gpio/
> --w------- 1 root 0 4096 Jan 1 00:00 export
> lrwxrwxrwx 1 root 0 0 Jan 1 00:00 gpio25 -> ../../devices/virtual/gpio/gpio25
> lrwxrwxrwx 1 root 0 0 Jan 1 00:00 gpio38 -> ../../devices/virtual/gpio/gpio38
> ...
>
> The GPIO lines may and do change from board revision to another. For
> example a power button's GPIO number might be 25 in board rev 1.0 but 66
> in board rev 1.1.
>
> We want to assign symbolic names to GPIO lines and hide the numbering
> changes from userspace, because it is very painful to amend userspace
> for every board revision.
True, just like it is hard to change the kernel for every type of
configuration as well :)
This is the problem that udev solves, from usersapce, but you don't have
device nodes for it to manage, right?
> Existing solution
> ~~~~~~~~~~~~~~~~~
>
> gpio_export_link() can be used to create symlinks from drivers' sysfs
> to gpiolib, but this obviously requires a driver. For example:
>
> # ls -l /sys/devices/platform/foo/
> lrwxrwxrwx 1 root 0 0 Jan 2 00:31 power_button -> ../../virtual/gpio/gpio25
> ...
>
> This doesn't really work for GPIO lines not associated with any driver.
Understood
> How we addressed the problem
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> We simply decided to extend gpio_export_link(). When it is called
> with 'dev == NULL' (no driver), it creates an additional symlink
> in /sys/class/gpio/
>
> # ls -l /sys/class/gpio/
> --w------- 1 root 0 4096 Jan 1 00:00 export
> lrwxrwxrwx 1 root 0 0 Jan 1 00:00 power_button -> ../../devices/virtual/gpio/gpio25
> lrwxrwxrwx 1 root 0 0 Jan 1 00:00 gpio25 -> ../../devices/virtual/gpio/gpio25
> lrwxrwxrwx 1 root 0 0 Jan 1 00:00 gpio38 -> ../../devices/virtual/gpio/gpio38
> ...
>
> This is exactly what our patchset allows to do.
>
> An alternative would be a dummy driver just to create a home in sysfs
> for the standalone GPIOs and use the gpio_export_link() to make the
> links there.
>
> Any other suggestions?
This type of "policy" should be better off done in userspace whereever
possible. Can't you just have a udev rule to create symlinks from
somewhere else, into /sys/class/gpio/ that show this type of information
that you are wanting to have?
thanks,
greg k-h
next prev parent reply other threads:[~2009-12-10 14:58 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-09 13:49 [PATCH 0/3] gpiolib: gpio naming in sysfs Jani Nikula
2009-12-09 13:49 ` [PATCH 1/3] device class: add symlink creation helpers Jani Nikula
2009-12-10 2:49 ` Greg KH
2009-12-09 13:49 ` [PATCH 2/3] gpiolib: add support for having symlinks under gpio class directory Jani Nikula
2009-12-10 2:48 ` Greg KH
2009-12-10 14:32 ` Jani Nikula
2009-12-10 14:49 ` Greg KH [this message]
2009-12-10 15:17 ` Kay Sievers
2009-12-10 15:24 ` Greg KH
2009-12-11 8:41 ` Jani Nikula
2009-12-11 15:38 ` Greg KH
2009-12-11 3:35 ` David Brownell
2009-12-09 13:49 ` [PATCH 3/3] gpiolib: use chip->names for symlinks, always use gpioN for device names Jani Nikula
2009-12-11 3:39 ` David Brownell
2009-12-11 3:47 ` Greg KH
2009-12-11 4:13 ` David Brownell
2009-12-11 4:38 ` Greg KH
2009-12-11 5:13 ` David Brownell
2009-12-11 5:18 ` Greg KH
2009-12-11 5:36 ` Artem Bityutskiy
2009-12-11 5:46 ` Greg KH
2009-12-11 7:51 ` Artem Bityutskiy
2009-12-11 15:36 ` Greg KH
2009-12-11 13:23 ` [PATCH]crypto: Fix complain about lack test for internal used algorithm Youquan,Song
2009-12-11 6:04 ` Herbert Xu
2009-12-19 9:40 ` Youquan,Song
2009-12-19 2:29 ` Herbert Xu
2009-12-19 15:07 ` Youquan,Song
2009-12-19 9:42 ` Herbert Xu
2009-12-21 10:38 ` [Resend PATCH]crypto: " Youquan,Song
2009-12-23 11:59 ` Herbert Xu
2009-12-11 5:22 ` [PATCH 3/3] gpiolib: use chip->names for symlinks, always use gpioN for device names Ben Nizette
2009-12-11 5:12 ` Ben Nizette
2009-12-14 11:16 ` Jani Nikula
2009-12-14 22:27 ` Ben Nizette
2009-12-10 0:02 ` [PATCH 0/3] gpiolib: gpio naming in sysfs Andrew Morton
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=20091210144920.GA27237@suse.de \
--to=gregkh@suse.de \
--cc=Artem.Bityutskiy@nokia.com \
--cc=akpm@linux-foundation.org \
--cc=ben@simtec.co.uk \
--cc=dbrownell@users.sourceforge.net \
--cc=dsilvers@simtec.co.uk \
--cc=ext-jani.1.nikula@nokia.com \
--cc=linux-kernel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.