
Hi Stephen,
On 25 February 2015 at 20:44, Stephen Warren swarren@wwwdotorg.org wrote:
On 02/25/2015 05:54 PM, Simon Glass wrote:
On 24 February 2015 at 17:06, Stephen Warren swarren@wwwdotorg.org wrote:
On 02/24/2015 04:44 PM, Simon Glass wrote:
On 24 February 2015 at 14:08, Stephen Warren swarren@wwwdotorg.org wrote:
This series performs a few small cleanups to or parameterizations of the existing Tegra pinmux driver, and adds Tegra210 support. The Tegra210 code isn't actually used yet, since the balance of the Tegra210 support is not yet present. However, it should start appearing soon.
...
Stephen Warren (9): ARM: tegra: pinmux: add note re: drive group field defines ARM: tegra: pinmux: simplify some defines ARM: tegra: pinmux: handle feature removal on newer SoCs ARM: tegra: pinmux: move some type definitions ARM: tegra: pinmux: partially handle varying register layouts ARM: tegra: pinmux: support hsm/schmitt on pins ARM: tegra: pinmux: account for different drivegroup base registers ARM: tegra: pinmux: support Tegra210's e_io_hv pin option ARM: tegra: pinmux: add Tegra210 support
Does the Linux side look similar to this? The use of #defines seem like a potential temporary solution but I hope it doesn't stay that way.
...
The Linux side was already a bit more parameterized, so the Tegra210 support series doesn't have as many patches as the U-Boot series. However, that comes at the cost of the per-SoC "drivers" having much larger data tables, so I don't expect we'd want to adopt in U-Boot the same level of driver parameterization as Linux.
I see - do you know how much bigger the tables are?
Kernel per-SoC files:
text data bss dec hex filename 25532 1068 0 26600 67e8 pinctrl-tegra30.o 18744 1032 0 19776 4d40 pinctrl-tegra114.o 19868 1128 0 20996 5204 pinctrl-tegra124.o 16296 972 0 17268 4374 pinctrl-tegra210.o
U-Boot per-SoC files, although these could actually be reduced to zero if we re-wrote the per-board pinmux tables to use FUNC0..3 enums (i.e. raw HW register mux values) and hence got rid of the need to map a mux enum to FUNC0..3 values. Auto-generation of the per-board files would make pretty easy, if all boards were in tegra-pinmux-scripts.
text data bss dec hex filename 996 4 0 1000 3e8 .../tegra30/pinmux.o 1036 4 0 1040 410 .../tegra114/pinmux.o 1076 4 0 1080 438 .../tegra124/pinmux.o
Wow that's pretty compelling! I suppose removing the #ifdefs wouldn't bloat it that much, but it sounds like we should stick with what you have.
Regards, Simon