From: Tomasz Figa <tomasz.figa@gmail.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Doug Anderson <dianders@google.com>,
Stephen Warren <swarren@wwwdotorg.org>,
linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
"devicetree-discuss@lists.ozlabs.org"
<devicetree-discuss@lists.ozlabs.org>,
Thomas Abraham <thomas.abraham@linaro.org>,
Tomasz Figa <t.figa@samsung.com>, Simon Glass <sjg@chromium.org>,
Olof Johansson <olof@lixom.net>, Kukjin Kim <kgene.kim@gmail.com>
Subject: Re: Pulls and drive strengths in the pinctrl world
Date: Fri, 17 May 2013 11:09:19 +0200 [thread overview]
Message-ID: <2465185.vYkbXUqoOT@flatron> (raw)
In-Reply-To: <CACRpkdZ+wrV9O6T0XQFtpLeOgvEhACXc4ycokiqof81K7GSLjg@mail.gmail.com>
Hi Linus,
On Friday 17 of May 2013 10:38:53 Linus Walleij wrote:
> On Thu, May 16, 2013 at 2:03 AM, Doug Anderson <dianders@google.com>
wrote:
> >> I prefer to put all the static pinctrl configuration in the pinctrl
> >> hog, and only the dynamic stuff in the individual device nodes.
> >>
> >> I know LinusW won't like this suggestion much though:-)
>
> (It's not that bad actually...)
>
> > Ah right! I forgot about hogs in this case. That's also reasonable
> > as a solution and is similar to what we've got in the tree for
> > powerdown configuration of pins (I'll try to post this patch soon too,
> > WIP at <https://gerrit.chromium.org/gerrit/#/c/51292/> and
> > <https://gerrit.chromium.org/gerrit/#/c/51372/>.
>
> I don't like these Gerrit patches really, it's better to move
> this to the pinctrl core using hogs.
>
> If you look in drivers/pinctr/core.c you can find this:
>
> pinctrl_register()
> {
> (...)
> if (!IS_ERR(pctldev->p)) {
> pctldev->hog_default =
> pinctrl_lookup_state(pctldev->p,
> PINCTRL_STATE_DEFAULT); if (IS_ERR(pctldev->hog_default)) {
> dev_dbg(dev, "failed to lookup the default
> state\n"); } else {
> if (pinctrl_select_state(pctldev->p,
> pctldev->hog_default))
> dev_err(dev,
> "failed to select default
> state\n"); }
>
> pctldev->hog_sleep =
> pinctrl_lookup_state(pctldev->p,
>
> PINCTRL_STATE_SLEEP); if (IS_ERR(pctldev->hog_sleep))
> dev_dbg(dev, "failed to lookup the sleep
> state\n"); }
>
> Just add another state, pctldev->hog_shutdown to this, and
> add an operation pinctrl_force_poweroff() in the same spirit as
> pinctrl_force_sleep() that we already have.
>
> Add a new state to include/linux/pinctrl/pinctrl-state.h:
> #define PINCTRL_STATE_POWEROFF "poweroff"
>
> And define you pin table to hog these pins with the mentioned
> default and poweroff states.
>
> Result: pinctrl core keeps track of your offstate too.
Power down mode settings on our pin controller are completely unrelated to
normal mode settings. You can set them once in appropriate registers and
pins are switched to them automatically when the SoC enters sleep mode.
So IMHO in our case power mode settings are just additional pin
configuration options, next to pull-up/-down and driver strength.
Best regards,
Tomasz
next prev parent reply other threads:[~2013-05-17 9:09 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-15 16:44 Pulls and drive strengths in the pinctrl world Doug Anderson
2013-05-15 17:26 ` Tomasz Figa
2013-05-15 18:15 ` Olof Johansson
2013-05-15 21:19 ` Doug Anderson
2013-05-15 21:36 ` Tomasz Figa
2013-05-15 21:57 ` Doug Anderson
2013-05-15 18:29 ` Linus Walleij
2013-05-15 21:31 ` Doug Anderson
2013-05-15 21:41 ` Tomasz Figa
2013-05-15 21:43 ` Tomasz Figa
2013-05-15 22:01 ` Doug Anderson
2013-05-15 22:06 ` Tomasz Figa
2013-05-15 23:55 ` Doug Anderson
2013-05-16 0:13 ` Tomasz Figa
2013-05-16 0:22 ` Stephen Warren
[not found] ` <519426A8.8090908-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-17 12:26 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-17 21:17 ` Tomasz Figa
2013-05-18 8:18 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-18 14:57 ` Tomasz Figa
2013-05-18 16:30 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-18 17:13 ` Tomasz Figa
2013-05-19 9:17 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-19 9:46 ` Tomasz Figa
2013-05-19 10:39 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-19 10:56 ` Tomasz Figa
2013-05-23 21:42 ` Stephen Warren
[not found] ` <519E8D41.9040508-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-24 9:10 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-23 21:39 ` Stephen Warren
2013-05-21 18:28 ` Tomasz Figa
2013-05-21 19:09 ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-16 0:55 ` Doug Anderson
2013-05-16 18:00 ` Doug Anderson
2013-05-15 23:51 ` Stephen Warren
2013-05-16 0:03 ` Doug Anderson
2013-05-16 0:19 ` Tomasz Figa
2013-05-16 0:58 ` Doug Anderson
2013-05-17 8:38 ` Linus Walleij
2013-05-17 9:09 ` Tomasz Figa [this message]
2013-05-17 11:59 ` Linus Walleij
2013-05-17 12:38 ` Tomasz Figa
2013-05-17 14:56 ` Doug Anderson
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=2465185.vYkbXUqoOT@flatron \
--to=tomasz.figa@gmail.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=dianders@google.com \
--cc=kgene.kim@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=olof@lixom.net \
--cc=sjg@chromium.org \
--cc=swarren@wwwdotorg.org \
--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;
as well as URLs for NNTP newsgroup(s).