Re: Pinmux bindings proposal V2
From: Shawn Guo <hidden>
Date: 2012-01-30 03:01:45
Also in:
linux-arm-kernel, lkml
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. -- Regards, Shawn