[U-Boot] [PATCH 0/9] ARM: tegra: pinmux: Tegra210 support

Simon Glass
2015-02-28T05:12:39Z

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