Commit 6240d691 authored by Stephen Warren's avatar Stephen Warren Committed by Linus Walleij

pinctrl: tegra: remove fsafe from data tables

The fsafe value in the pingroup data tables is only used to implement
tegra_pinctrl_disable(). The only reason this function is called is when
dynamically switching between pinmux states, i.e. when disabling the old
state before programming the new state. It's simpler to have the new
target state define the expected value of each pin (and all current DTs
do that). This also gives more flexibility, since it allows individual
boards explicit control over the "inactive" mux function for each pin,
rather than requiring it to be an SoC-specific value. Assuming this, we
can get rid of the fsafe value from the driver completely, thus saving
some more space in the driver tables.

While re-writing the content of tegra124_pingroups[], fix the indentation
to use a TAB instead of spaces.
Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
Acked-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent e53b7974
...@@ -295,17 +295,11 @@ static void tegra_pinctrl_disable(struct pinctrl_dev *pctldev, ...@@ -295,17 +295,11 @@ static void tegra_pinctrl_disable(struct pinctrl_dev *pctldev,
{ {
struct tegra_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); struct tegra_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
const struct tegra_pingroup *g; const struct tegra_pingroup *g;
u32 val;
g = &pmx->soc->groups[group]; g = &pmx->soc->groups[group];
if (WARN_ON(g->mux_reg < 0)) if (WARN_ON(g->mux_reg < 0))
return; return;
val = pmx_readl(pmx, g->mux_bank, g->mux_reg);
val &= ~(0x3 << g->mux_bit);
val |= g->func_safe << g->mux_bit;
pmx_writel(pmx, val, g->mux_bank, g->mux_reg);
} }
static const struct pinmux_ops tegra_pinmux_ops = { static const struct pinmux_ops tegra_pinmux_ops = {
......
...@@ -127,7 +127,6 @@ struct tegra_pingroup { ...@@ -127,7 +127,6 @@ struct tegra_pingroup {
const unsigned *pins; const unsigned *pins;
unsigned npins; unsigned npins;
unsigned funcs[4]; unsigned funcs[4];
unsigned func_safe;
s16 mux_reg; s16 mux_reg;
s16 pupd_reg; s16 pupd_reg;
s16 tri_reg; s16 tri_reg;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment