linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@nvidia.com>
To: Shawn Guo <shawn.guo@linaro.org>
Cc: Dong Aisheng-B29396 <B29396@freescale.com>,
	"linus.walleij@stericsson.com" <linus.walleij@stericsson.com>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
	"rob.herring@calxeda.com" <rob.herring@calxeda.com>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	"cjb@laptop.org" <cjb@laptop.org>,
	"Simon Glass (sjg@chromium.org)" <sjg@chromium.org>,
	Dong Aisheng <dongas86@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"devicetree-discuss@lists.ozlabs.org" 
	<devicetree-discuss@lists.ozlabs.org>
Subject: RE: Pinmux bindings proposal
Date: Wed, 18 Jan 2012 11:00:38 -0800	[thread overview]
Message-ID: <74CDBE0F657A3D45AFBB94109FB122FF1780DAAE7C@HQMAIL01.nvidia.com> (raw)
In-Reply-To: <20120118033209.GB563@S2101-09.ap.freescale.net>

Shawn Guo wrote at Tuesday, January 17, 2012 8:32 PM:
> On Tue, Jan 17, 2012 at 10:47:14AM -0800, Stephen Warren wrote:
> > Shawn Guo wrote at Saturday, January 14, 2012 12:09 AM:
> > > On Fri, Jan 13, 2012 at 12:39:42PM -0800, Stephen Warren wrote:
...
> > > >                 /*
> > > >                  * The actual definition of the complete state of the
> > > >                  * pinmux as required by some driver.
> > > >                  *
> > > >                  * These can be either directly in the device node, or
> > > >                  * somewhere in tegra20.dtsi in order to provide pre-
> > > >                  * selected/common configurations. Hence, they're referred
> > > >                  * to by phandle above.
> > > >                  */
> > > >                 pmx_sdhci_active: {
> > > >                         /*
> > > >                          * Pin mux settings. Mandatory?
> > > >                          * Not mandatory if the 1:1 mentioned above is
> > > >                          * extended to 1:n.
> > > >                          *
> > > >                          * Format is <&pmx_controller_phandle muxable_entity_id
> > > >                          * selected_function>.
> > > >                          *
> > > >                          * The pmx phandle is required since there may be more
> > > >                          * than one pinmux controller in the system. Even if
> > > >                          * this node is inside the pinmux controller itself, I
> > > >                          * think it's simpler to just always have this field
> > > >                          * present in the binding for consistency.
> > > >                          *
> > >
> > > I prefer to just put such nodes inside pinctrl controller itself and
> > > drop those phandles.
> >
> > My rationale here:
> >
> > Forcing those nodes to be inside the controller node forces us to store
> > any board-specific custom configurations or overrides in the controller
> > node too; I'd simply prefer the flexibility to put them anywhere.
>
> Hmm, this type of flexibility does not make too much point to me.  On
> the contrary, it's good to have a centralized place for these nodes,
> so that they can be well organized and people can find them easily.

I still would really rather have the flexibility to just put the nodes
anywhere.

However, I don't think we lose any functionality by forcing the nodes
to be inside the pin controller's node. And as you say, we do get to
remove the phandle from the mux and config properties then too, which
very marginally simplifies parsing.

One other concern I had was a device that needed to configure the pin
mux on two different pin controllers (think the main SoC and some complex
chip attached to one of the SoC's external busses). Ideally, there'd be
a Linux device for each end of the bus, and each would configure the
respective chip's pinmux. However, I can certainly foresee cases where
there's only a Linux device for the main SoC, and it'd need to configure
both chips' pinmux. Still, I think we can deal with that easily enough,
since that device's pinctrl property can simply use the 1:n feature, and
have multiple entries pointing at both chip's pinctrl device:

foo@c8000200 {
   ...
   pinctrl = <&pinmux_soc_xxx> <&pinmux_otherchip_xxx>
             <&pinmux_soc_xxx_suspend> <&pinmux_otherchip_xxx_suspend>;
   pinctrl-entries = <2 2>;
   pinctrl-names = "active", "suspend";
};

So, I can live with requiring the pin configuration nodes to be underneath
the relevant pin controller's node, and removing the phandle from the
mux and config properties in the pin configuration nodes.

-- 
nvpublic


  reply	other threads:[~2012-01-18 19:01 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-13 20:39 Pinmux bindings proposal Stephen Warren
2012-01-14  7:09 ` Shawn Guo
2012-01-17 18:47   ` Stephen Warren
2012-01-18  3:32     ` Shawn Guo
2012-01-18 19:00       ` Stephen Warren [this message]
2012-01-16 12:50 ` Dong Aisheng-B29396
2012-01-17  8:23   ` Shawn Guo
2012-01-17  9:46     ` Dong Aisheng-B29396
2012-01-17 14:13       ` Shawn Guo
2012-01-17 19:32         ` Stephen Warren
2012-01-18  3:44         ` Dong Aisheng-B29396
2012-01-18  4:47           ` Shawn Guo
2012-01-18 19:24           ` Stephen Warren
2012-01-17 19:28       ` Stephen Warren
2012-01-18 11:06         ` Dong Aisheng-B29396
2012-01-20 20:28           ` Stephen Warren
2012-01-27 12:00             ` Linus Walleij
2012-01-27 16:58               ` Stephen Warren
2012-01-17 19:21     ` Stephen Warren
2012-01-18  4:01       ` Shawn Guo
2012-01-18  9:32       ` Dong Aisheng-B29396
2012-01-17 19:09   ` Stephen Warren
2012-01-18  7:24     ` Dong Aisheng-B29396
2012-01-18 19:42       ` Stephen Warren
2012-01-16 18:28 ` Grant Likely
2012-01-18 14:13   ` Tony Lindgren
2012-01-18 14:30     ` Shawn Guo
2012-01-18 15:32       ` Tony Lindgren
2012-01-18 16:29         ` Tony Lindgren
2012-01-18 20:22           ` Grant Likely
2012-01-18 20:20         ` Grant Likely
2012-01-19 10:31           ` Tony Lindgren
2012-01-18 20:02     ` Stephen Warren
2012-01-19 10:57       ` Tony Lindgren
2012-01-20 20:50         ` Stephen Warren
2012-01-23 20:13           ` Tony Lindgren
2012-01-23 22:54             ` Stephen Warren
2012-01-27 13:11           ` Linus Walleij
2012-01-18 12:16 ` Thomas Abraham
2012-01-18 19:52   ` Stephen Warren
2012-01-19 17:01     ` Tony Lindgren
2012-01-19 13:10 ` Thomas Abraham
2012-01-19 16:56   ` Tony Lindgren
2012-01-19 17:38     ` Thomas Abraham
2012-01-19 18:20       ` Tony Lindgren
2012-01-19 18:38         ` Thomas Abraham
2012-01-20 10:05           ` Tony Lindgren
2012-01-20 16:17             ` Thomas Abraham
2012-01-20 17:53               ` Tony Lindgren
2012-01-21  1:38                 ` Thomas Abraham
2012-01-20 21:15     ` Stephen Warren
2012-01-20 21:11   ` Stephen Warren
2012-01-21  1:27     ` Thomas Abraham
2012-01-23 22:43       ` 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=74CDBE0F657A3D45AFBB94109FB122FF1780DAAE7C@HQMAIL01.nvidia.com \
    --to=swarren@nvidia.com \
    --cc=B29396@freescale.com \
    --cc=cjb@laptop.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dongas86@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rob.herring@calxeda.com \
    --cc=s.hauer@pengutronix.de \
    --cc=shawn.guo@linaro.org \
    --cc=sjg@chromium.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).