From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: Pinmux bindings proposal V2
Date: Mon, 30 Jan 2012 18:29:06 -0800 [thread overview]
Message-ID: <20120131022906.GH9339@atomide.com> (raw)
In-Reply-To: <20120131013215.GB24681@S2101-09.ap.freescale.net>
* Shawn Guo <shawn.guo@linaro.org> [120130 16:49]:
> On Mon, Jan 30, 2012 at 09:20:42AM -0800, Tony Lindgren wrote:
> > * Shawn Guo <shawn.guo@linaro.org> [120129 17:13]:
> > > On Fri, Jan 27, 2012 at 09:05:45AM -0800, Tony Lindgren wrote:
> ...
> > > > Wouldn't it be cleaner to just clk_get esdhc_clk during init, then
> > > > do clk_set_rate on it to toggle the rates?
> > > >
> > > It's not an init-time switch but run-time one. That said,
> > > sdhci_ops.set_clock will be called during run-time.
> >
> > Right, basically you don't want to do clk_get or pinmux_get during
> > runtime, you do that once one during init. Then do clk_set_rate or
> > whaterver during runtime.
> >
> > Is there anything stopping from implementing sdhci_ops.set_rate
> > using clock framework and clk_set_rate in this case BTW?
> >
> We are doing this exactly for clk, and trying to figure out how to
> handle pinctrl here. I do not see how we can do pinmux_get at
> init-time and pinmux_set_whatever at run-time. The pinmux API does
> not work that way.
Hmm OK I see what you mean. Maybe we should have something like
pinmux_get/set_function to change the mux without having to do
pinmux_put and pinmux_get during runtime? As long as the locking is
per pin that should be safe to do.
> > > > > > So I'd rather stay out of random named states for
> > > > > > the pins coming from device tree; If we still need them, they should
> > > > > > be common bindings rather than things like "xyz_clock_hack".
> > > > > >
> > > > > The binding defines the syntax, and I do not see the necessity to
> > > > > force the particular state name, which is really pinctrl client
> > > > > device specific.
> > > >
> > > > Do you have some other custom pin state example other than the
> > > > clock rate change example above?
> > > >
> > > I have another case PM related. To aggressively save power, the pins
> > > configured for particular function during active mode need to be
> > > muxed on gpio mode and output 0 in low-power mode.
> >
> > OK, but basically only a small subset of pins of the total pins?
> >
> Actually, all pins used by the block.
That's still a fraction of the total pins on the SoC that need dynamic
remuxing, right?
Regards,
Tony
WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
To: Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Dong Aisheng <dongas86-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org"
<rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
"Sascha Hauer (s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org)"
<s.hauer-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
"kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org"
<kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
"cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org"
<cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: Pinmux bindings proposal V2
Date: Mon, 30 Jan 2012 18:29:06 -0800 [thread overview]
Message-ID: <20120131022906.GH9339@atomide.com> (raw)
In-Reply-To: <20120131013215.GB24681-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
* Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> [120130 16:49]:
> On Mon, Jan 30, 2012 at 09:20:42AM -0800, Tony Lindgren wrote:
> > * Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> [120129 17:13]:
> > > On Fri, Jan 27, 2012 at 09:05:45AM -0800, Tony Lindgren wrote:
> ...
> > > > Wouldn't it be cleaner to just clk_get esdhc_clk during init, then
> > > > do clk_set_rate on it to toggle the rates?
> > > >
> > > It's not an init-time switch but run-time one. That said,
> > > sdhci_ops.set_clock will be called during run-time.
> >
> > Right, basically you don't want to do clk_get or pinmux_get during
> > runtime, you do that once one during init. Then do clk_set_rate or
> > whaterver during runtime.
> >
> > Is there anything stopping from implementing sdhci_ops.set_rate
> > using clock framework and clk_set_rate in this case BTW?
> >
> We are doing this exactly for clk, and trying to figure out how to
> handle pinctrl here. I do not see how we can do pinmux_get at
> init-time and pinmux_set_whatever at run-time. The pinmux API does
> not work that way.
Hmm OK I see what you mean. Maybe we should have something like
pinmux_get/set_function to change the mux without having to do
pinmux_put and pinmux_get during runtime? As long as the locking is
per pin that should be safe to do.
> > > > > > So I'd rather stay out of random named states for
> > > > > > the pins coming from device tree; If we still need them, they should
> > > > > > be common bindings rather than things like "xyz_clock_hack".
> > > > > >
> > > > > The binding defines the syntax, and I do not see the necessity to
> > > > > force the particular state name, which is really pinctrl client
> > > > > device specific.
> > > >
> > > > Do you have some other custom pin state example other than the
> > > > clock rate change example above?
> > > >
> > > I have another case PM related. To aggressively save power, the pins
> > > configured for particular function during active mode need to be
> > > muxed on gpio mode and output 0 in low-power mode.
> >
> > OK, but basically only a small subset of pins of the total pins?
> >
> Actually, all pins used by the block.
That's still a fraction of the total pins on the SoC that need dynamic
remuxing, right?
Regards,
Tony
WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Shawn Guo <shawn.guo@linaro.org>
Cc: Stephen Warren <swarren@nvidia.com>,
Dong Aisheng <dongas86@gmail.com>,
"devicetree-discuss@lists.ozlabs.org"
<devicetree-discuss@lists.ozlabs.org>,
"Linus Walleij (linus.walleij@linaro.org)"
<linus.walleij@linaro.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"rob.herring@calxeda.com" <rob.herring@calxeda.com>,
"Grant Likely (grant.likely@secretlab.ca)"
<grant.likely@secretlab.ca>,
Thomas Abraham <thomas.abraham@linaro.org>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
"Simon Glass (sjg@chromium.org)" <sjg@chromium.org>,
"cjb@laptop.org" <cjb@laptop.org>,
Dong Aisheng-B29396 <B29396@freescale.com>,
"Sascha Hauer (s.hauer@pengutronix.de)" <s.hauer@pengutronix.de>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: Pinmux bindings proposal V2
Date: Mon, 30 Jan 2012 18:29:06 -0800 [thread overview]
Message-ID: <20120131022906.GH9339@atomide.com> (raw)
In-Reply-To: <20120131013215.GB24681@S2101-09.ap.freescale.net>
* Shawn Guo <shawn.guo@linaro.org> [120130 16:49]:
> On Mon, Jan 30, 2012 at 09:20:42AM -0800, Tony Lindgren wrote:
> > * Shawn Guo <shawn.guo@linaro.org> [120129 17:13]:
> > > On Fri, Jan 27, 2012 at 09:05:45AM -0800, Tony Lindgren wrote:
> ...
> > > > Wouldn't it be cleaner to just clk_get esdhc_clk during init, then
> > > > do clk_set_rate on it to toggle the rates?
> > > >
> > > It's not an init-time switch but run-time one. That said,
> > > sdhci_ops.set_clock will be called during run-time.
> >
> > Right, basically you don't want to do clk_get or pinmux_get during
> > runtime, you do that once one during init. Then do clk_set_rate or
> > whaterver during runtime.
> >
> > Is there anything stopping from implementing sdhci_ops.set_rate
> > using clock framework and clk_set_rate in this case BTW?
> >
> We are doing this exactly for clk, and trying to figure out how to
> handle pinctrl here. I do not see how we can do pinmux_get at
> init-time and pinmux_set_whatever at run-time. The pinmux API does
> not work that way.
Hmm OK I see what you mean. Maybe we should have something like
pinmux_get/set_function to change the mux without having to do
pinmux_put and pinmux_get during runtime? As long as the locking is
per pin that should be safe to do.
> > > > > > So I'd rather stay out of random named states for
> > > > > > the pins coming from device tree; If we still need them, they should
> > > > > > be common bindings rather than things like "xyz_clock_hack".
> > > > > >
> > > > > The binding defines the syntax, and I do not see the necessity to
> > > > > force the particular state name, which is really pinctrl client
> > > > > device specific.
> > > >
> > > > Do you have some other custom pin state example other than the
> > > > clock rate change example above?
> > > >
> > > I have another case PM related. To aggressively save power, the pins
> > > configured for particular function during active mode need to be
> > > muxed on gpio mode and output 0 in low-power mode.
> >
> > OK, but basically only a small subset of pins of the total pins?
> >
> Actually, all pins used by the block.
That's still a fraction of the total pins on the SoC that need dynamic
remuxing, right?
Regards,
Tony
next prev parent reply other threads:[~2012-01-31 2:29 UTC|newest]
Thread overview: 146+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-20 22:22 Pinmux bindings proposal V2 Stephen Warren
2012-01-20 22:22 ` Stephen Warren
2012-01-23 21:00 ` Tony Lindgren
2012-01-23 21:00 ` Tony Lindgren
2012-01-23 21:00 ` Tony Lindgren
2012-01-23 23:08 ` Stephen Warren
2012-01-23 23:08 ` Stephen Warren
2012-01-23 23:08 ` Stephen Warren
2012-01-24 1:20 ` Tony Lindgren
2012-01-24 1:20 ` Tony Lindgren
2012-01-24 1:20 ` Tony Lindgren
2012-01-24 22:29 ` Stephen Warren
2012-01-24 22:29 ` Stephen Warren
2012-01-24 22:29 ` Stephen Warren
2012-01-25 0:04 ` Tony Lindgren
2012-01-25 0:04 ` Tony Lindgren
2012-01-26 19:33 ` Stephen Warren
2012-01-26 19:33 ` Stephen Warren
2012-01-26 19:33 ` Stephen Warren
2012-01-27 2:08 ` Tony Lindgren
2012-01-27 2:08 ` Tony Lindgren
2012-01-27 6:57 ` Shawn Guo
2012-01-27 6:57 ` Shawn Guo
2012-01-27 6:57 ` Shawn Guo
2012-01-27 17:05 ` Tony Lindgren
2012-01-27 17:05 ` Tony Lindgren
2012-01-27 17:05 ` Tony Lindgren
2012-01-30 1:56 ` Shawn Guo
2012-01-30 1:56 ` Shawn Guo
2012-01-30 1:56 ` Shawn Guo
2012-01-30 17:20 ` Tony Lindgren
2012-01-30 17:20 ` Tony Lindgren
2012-01-30 17:20 ` Tony Lindgren
2012-01-31 1:32 ` Shawn Guo
2012-01-31 1:32 ` Shawn Guo
2012-01-31 2:29 ` Tony Lindgren [this message]
2012-01-31 2:29 ` Tony Lindgren
2012-01-31 2:29 ` Tony Lindgren
2012-01-31 14:35 ` Reg pinmux driver for OMAP based SoC- AM335X Mohammed, Afzal
2012-01-31 17:05 ` Tony Lindgren
2012-01-31 17:05 ` Tony Lindgren
2012-02-01 10:04 ` Hiremath, Vaibhav
2012-02-01 10:04 ` Hiremath, Vaibhav
2012-02-01 18:14 ` Tony Lindgren
2012-02-01 18:14 ` Tony Lindgren
2012-02-03 20:57 ` Tony Lindgren
2012-02-03 20:57 ` Tony Lindgren
2012-02-01 11:00 ` Mohammed, Afzal
2012-02-01 11:00 ` Mohammed, Afzal
2012-02-01 5:36 ` Pinmux bindings proposal V2 Shawn Guo
2012-02-01 5:36 ` Shawn Guo
2012-02-01 5:36 ` Shawn Guo
2012-01-27 17:36 ` Stephen Warren
2012-01-27 17:36 ` Stephen Warren
2012-01-27 17:36 ` Stephen Warren
2012-01-27 17:42 ` Tony Lindgren
2012-01-27 17:42 ` Tony Lindgren
2012-01-27 17:42 ` Tony Lindgren
2012-01-26 9:36 ` Shawn Guo
2012-01-26 9:36 ` Shawn Guo
2012-01-26 9:36 ` Shawn Guo
2012-01-26 17:51 ` Tony Lindgren
2012-01-26 17:51 ` Tony Lindgren
2012-01-26 17:51 ` Tony Lindgren
2012-01-27 7:19 ` Shawn Guo
2012-01-27 7:19 ` Shawn Guo
2012-01-27 7:19 ` Shawn Guo
2012-01-27 17:16 ` Tony Lindgren
2012-01-27 17:16 ` Tony Lindgren
2012-01-27 17:16 ` Tony Lindgren
2012-01-30 2:10 ` Shawn Guo
2012-01-30 2:10 ` Shawn Guo
2012-01-30 2:10 ` Shawn Guo
2012-01-30 17:43 ` Tony Lindgren
2012-01-30 17:43 ` Tony Lindgren
2012-01-30 17:43 ` Tony Lindgren
2012-01-31 1:07 ` Shawn Guo
2012-01-31 1:07 ` Shawn Guo
2012-01-31 1:07 ` Shawn Guo
2012-01-26 9:24 ` Shawn Guo
2012-01-26 9:24 ` Shawn Guo
2012-01-26 17:42 ` Simon Glass
2012-01-26 17:42 ` Simon Glass
2012-01-27 2:21 ` Tony Lindgren
2012-01-27 2:21 ` Tony Lindgren
2012-01-27 2:21 ` Tony Lindgren
2012-01-27 15:43 ` Simon Glass
2012-01-27 15:43 ` Simon Glass
2012-01-27 17:37 ` Tony Lindgren
2012-01-27 17:37 ` Tony Lindgren
2012-01-27 17:37 ` Tony Lindgren
2012-01-27 17:51 ` Stephen Warren
2012-01-27 17:51 ` Stephen Warren
2012-01-27 17:51 ` Stephen Warren
2012-01-27 18:10 ` Tony Lindgren
2012-01-27 18:10 ` Tony Lindgren
2012-01-27 18:10 ` Tony Lindgren
2012-01-30 3:27 ` Shawn Guo
2012-01-30 3:27 ` Shawn Guo
2012-01-30 3:27 ` Shawn Guo
2012-01-30 3:13 ` Shawn Guo
2012-01-30 3:13 ` Shawn Guo
2012-01-30 17:49 ` Tony Lindgren
2012-01-30 17:49 ` Tony Lindgren
2012-01-30 17:49 ` Tony Lindgren
2012-01-27 17:38 ` Stephen Warren
2012-01-27 17:38 ` Stephen Warren
2012-01-27 17:38 ` Stephen Warren
2012-01-27 17:29 ` Stephen Warren
2012-01-27 17:29 ` Stephen Warren
2012-01-27 17:29 ` Stephen Warren
2012-01-30 2:31 ` Shawn Guo
2012-01-30 2:31 ` Shawn Guo
2012-01-30 2:31 ` Shawn Guo
2012-02-01 14:35 ` Shawn Guo
2012-02-01 14:35 ` Shawn Guo
2012-02-02 18:36 ` Stephen Warren
2012-02-02 18:36 ` Stephen Warren
2012-02-02 18:36 ` Stephen Warren
2012-02-02 20:07 ` Dong Aisheng
2012-02-02 20:07 ` Dong Aisheng
2012-02-02 20:07 ` Dong Aisheng
2012-02-03 14:02 ` Shawn Guo
2012-02-03 14:02 ` Shawn Guo
2012-02-03 14:02 ` Shawn Guo
2012-02-03 17:21 ` Dong Aisheng
2012-02-03 17:21 ` Dong Aisheng
2012-02-03 17:21 ` Dong Aisheng
2012-02-03 17:32 ` Tony Lindgren
2012-02-03 17:32 ` Tony Lindgren
2012-02-03 17:32 ` Tony Lindgren
2012-02-03 18:13 ` Dong Aisheng
2012-02-03 18:13 ` Dong Aisheng
2012-02-03 18:13 ` Dong Aisheng
2012-02-03 21:05 ` Tony Lindgren
2012-02-03 21:05 ` Tony Lindgren
2012-02-04 16:55 ` Dong Aisheng
2012-02-04 16:55 ` Dong Aisheng
2012-02-04 17:15 ` Tony Lindgren
2012-02-04 17:15 ` Tony Lindgren
2012-02-04 17:15 ` Tony Lindgren
2012-02-03 8:46 ` Shawn Guo
2012-02-03 8:46 ` Shawn Guo
2012-02-13 19:58 ` Stephen Warren
2012-02-13 19:58 ` Stephen Warren
2012-02-13 19:58 ` 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=20120131022906.GH9339@atomide.com \
--to=tony@atomide.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 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.