From: Stephen Warren <swarren@wwwdotorg.org>
To: Thomas Abraham <thomas.abraham@linaro.org>
Cc: Tomasz Figa <t.figa@samsung.com>,
linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org, linus.walleij@linaro.org,
dong.aisheng@linaro.org, kgene.kim@samsung.com,
patches@linaro.org, w.sang@pengutronix.de, ben-linux@fluff.org
Subject: Re: [PATCH 1/2] i2c: s3c2410: add optional pin configuration using pinctrl interface
Date: Mon, 10 Sep 2012 13:21:30 -0600 [thread overview]
Message-ID: <504E3DBA.3080603@wwwdotorg.org> (raw)
In-Reply-To: <CAJuYYwQCQDTnpPR5WABtbozZOgc6_SZRBv3b6D8KY78tzMt-Eg@mail.gmail.com>
On 09/06/2012 05:06 AM, Thomas Abraham wrote:
> On 6 September 2012 15:04, Tomasz Figa <t.figa@samsung.com> wrote:
>> Hi,
>>
>> This patch shows the problem of the need to explicitly migrate all drivers
>> to pinctrl.
>>
>> Maybe we should consider extending the pinctrl subsystem to set the default
>> state automatically before binding a driver to a device, at least in case
>> of DT-based platforms?
>
> The pinctrl driver allows for activating default pin configuration
> when the pinctrl driver loads. This is referred to as "hogging". But
> should hog be used or not is something that needs to be decided. Some
> of the factors which favor the driver explicitly setting up the pin
> configuration are
>
> 1. After a suspend and resume cycle, the pin configuration registers
> may be reset to default values. Hence, during resume, the pin
> configuration has be redone.
I'd think it's the pinctrl driver's responsibility to make hogging work
correctly across suspend/resume.
> 2. Runtime muxing/config is possible.
The "client" driver would definitely have to be involved there, I agree.
> 3. Setting some of the config options such as pull-up by default might
> start consuming power from boot time itself, which could be avoided if
> such setup is done only when needed.
Well, the difference in time between "just before driver binding" and
"during probe" is minimal. If the driver/HW really needs to explicitly
differentiate between those states to save power, I'd assert that it's
covered by case (2) above.
> Adding pinctrl driver support in device drivers seems to be simple
> task. And it is just one time effort which can be reused on multiple
> SoC's.
>
>>
>> This would be similar to what is done currently with samsung-gpio bindings
>> - the pin is being configured by custom xlate callback based on additional
>> cells in GPIO specifier, when the driver retrieves the pin using
>> of_get{_named,}_gpio without the need of setting it up in the driver.
>
> The Samsung gpio dt bindings was just a bootstrap method to get device
> tree support going for Samsung platforms. The gpio xlate callback was
> used as a back door to setup the pinmux/pinconfig due to lack of
> generic driver interface to setup the pinmux/pinconfig for Samsung
> platforms. From a linux perspective, gpio and pinmux/pinconfig are
> separate entities. So using gpio xlate to setup pinmux/pinconfig was
> not correct but helped getting device tree enabled for Samsung
> platforms. With the pinctrl framework available now, there are generic
> interfaces to setup gpio and pinmux /pinconfig.
I agree; the Samsung GPIO bindings were surprising to me when I first
realized what was in the GPIO specifiers...
WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] i2c: s3c2410: add optional pin configuration using pinctrl interface
Date: Mon, 10 Sep 2012 13:21:30 -0600 [thread overview]
Message-ID: <504E3DBA.3080603@wwwdotorg.org> (raw)
In-Reply-To: <CAJuYYwQCQDTnpPR5WABtbozZOgc6_SZRBv3b6D8KY78tzMt-Eg@mail.gmail.com>
On 09/06/2012 05:06 AM, Thomas Abraham wrote:
> On 6 September 2012 15:04, Tomasz Figa <t.figa@samsung.com> wrote:
>> Hi,
>>
>> This patch shows the problem of the need to explicitly migrate all drivers
>> to pinctrl.
>>
>> Maybe we should consider extending the pinctrl subsystem to set the default
>> state automatically before binding a driver to a device, at least in case
>> of DT-based platforms?
>
> The pinctrl driver allows for activating default pin configuration
> when the pinctrl driver loads. This is referred to as "hogging". But
> should hog be used or not is something that needs to be decided. Some
> of the factors which favor the driver explicitly setting up the pin
> configuration are
>
> 1. After a suspend and resume cycle, the pin configuration registers
> may be reset to default values. Hence, during resume, the pin
> configuration has be redone.
I'd think it's the pinctrl driver's responsibility to make hogging work
correctly across suspend/resume.
> 2. Runtime muxing/config is possible.
The "client" driver would definitely have to be involved there, I agree.
> 3. Setting some of the config options such as pull-up by default might
> start consuming power from boot time itself, which could be avoided if
> such setup is done only when needed.
Well, the difference in time between "just before driver binding" and
"during probe" is minimal. If the driver/HW really needs to explicitly
differentiate between those states to save power, I'd assert that it's
covered by case (2) above.
> Adding pinctrl driver support in device drivers seems to be simple
> task. And it is just one time effort which can be reused on multiple
> SoC's.
>
>>
>> This would be similar to what is done currently with samsung-gpio bindings
>> - the pin is being configured by custom xlate callback based on additional
>> cells in GPIO specifier, when the driver retrieves the pin using
>> of_get{_named,}_gpio without the need of setting it up in the driver.
>
> The Samsung gpio dt bindings was just a bootstrap method to get device
> tree support going for Samsung platforms. The gpio xlate callback was
> used as a back door to setup the pinmux/pinconfig due to lack of
> generic driver interface to setup the pinmux/pinconfig for Samsung
> platforms. From a linux perspective, gpio and pinmux/pinconfig are
> separate entities. So using gpio xlate to setup pinmux/pinconfig was
> not correct but helped getting device tree enabled for Samsung
> platforms. With the pinctrl framework available now, there are generic
> interfaces to setup gpio and pinmux /pinconfig.
I agree; the Samsung GPIO bindings were surprising to me when I first
realized what was in the GPIO specifiers...
next prev parent reply other threads:[~2012-09-10 19:21 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-06 9:22 [PATCH 0/2] i2c: s3c2410: allow pin pin configuration using pinctrl Thomas Abraham
2012-09-06 9:22 ` Thomas Abraham
2012-09-06 9:23 ` [PATCH 1/2] i2c: s3c2410: add optional pin configuration using pinctrl interface Thomas Abraham
2012-09-06 9:23 ` Thomas Abraham
2012-09-06 9:34 ` Tomasz Figa
2012-09-06 9:34 ` Tomasz Figa
2012-09-06 11:06 ` Thomas Abraham
2012-09-06 11:06 ` Thomas Abraham
2012-09-06 12:28 ` Tomasz Figa
2012-09-06 12:28 ` Tomasz Figa
2012-09-10 19:55 ` Linus Walleij
2012-09-10 19:55 ` Linus Walleij
2012-09-10 19:21 ` Stephen Warren [this message]
2012-09-10 19:21 ` Stephen Warren
[not found] ` <504E3DBA.3080603-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-09-17 7:28 ` Thomas Abraham
2012-09-17 7:28 ` Thomas Abraham
2012-09-10 20:02 ` Linus Walleij
2012-09-10 20:02 ` Linus Walleij
[not found] ` <CACRpkdZ7kjfDQ-CNCcCv5fQwSqMez6sKSMUMLB=0Aviboiz=2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-09-17 7:52 ` Thomas Abraham
2012-09-17 7:52 ` Thomas Abraham
[not found] ` <1346923381-14144-1-git-send-email-thomas.abraham-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-09-06 9:23 ` [PATCH 2/2] ARM: dts: exynos4: allow i2c0 bus to be configured " Thomas Abraham
2012-09-06 9:23 ` Thomas Abraham
2012-09-06 10:13 ` Tomasz Figa
2012-09-06 10:13 ` Tomasz Figa
2012-09-06 11:14 ` Thomas Abraham
2012-09-06 11:14 ` Thomas Abraham
2012-09-10 19:23 ` Stephen Warren
2012-09-10 19:23 ` Stephen Warren
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=504E3DBA.3080603@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=ben-linux@fluff.org \
--cc=dong.aisheng@linaro.org \
--cc=kgene.kim@samsung.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=patches@linaro.org \
--cc=t.figa@samsung.com \
--cc=thomas.abraham@linaro.org \
--cc=w.sang@pengutronix.de \
/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.