From: Stephen Warren <swarren@wwwdotorg.org>
To: Doug Anderson <dianders@chromium.org>
Cc: "Tomasz Figa" <t.figa@samsung.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
devicetree@vger.kernel.org,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Thomas Abraham" <thomas.abraham@linaro.org>,
"Kukjin Kim" <kgene.kim@samsung.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Kyungmin Park" <kyungmin.park@samsung.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>
Subject: Re: [PATCH] pinctrl: samsung: Allow pin value to be initialized using pinfunc.
Date: Tue, 19 Nov 2013 12:16:35 -0700 [thread overview]
Message-ID: <528BB913.6080409@wwwdotorg.org> (raw)
In-Reply-To: <CAD=FV=XS0dbE7zfgDGVdp84h4fHH6tfO8aN_HNh1LbOjYy51aQ@mail.gmail.com>
On 11/19/2013 11:59 AM, Doug Anderson wrote:
> On Tue, Nov 19, 2013 at 10:46 AM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> On 11/19/2013 10:15 AM, Tomasz Figa wrote:
>>> This patch extends the range of settings configurable via pinfunc API
>>> to cover pin value as well. This allows configuration of default values
>>> of pins.
>>
>> Shouldn't there be a driver that acquires the GPIO that's output to the
>> pin, and configures the output value? IIRC there have been previous
>> discussions re: having a list of e.g. initial GPIO output values in DT,
>> and that was rejected, and this patch seems to be doing almost the exact
>> same thing, just at the pinctrl level rather than GPIO level.
>>
>> That all said, I admit this could be a useful feature...
>
> I haven't followed all of the previous discussions, but I know I've
> run into scenarios where something like this would be useful. The one
> that comes to mind is:
>
> * We've got GPIOs that default at bootup to a pulled up input since
> the default state of the pin should be "high".
>
> * These pins are really intended to be outputs, like an "enable",
> "reset", or "power down" line for a peripheral. The pullup is strong
> enough to give us a good default state but we really want outputs.
>
> * We'd like to provide this GPIO to a peripheral through device tree.
> ...and we'd like all the pinmux to be setup automatically so we use
> pinctrl-names = "default".
>
> * If we set the pinmux up as "output" then there's a chance that the
> line will glitch at bootup since the pinmux happens (changing the pin
> to output) before the driver has a chance to run.
I think that last point should be addressed by having a driver that owns
the GPIO set it to the desired output level, and the implementation of
the SoC's GPIO driver communicate with the pinctrl driver (which might
be the same driver; not sure here) so that gpio_direction_output()
causes the pinctrl HW to be programmed as output only after the GPIO HW
is programmed as output and with the correct output value. In this
scenario, the pinctrl default state wouldn't touch the pin's
input/output setting; that operation would be deferred until the driver
set up the GPIO as an output.
next prev parent reply other threads:[~2013-11-19 19:16 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-19 17:15 [PATCH] pinctrl: samsung: Allow pin value to be initialized using pinfunc Tomasz Figa
2013-11-19 18:46 ` Stephen Warren
2013-11-19 18:59 ` Doug Anderson
2013-11-19 19:16 ` Stephen Warren [this message]
2013-11-20 0:02 ` Kyungmin Park
2013-11-20 0:07 ` Stephen Warren
2013-11-20 12:51 ` Mark Brown
2013-11-25 14:34 ` Linus Walleij
2013-11-25 20:01 ` Kevin Bracey
2013-11-26 0:30 ` Tomasz Figa
2013-12-03 9:31 ` Linus Walleij
2013-12-03 9:33 ` Tomasz Figa
2013-12-03 9:29 ` Linus Walleij
2013-12-05 15:07 ` Mark Brown
2013-12-05 15:11 ` Tomasz Figa
2013-12-05 16:49 ` Kevin Bracey
2013-12-05 17:03 ` Tomasz Figa
2013-12-05 18:00 ` Mark Brown
2013-12-09 10:22 ` Linus Walleij
2013-12-09 17:04 ` Mark Brown
2013-12-05 23:54 ` Stephen Warren
2013-12-09 12:57 ` Linus Walleij
2013-11-20 14:57 ` Tomasz Figa
2013-11-20 13:38 ` Tomasz Figa
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=528BB913.6080409@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=heiko@sntech.de \
--cc=kgene.kim@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=t.figa@samsung.com \
--cc=thomas.abraham@linaro.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