linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Segher Boessenkool <segher@kernel.crashing.org>
To: avorontsov@ru.mvista.com
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 0/4] PowerPC: implement GPIO API
Date: Sun, 23 Dec 2007 03:47:50 +0100	[thread overview]
Message-ID: <593200f4887c1fb73d9c9fb9b1db0b8c@kernel.crashing.org> (raw)
In-Reply-To: <20071221202824.GA4607@localhost.localdomain>

> OF device tree GPIOs bindings are similar to IRQs:

But GPIOs are a very different thing.  Most importantly, the "number"
of a GPIO is completely local to the GPIO controller.

> pario0: gpio-controller@0 {
> 	#gpio-cells = <2>;

Your Linux code doesn't actually use this.  Why is it needed, anyway?
You should be able to encode a GPIO identifier in a single 32-bit word,
for any possible GPIO controller.

> 	num-ports = <7>;

What is this?  What is a "port"?  This doesn't belong in a generic GPIO
binding.

> device@0 {
> 	gpios = <bank pin bank pin bank pin>;
> 	gpio-parent = <&pario0>;

Not every GPIO controller has banks.  Not every device uses GPIOs
on a single GPIO controller.  It is inconvenient to force all bindings
to use the same name ("gpios") for its property that shows the GPIOs
(and for it to have only one such property).

So I recommend:

-- Advise (in the generic GPIO binding) people to use
	< phandle-of-gpio-controller gpio-id-on-that-controller >
to refer to a GPIO from some device node;

-- And either:
	-- Define (in the generic GPIO binding) that a "gpio-id" is a single
	   32-bit cell;
    or
	-- Define (in the generic GPIO binding) that a "gpio-id" is a number
	   of 32-bit cells, and that that number of cells is encoded as a 
32-bit
	   integer in the "#gpio-cells" property in the device node of the
	   respective GPIO controller.

(I like the first option better, unless someone can think of some 
reasonable
situation where some specific GPIO controller binding needs more than 
32 bits
to encode GPIO #).


Segher

  parent reply	other threads:[~2007-12-23  2:47 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-21 20:28 [PATCH 0/4] PowerPC: implement GPIO API Anton Vorontsov
2007-12-21 20:31 ` [PATCH 1/4] [POWERPC] Implement GPIO API embryo Anton Vorontsov
2007-12-23  2:49   ` Segher Boessenkool
2007-12-23  3:40     ` David Gibson
2007-12-23 10:00       ` Segher Boessenkool
2007-12-21 20:31 ` [PATCH 2/4] [POWERPC] QE: implement GPIO API Anton Vorontsov
2007-12-21 20:31 ` [PATCH 3/4] [POWERPC] CPM2: " Anton Vorontsov
2007-12-21 21:16   ` Arnd Bergmann
2007-12-21 23:58     ` Anton Vorontsov
2007-12-21 20:34 ` [PATCH 4/4] [POWERPC] CPM1: " Anton Vorontsov
2007-12-22  9:54   ` Jochen Friedrich
2007-12-22 16:08     ` Jochen Friedrich
2007-12-22 18:38       ` Anton Vorontsov
2007-12-21 20:50 ` [PATCH 0/4] PowerPC: " Grant Likely
2007-12-21 21:04   ` Anton Vorontsov
2007-12-21 21:17     ` Grant Likely
2007-12-22  0:16       ` Anton Vorontsov
2007-12-23  2:47 ` Segher Boessenkool [this message]
2007-12-23  3:37   ` David Gibson
2007-12-23  9:53     ` Segher Boessenkool
2007-12-23 11:47       ` 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=593200f4887c1fb73d9c9fb9b1db0b8c@kernel.crashing.org \
    --to=segher@kernel.crashing.org \
    --cc=avorontsov@ru.mvista.com \
    --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;
as well as URLs for NNTP newsgroup(s).