From: cavokz@gmail.com (Domenico Andreoli)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] pinctrl: document semantics vs GPIO
Date: Fri, 14 Sep 2012 16:30:57 +0200 [thread overview]
Message-ID: <20120914143056.GA25696@glitch> (raw)
In-Reply-To: <CACRpkdb+QC_iHOkoihqxDgC+b+PUij-qi6BiOKmnCB3vPnJTjw@mail.gmail.com>
On Fri, Sep 14, 2012 at 03:48:05PM +0200, Linus Walleij wrote:
> On Fri, Sep 14, 2012 at 12:11 AM, Domenico Andreoli <cavokz@gmail.com> wrote:
> > On Thu, Sep 13, 2012 at 10:11:29AM -0600, Stephen Warren wrote:
>
> >> I think it makes sense to more strongly recommend that for GPIO muxing,
> >> the GPIO driver always call into the pinctrl subsystem (if needed by the
> >> HW) to perform that muxing, so that standalone gpio_direction_*() always
> >> work without any use of pinctrl; the interaction between the two should
> >> only be required if pin configuration (not just pin muxing) is also
> >> required.
> >
> > Don't know. Isn't possible to reach the same effect moving this kind
> > of knowledge into higher level helper functions and remove this bridge
> > across the subsystems?
>
> I'm not following, please elaborate on this.
>
> What are these higher level functions, and where will they be
> located? In which subsystem, and using what symbols/signatures and
> so on?
If the common case is requesting the pin and then the gpio, an helper
like this would do the trick. So why those calls into pinctrl should be
done by the GPIO driver itself? Pinctrl and GPIO would be separated,
ignoring each other.
static int request_muxed_gpio(int gpio, const char *label)
{
int err;
err = pinctrl_request_gpio(gpio)
if (err)
return err;
err = gpio_request(gpio, label);
if (err)
pinctrl_free_gpio(gpio);
return err;
}
static void free_muxed_gpio(int gpio)
{
gpio_free(gpio);
pinctrl_free_gpio(gpio);
}
> Deepak or Arnd suggested to add a set of functions to the pinctrl
> driver vtable and make it possible to implement a generic gpio_chip
> deeply merged with a pin controller driver. I'm considering this,
> since it would also be a natural stepping stone to the /dev/pinctrl0
> device(s) I want to see for userspace access the day we need it.
If this is the plan, I can only agree. I thought it was a long term plan
hence the reasoning in terms of helper functions above for a shorter-term
proposal.
Regards,
Domenico
next prev parent reply other threads:[~2012-09-14 14:30 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-13 7:01 [PATCH] pinctrl: document semantics vs GPIO Linus Walleij
2012-09-13 16:11 ` Stephen Warren
2012-09-13 22:11 ` Domenico Andreoli
2012-09-14 13:48 ` Linus Walleij
2012-09-14 14:30 ` Domenico Andreoli [this message]
2012-09-14 15:55 ` Stephen Warren
2012-09-14 13:41 ` 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=20120914143056.GA25696@glitch \
--to=cavokz@gmail.com \
--cc=linux-arm-kernel@lists.infradead.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).