From: Peter Tyser <ptyser@xes-inc.com>
To: avorontsov@ru.mvista.com
Cc: linuxppc-dev@ozlabs.org, devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH] powerpc: mpc8xxx_gpio: Add ability to mask off unused GPIO pins
Date: Mon, 07 Dec 2009 10:23:18 -0600 [thread overview]
Message-ID: <1260202998.23828.13344.camel@localhost.localdomain> (raw)
In-Reply-To: <20091205205149.GA26030@oksana.dev.rtsoft.ru>
Hi Anton,
I've CC-ed devicetree-discuss. The original patch is at
http://patchwork.ozlabs.org/patch/40361/ for reference.
On Sat, 2009-12-05 at 23:51 +0300, Anton Vorontsov wrote:
> On Sat, Dec 05, 2009 at 01:32:32PM -0600, Peter Tyser wrote:
> [...]
> > > > Adding a new "fsl,gpio-mask" device tree property allows a dts file to
> > > > accurately describe what GPIO pins are available for use on a given
> > > > board.
> > >
> > > I don't see any real usage for this. If device tree specifies a wrong
> > > gpio in the gpios = <> property, then it's a bug in the device tree
> > > and should be fixed (or workarounded in the platform code).
> > >
> > > If a user fiddles with unknown gpios via sysfs interface, then it's
> > > user's problem.
> >
> > Its the sysfs case that I'm concerned about. Primarily because:
> > 1. Users scratch their head when they see that the "ngpio" sysfs value
> > doesn't match their CPU manual or board vendor's manual, and
> > subsequently ask their board vendor's engineers (ie me:) what's up.
>
> I don't think that adding code and device tree entries just for
> documentation purposes is a good idea.
Its not just for documentation purposes. Right now, the sysfs "ngpio"
value is flat out wrong for some processors, regardless of
documentation. Granted its not a critical bug, but I'd still consider
it a bug.
> > 2. Improperly using GPIO pins could damage hardware for some boards.
>
> Well, your initial patch tried to solve a different problem: to not
> let users to request non-existent GPIOs, which is usually safe.
I can update the commit message with this rational if it makes a
difference.
> [...]
> > #2 could be worked around by exporting GPIO pins in platform code so
> > that they are not available via sysfs.
>
> Yes, badly designed hardware deserves ugly hacks in the platform
> code. ;-) So for this problem, just request these gpios in the
> platform code.
I'd wager lots of boards have GPIO pins that a user shouldn't play
around with once Linux boots up. Like GPIO pins used to program an
FPGA, or control a PLL, etc. 1 device tree property is nicer than
hacking up lots of platform code...
> > Would it be any more acceptable to instead add
> > a "fsl,num-gpio" property so that "ngpio" actually reported an accurate
> > value and non-existent GPIO pins couldn't be used/exported?
>
> I'd think it's actually less acceptable. fsl,gpio-mask is more generic,
> since from gpio-mask you can deduce ngpio. But it's still ugly.
>
> What would be OK to do is to describe in the device tree every
> device that is using some GPIO, and then let the userspace request
> *only* gpios that are described in the device-tree. That way you
> can automatically exclude not-existent gpios.
> And if some gpios are just headers on the board, you can still
> describe them in the device tree via "gpio-header" nodes.
>
> Still, a lot of efforts for no real gain...
Agreed. Seems like a clean solution, but is a chunk of work.
In any case, my high-level thought process is:
1. Currently, the "ngpio" value is wrong for some processors and should
be fixed.
2. Adding a new "fsl,gpio-mask" gpio solves #1, and has the benefit of
allowing the device tree to easily reserve GPIO pins which should not be
used in Linux.
I guess I'm not seeing the big downside of a new "fsl,gpio-mask"
property. Its the device tree's job to describe the hardware. The
change is pretty minimal (~15 lines), and the property can be made
optional.
Or is there another suggestion on how to resolve #1 above? I consider
it a bug and would like to fix it.
Best,
Peter
next prev parent reply other threads:[~2009-12-07 16:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-04 19:43 [PATCH] powerpc: mpc8xxx_gpio: Add ability to mask off unused GPIO pins Peter Tyser
2009-12-05 17:56 ` Anton Vorontsov
2009-12-05 19:32 ` Peter Tyser
2009-12-05 20:51 ` Anton Vorontsov
2009-12-07 16:23 ` Peter Tyser [this message]
2009-12-08 2:16 ` Anton Vorontsov
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=1260202998.23828.13344.camel@localhost.localdomain \
--to=ptyser@xes-inc.com \
--cc=avorontsov@ru.mvista.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=linuxppc-dev@ozlabs.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox