All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Cohen <david.a.cohen@linux.intel.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Mathias Nyman <mathias.nyman@linux.intel.com>,
	linus.walleij@linaro.org, gnurou@gmail.com,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC/PATCH] gpio/pinctrl: baytrail: move gpio driver from pinctrl to gpio directory
Date: Thu, 16 Oct 2014 18:53:22 -0700	[thread overview]
Message-ID: <20141017015322.GB4513@psi-dev26.jf.intel.com> (raw)
In-Reply-To: <20141016080123.GW2255@lahna.fi.intel.com>

On Thu, Oct 16, 2014 at 11:01:23AM +0300, Mika Westerberg wrote:
> On Wed, Oct 15, 2014 at 09:55:42AM -0700, David Cohen wrote:
> > Hi Mika,
> > 
> > Thanks for your feedback. See below my reply.
> > 
> > On Wed, Oct 15, 2014 at 10:08:12AM +0300, Mika Westerberg wrote:
> > > On Tue, Oct 14, 2014 at 10:45:35AM -0700, David Cohen wrote:
> > > > Hi Mathias,
> > > > 
> > > > On Tue, Oct 14, 2014 at 01:35:43PM +0300, Mathias Nyman wrote:
> > > > > On 13.10.2014 22:17, David Cohen wrote:
> > > > > > Even though GPIO module on Intel Bay Trail is able to control pin
> > > > > > functionality, it's unlikely Linux kernel driver will ever support it
> > > > > > since BIOS should handle all pin muxing itself.
> > > > > > 
> > > > > > Currently this driver does not register any pinctrl interface and
> > > > > > doesn't call any pinctrl interface. It just uses on internal functions
> > > > > > the 'struct pinctrl_gpio_range', which is a weak justification to not be
> > > > > > under gpio directory.
> > > > > > 
> > > > > 
> > > > > This discussion was held when gpio-baytrail was first submitted.
> > > > > These threads explain the gpio/pinctrl-baytrail history:
> > > > > 
> > > > > http://marc.info/?l=linux-kernel&m=136981432427668&w=2
> > > > > http://marc.info/?l=linux-kernel&m=137113578604763&w=2
> > > > > http://marc.info/?l=linux-kernel&m=137155497023054&w=2
> > > > 
> > > > Thanks for pointing that out.
> > > > 
> > > > > 
> > > > > A proper pinctrl driver for baytrail is still not yet ruled out
> > > > 
> > > > Having it inside pinctrl directory is creating some confusion because
> > > > ppl expect it to implement the actual pinctrl interface.
> > > 
> > > A typical pinctrl driver can implement both a pinctrl interface and a
> > > GPIO interface. So it is not uncommon to look the GPIO drivers under
> > > drivers/pinctrl/*.
> > 
> > Agreed :)
> > But pinctrl-baytrail has no pinctrl interface, just gpio.
> 
> The hardware is capable of muxing pins etc. it just has not been
> implemented because we currently don't have need for anything else.
> I have seen that in some of our internal trees the driver is also muxing
> alternate functions to the pins (using non-pinctrl interface). So maybe
> it will get a full pinctrl support in the future.
> 
> We certainly don't want to move it from pinctrl to gpio and then back.
> 
> > > Furthermore the driver announces that it is a GPIO driver in its Kconfig
> > > entry:
> > > 
> > > config PINCTRL_BAYTRAIL
> > >         bool "Intel Baytrail GPIO pin control"
> > > 
> > > so I don't quite get why this would confuse people.
> > 
> > How come? You just wrote the inconsistence :)
> 
> Well, it says it is a "GPIO pin control" :-)

PINCTRL_BAYTRAIL means it implements pinctrl iterface. The text says
otherwise.

> 
> > We're enabling PINCTRL_BAYTRAIL to build a gpio only driver.
> > 
> > > 
> > > We are also planning to add more Intel pinctrl (real) drivers in the
> > > future. drivers/pinctrl/intel/* should be the place where people find
> > > the pinctrl/GPIO drivers for newer Intel hardware.
> > 
> > I fully agree pinctrl/gpio drivers should stay under drivers/pinctrl.
> > But we're talking about a gpio driver. IMHO we should at least mention
> > in the driver it lacks pinctrl interface currently but it will come in
> > future.
> 
> OK, why not.
> 
> > A side discussion would be why a distro would want to have the pinctrl
> > interface on Bay Trail. I'd assume any driver being the consumer of it
> > is likely to be wrong. When Linux boots, all pins' functions should be
> > already set.
> 
> In an ideal world, yes. However, the reality has shown that BIOS/FW gets
> these wrong and we need to work it around in the OS.

But we never upstream these workarounds, right? :)
That would be useful during internal development while we get a fix from
fw developers. Any driver upstreamed for Bay Trail actually using this
pinctrl interface is very likely to be wrong.

> 
> Also for devices like MinnowBoard MAX (which has Baytrail SoC), you
> actually might want to mux some other function out of certain pins.

I fully agree on this one. MinnowBoard MAX is a valid reason to expose
pinctrl interface. A TODO comment on Kconfig help text and/or on driver
should be enough then.

Br, David

  reply	other threads:[~2014-10-17  1:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-13 19:17 [RFC/PATCH] gpio/pinctrl: baytrail: move gpio driver from pinctrl to gpio directory David Cohen
2014-10-14 10:35 ` Mathias Nyman
2014-10-14 17:45   ` David Cohen
2014-10-15  7:08     ` Mika Westerberg
2014-10-15 16:55       ` David Cohen
2014-10-16  8:01         ` Mika Westerberg
2014-10-17  1:53           ` David Cohen [this message]
2014-10-28 15:10             ` Linus Walleij
2014-10-28 16:42               ` David Cohen
2014-10-30 15:26                 ` 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=20141017015322.GB4513@psi-dev26.jf.intel.com \
    --to=david.a.cohen@linux.intel.com \
    --cc=gnurou@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=mika.westerberg@linux.intel.com \
    /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.