All of lore.kernel.org
 help / color / mirror / Atom feed
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: Pinmux bindings proposal V2
Date: Mon, 30 Jan 2012 09:49:10 -0800	[thread overview]
Message-ID: <20120130174910.GG9339@atomide.com> (raw)
In-Reply-To: <20120130031346.GD10470@S2101-09.ap.freescale.net>

* Shawn Guo <shawn.guo@linaro.org> [120129 18:30]:
> On Fri, Jan 27, 2012 at 07:43:36AM -0800, Simon Glass wrote:
> ...
> > The cost of the pmx at dta node is about 12 bytes for the header (it
> > depends on the length of the name), and each of the properties above
> > is 16 bytes. So in total this node is 76 bytes. If we have 250 pins
> > being muxed as Tegra3 then this is about 20KB (including a bit of
> > slack for longer names). My point about being able to 'optimise out'
> > some of these remains, though, but probably not for the kernel.
> > 
> > Stephen's 'mux' property uses 12 bytes plus 8 bytes per pin/group (I
> > am removing the prefixes):
> > 
> >                        mux =
> >                                <PG_DTA   MUX_SDIO1>
> >                                <PG_DTD   MUX_SDIO1>;
> > 
> > so 28 bytes. What I proposed would use (12 + 2 * 16) per pin/group, or
> > 44 bytes (60% bigger):
> > 
> It's not only about size but also run-time tree travelling efficiency.
> Your proposal requires every single pin show as a node in device tree.
> Looking at these for_each_node_by_*() APIs in include/linux/of.h, you
> might agree we should avoid bloating device tree with so many nodes.

And that's why I'm suggesting two bindings: A minimal pinctrl-static
binding and more verbose pinctrl-dynamic binding.

AFAIK the number of pinctrl-dynamic bindings needed are just a fraction
of the pinctrl-static bindings. So the extra parsing needed for a few
pinctrl-dynamic bindings should not matter.

Sure it would be nice to have it all in a single binding, but these
bindings have conflicting requirements. So it may not be possible to
do it in a single binding in an efficient way.

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 09:49:10 -0800	[thread overview]
Message-ID: <20120130174910.GG9339@atomide.com> (raw)
In-Reply-To: <20120130031346.GD10470-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>

* Shawn Guo <shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> [120129 18:30]:
> On Fri, Jan 27, 2012 at 07:43:36AM -0800, Simon Glass wrote:
> ...
> > The cost of the pmx@dta node is about 12 bytes for the header (it
> > depends on the length of the name), and each of the properties above
> > is 16 bytes. So in total this node is 76 bytes. If we have 250 pins
> > being muxed as Tegra3 then this is about 20KB (including a bit of
> > slack for longer names). My point about being able to 'optimise out'
> > some of these remains, though, but probably not for the kernel.
> > 
> > Stephen's 'mux' property uses 12 bytes plus 8 bytes per pin/group (I
> > am removing the prefixes):
> > 
> >                        mux =
> >                                <PG_DTA   MUX_SDIO1>
> >                                <PG_DTD   MUX_SDIO1>;
> > 
> > so 28 bytes. What I proposed would use (12 + 2 * 16) per pin/group, or
> > 44 bytes (60% bigger):
> > 
> It's not only about size but also run-time tree travelling efficiency.
> Your proposal requires every single pin show as a node in device tree.
> Looking at these for_each_node_by_*() APIs in include/linux/of.h, you
> might agree we should avoid bloating device tree with so many nodes.

And that's why I'm suggesting two bindings: A minimal pinctrl-static
binding and more verbose pinctrl-dynamic binding.

AFAIK the number of pinctrl-dynamic bindings needed are just a fraction
of the pinctrl-static bindings. So the extra parsing needed for a few
pinctrl-dynamic bindings should not matter.

Sure it would be nice to have it all in a single binding, but these
bindings have conflicting requirements. So it may not be possible to
do it in a single binding in an efficient way.

Regards,

Tony

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Shawn Guo <shawn.guo@linaro.org>
Cc: Simon Glass <sjg@chromium.org>,
	Stephen Warren <swarren@nvidia.com>,
	Dong Aisheng-B29396 <B29396@freescale.com>,
	"Linus Walleij (linus.walleij@linaro.org)"
	<linus.walleij@linaro.org>,
	"Sascha Hauer (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>,
	Dong Aisheng <dongas86@gmail.com>,
	Thomas Abraham <thomas.abraham@linaro.org>,
	"Grant Likely (grant.likely@secretlab.ca)" 
	<grant.likely@secretlab.ca>,
	"devicetree-discuss@lists.ozlabs.org" 
	<devicetree-discuss@lists.ozlabs.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: Pinmux bindings proposal V2
Date: Mon, 30 Jan 2012 09:49:10 -0800	[thread overview]
Message-ID: <20120130174910.GG9339@atomide.com> (raw)
In-Reply-To: <20120130031346.GD10470@S2101-09.ap.freescale.net>

* Shawn Guo <shawn.guo@linaro.org> [120129 18:30]:
> On Fri, Jan 27, 2012 at 07:43:36AM -0800, Simon Glass wrote:
> ...
> > The cost of the pmx@dta node is about 12 bytes for the header (it
> > depends on the length of the name), and each of the properties above
> > is 16 bytes. So in total this node is 76 bytes. If we have 250 pins
> > being muxed as Tegra3 then this is about 20KB (including a bit of
> > slack for longer names). My point about being able to 'optimise out'
> > some of these remains, though, but probably not for the kernel.
> > 
> > Stephen's 'mux' property uses 12 bytes plus 8 bytes per pin/group (I
> > am removing the prefixes):
> > 
> >                        mux =
> >                                <PG_DTA   MUX_SDIO1>
> >                                <PG_DTD   MUX_SDIO1>;
> > 
> > so 28 bytes. What I proposed would use (12 + 2 * 16) per pin/group, or
> > 44 bytes (60% bigger):
> > 
> It's not only about size but also run-time tree travelling efficiency.
> Your proposal requires every single pin show as a node in device tree.
> Looking at these for_each_node_by_*() APIs in include/linux/of.h, you
> might agree we should avoid bloating device tree with so many nodes.

And that's why I'm suggesting two bindings: A minimal pinctrl-static
binding and more verbose pinctrl-dynamic binding.

AFAIK the number of pinctrl-dynamic bindings needed are just a fraction
of the pinctrl-static bindings. So the extra parsing needed for a few
pinctrl-dynamic bindings should not matter.

Sure it would be nice to have it all in a single binding, but these
bindings have conflicting requirements. So it may not be possible to
do it in a single binding in an efficient way.

Regards,

Tony

  reply	other threads:[~2012-01-30 17:49 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
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 [this message]
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=20120130174910.GG9339@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.