pinctrl: tegra: dynamically calculate function list of groups
authorStephen Warren <swarren@nvidia.com>
Fri, 7 Mar 2014 19:22:16 +0000 (12:22 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 12 Mar 2014 14:23:41 +0000 (15:23 +0100)
commitce4362546612c00a059c255f5c55373d6ee1022a
tree88d22d243ae5e6b467caaeb7ab07af6f20f57632
parentedfab368c8087ae574d6fa49fdc85068a116b79b
pinctrl: tegra: dynamically calculate function list of groups

The per-SoC data structures for Tegra pinctrl stored some information
in a redundant way. Specifically, the list of groups that each function
could be muxed onto was stored once explicitly, and also as part of the
definition of each group. Eliminate this redundancy, and calculate each
function's list of valid groups at pinctrl probe time. This removes
thousands of lines of code from the pinctrl driver and ~16K from the
vmlinux binary size, and adds only about 500uS to the boot process (on
Tegra30; newer SoCs will likely be faster still).

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-tegra.c
drivers/pinctrl/pinctrl-tegra.h
drivers/pinctrl/pinctrl-tegra114.c
drivers/pinctrl/pinctrl-tegra124.c
drivers/pinctrl/pinctrl-tegra20.c
drivers/pinctrl/pinctrl-tegra30.c