mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Linus Walleij <linus.ml.walleij@gmail.com>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>,
	Kyungmin Park <kmpark@infradead.org>,
	Ben Nizette <bn@niasdigital.com>,
	linux-kernel@vger.kernel.org,
	Grant Likely <grant.likely@secretlab.ca>,
	Lee Jones <lee.jones@linaro.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/2] gpio: add pin biasing and drive mode to gpiolib
Date: Wed, 20 Apr 2011 16:29:58 +0100	[thread overview]
Message-ID: <20110420162958.09286aa7@lxorguk.ukuu.org.uk> (raw)
In-Reply-To: <BANLkTinaOk4Qq+uwdZQtapncwjpdTg9wmQ@mail.gmail.com>

> Some people inevitably think that GPIO and pin/padmux are
> intertwined, but as far as I have seen they are not. However there

It's not just pin muxing - gpio pins are sometimes shared between
firmware and OS and belong to one or the other depending upon what is
going on. For example the OS may need to own the pin for things like
updating or eeprom writing but the firmware or another device owns it for
day to day processing.

> may be a cross dependency so that a GPIO driver may need to
> export an additional pin/padmux interface or so, e.g we have
> a separate chip in I2C which can mux pins...

Would it not make sense to assume that given a situation where you have a
GPIO that can be routed four ways that you actually implement it like the
rest of the kernel - ie

	r = gpio_request(n);	/* n, n+1, n+2, n+3 are the four ways
				*/

	if (r < 0) 	/* EBUSY - someone else is using one of the
				four */ 
		return -EBUSY;
	/* Succeeded - will also have set the mux for us */

At that point drivers don't need to know if a GPIO is muxed it'll just be
busy if someone else is using it.

It seems to me that if the goal of the gpio layer is to provide an
abstraction then it can abstract muxes just fine and without needing
drivers to know.

Alan

  reply	other threads:[~2011-04-20 15:29 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-17 21:37 Linus Walleij
2011-04-17 21:48 ` Alan Cox
2011-04-17 21:58   ` Linus Walleij
2011-04-17 22:03     ` Alan Cox
2011-04-18  0:09 ` Kyungmin Park
2011-04-18  7:17   ` Kurt Van Dijck
2011-04-18  8:04 ` Ben Nizette
2011-04-18  8:19   ` Alan Cox
2011-04-18  8:50     ` Ben Nizette
2011-04-18 11:59       ` Mark Brown
2011-04-18 22:16         ` Ben Nizette
2011-04-18 22:31           ` Mark Brown
2011-04-19  4:50             ` Ben Nizette
2011-04-20 12:11           ` Linus Walleij
2011-04-18 12:26       ` Alan Cox
2011-04-18 22:26         ` Ben Nizette
2011-04-19  8:38           ` Alan Cox
2011-04-19  8:51             ` Kyungmin Park
2011-04-20 12:32               ` Linus Walleij
2011-04-20 12:38                 ` Kyungmin Park
2011-04-20 14:54                 ` Alan Cox
2011-04-20 14:26               ` Haojian Zhuang
2011-04-20 14:40                 ` Kyungmin Park
2011-04-20 15:04                   ` Haojian Zhuang
2011-04-20 15:17                     ` Linus Walleij
2011-04-20 15:32                       ` Alan Cox
2011-04-20 15:45                         ` Linus Walleij
2011-04-27 21:55                         ` Russell King - ARM Linux
2011-04-27 22:16                           ` H Hartley Sweeten
2011-04-20 15:13                 ` Linus Walleij
2011-04-20 15:29                   ` Alan Cox [this message]
2011-04-20 15:39                     ` Linus Walleij
2011-04-20 15:43                       ` Alan Cox
2011-04-27 21:58                         ` Russell King - ARM Linux
2011-04-20  0:09             ` Ben Nizette
2011-04-20  9:45               ` Alan Cox
2011-04-20 12:38               ` Linus Walleij
2011-04-20 14:55                 ` Alan Cox
2011-04-20 12:21           ` Linus Walleij
2011-04-20 23:32             ` Ben Nizette
2011-04-21  6:48               ` Linus Walleij
2011-04-23  8:25                 ` Ben Nizette
2011-04-21  0:29             ` Ben Nizette
2011-04-20 12:19         ` Linus Walleij
2011-04-20 12:22           ` Alan Cox
2011-04-20 12:04   ` Linus Walleij
2011-04-20 23:24     ` Ben Nizette
2011-04-21 15:39 ` Stijn Devriendt
2011-04-22 11:36   ` Linus Walleij
2011-04-22 11:56     ` Alan Cox
2011-04-23  8:35     ` Ben Nizette
2011-04-25 18:52 ` Rohit Vaswani
2011-04-26  7:48   ` Linus Walleij

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=20110420162958.09286aa7@lxorguk.ukuu.org.uk \
    --to=alan@lxorguk.ukuu.org.uk \
    --cc=bn@niasdigital.com \
    --cc=grant.likely@secretlab.ca \
    --cc=haojian.zhuang@gmail.com \
    --cc=kmpark@infradead.org \
    --cc=lee.jones@linaro.org \
    --cc=linus.ml.walleij@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome