aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2016-05-02 14:47:32 -0400
committerLinus Walleij <linus.walleij@linaro.org>2016-05-11 07:26:30 -0400
commit1d18a3f0f0809f6c71f1f6e9e268ee904ce0b588 (patch)
tree47bb8f4cff9b80021d7bc5461552dfd67a792a82
parentb22ef2a0979f2b91cfeeabb086e4d665183a93a1 (diff)
pinctrl: tegra: avoid parked_reg and parked_bank
NVIDIA's Tegra210 support the park bit to make pinmux configuration enable/disable. If parked bit is 1 then configuration does not apply and if it is 0 then pinmux configuration applies. This is to support to avoid any glitch in pinmux configurations. The parked bit is part of mux register and mux bank and hence it is not required to have member for the parked_reg and parked bank very similar to other bit field of the same register. Remove the need of the parked register and parked bank and get whether parked function supported or not by parked_bit. This is to make the parked bit handling same as other fields of mux registers. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra.c8
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra.h6
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra114.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra124.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra20.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra210.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra30.c4
7 files changed, 14 insertions, 20 deletions
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.c b/drivers/pinctrl/tegra/pinctrl-tegra.c
index 6e82b290cb4f..277622b4b6fb 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra.c
@@ -632,11 +632,11 @@ static void tegra_pinctrl_clear_parked_bits(struct tegra_pmx *pmx)
632 u32 val; 632 u32 val;
633 633
634 for (i = 0; i < pmx->soc->ngroups; ++i) { 634 for (i = 0; i < pmx->soc->ngroups; ++i) {
635 if (pmx->soc->groups[i].parked_reg >= 0) { 635 g = &pmx->soc->groups[i];
636 g = &pmx->soc->groups[i]; 636 if (g->parked_bit >= 0) {
637 val = pmx_readl(pmx, g->parked_bank, g->parked_reg); 637 val = pmx_readl(pmx, g->mux_bank, g->mux_reg);
638 val &= ~(1 << g->parked_bit); 638 val &= ~(1 << g->parked_bit);
639 pmx_writel(pmx, val, g->parked_bank, g->parked_reg); 639 pmx_writel(pmx, val, g->mux_bank, g->mux_reg);
640 } 640 }
641 } 641 }
642} 642}
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.h b/drivers/pinctrl/tegra/pinctrl-tegra.h
index d2ced17382b5..33b17cb1471e 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra.h
+++ b/drivers/pinctrl/tegra/pinctrl-tegra.h
@@ -93,9 +93,7 @@ struct tegra_function {
93 * @tri_reg: Tri-state register offset. 93 * @tri_reg: Tri-state register offset.
94 * @tri_bank: Tri-state register bank. 94 * @tri_bank: Tri-state register bank.
95 * @tri_bit: Tri-state register bit. 95 * @tri_bit: Tri-state register bit.
96 * @parked_reg: Parked register offset. -1 if unsupported. 96 * @parked_bit: Parked register bit. -1 if unsupported.
97 * @parked_bank: Parked register bank. 0 if unsupported.
98 * @parked_bit: Parked register bit. 0 if unsupported.
99 * @einput_bit: Enable-input register bit. 97 * @einput_bit: Enable-input register bit.
100 * @odrain_bit: Open-drain register bit. 98 * @odrain_bit: Open-drain register bit.
101 * @lock_bit: Lock register bit. 99 * @lock_bit: Lock register bit.
@@ -138,12 +136,10 @@ struct tegra_pingroup {
138 s16 pupd_reg; 136 s16 pupd_reg;
139 s16 tri_reg; 137 s16 tri_reg;
140 s16 drv_reg; 138 s16 drv_reg;
141 s16 parked_reg;
142 u32 mux_bank:2; 139 u32 mux_bank:2;
143 u32 pupd_bank:2; 140 u32 pupd_bank:2;
144 u32 tri_bank:2; 141 u32 tri_bank:2;
145 u32 drv_bank:2; 142 u32 drv_bank:2;
146 u32 parked_bank:2;
147 s32 mux_bit:6; 143 s32 mux_bit:6;
148 s32 pupd_bit:6; 144 s32 pupd_bit:6;
149 s32 tri_bit:6; 145 s32 tri_bit:6;
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra114.c b/drivers/pinctrl/tegra/pinctrl-tegra114.c
index 4851d169f4c7..952132ce5ea0 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra114.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra114.c
@@ -1578,7 +1578,7 @@ static struct tegra_function tegra114_functions[] = {
1578 .lock_bit = 7, \ 1578 .lock_bit = 7, \
1579 .ioreset_bit = PINGROUP_BIT_##ior(8), \ 1579 .ioreset_bit = PINGROUP_BIT_##ior(8), \
1580 .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \ 1580 .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \
1581 .parked_reg = -1, \ 1581 .parked_bit = -1, \
1582 .drv_reg = -1, \ 1582 .drv_reg = -1, \
1583 } 1583 }
1584 1584
@@ -1599,7 +1599,7 @@ static struct tegra_function tegra114_functions[] = {
1599 .rcv_sel_bit = -1, \ 1599 .rcv_sel_bit = -1, \
1600 .drv_reg = DRV_PINGROUP_REG(r), \ 1600 .drv_reg = DRV_PINGROUP_REG(r), \
1601 .drv_bank = 0, \ 1601 .drv_bank = 0, \
1602 .parked_reg = -1, \ 1602 .parked_bit = -1, \
1603 .hsm_bit = hsm_b, \ 1603 .hsm_bit = hsm_b, \
1604 .schmitt_bit = schmitt_b, \ 1604 .schmitt_bit = schmitt_b, \
1605 .lpmd_bit = lpmd_b, \ 1605 .lpmd_bit = lpmd_b, \
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra124.c b/drivers/pinctrl/tegra/pinctrl-tegra124.c
index a0ce723a9482..bca239e3ae50 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra124.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra124.c
@@ -1747,7 +1747,7 @@ static struct tegra_function tegra124_functions[] = {
1747 .lock_bit = 7, \ 1747 .lock_bit = 7, \
1748 .ioreset_bit = PINGROUP_BIT_##ior(8), \ 1748 .ioreset_bit = PINGROUP_BIT_##ior(8), \
1749 .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \ 1749 .rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9), \
1750 .parked_reg = -1, \ 1750 .parked_bit = -1, \
1751 .drv_reg = -1, \ 1751 .drv_reg = -1, \
1752 } 1752 }
1753 1753
@@ -1768,7 +1768,7 @@ static struct tegra_function tegra124_functions[] = {
1768 .rcv_sel_bit = -1, \ 1768 .rcv_sel_bit = -1, \
1769 .drv_reg = DRV_PINGROUP_REG(r), \ 1769 .drv_reg = DRV_PINGROUP_REG(r), \
1770 .drv_bank = 0, \ 1770 .drv_bank = 0, \
1771 .parked_reg = -1, \ 1771 .parked_bit = -1, \
1772 .hsm_bit = hsm_b, \ 1772 .hsm_bit = hsm_b, \
1773 .schmitt_bit = schmitt_b, \ 1773 .schmitt_bit = schmitt_b, \
1774 .lpmd_bit = lpmd_b, \ 1774 .lpmd_bit = lpmd_b, \
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra20.c b/drivers/pinctrl/tegra/pinctrl-tegra20.c
index 09bad6980ad1..91254d04c64f 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra20.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra20.c
@@ -1994,7 +1994,7 @@ static struct tegra_function tegra20_functions[] = {
1994 .tri_reg = ((tri_r) - TRISTATE_REG_A), \ 1994 .tri_reg = ((tri_r) - TRISTATE_REG_A), \
1995 .tri_bank = 0, \ 1995 .tri_bank = 0, \
1996 .tri_bit = tri_b, \ 1996 .tri_bit = tri_b, \
1997 .parked_reg = -1, \ 1997 .parked_bit = -1, \
1998 .einput_bit = -1, \ 1998 .einput_bit = -1, \
1999 .odrain_bit = -1, \ 1999 .odrain_bit = -1, \
2000 .lock_bit = -1, \ 2000 .lock_bit = -1, \
@@ -2014,7 +2014,7 @@ static struct tegra_function tegra20_functions[] = {
2014 .pupd_bank = 2, \ 2014 .pupd_bank = 2, \
2015 .pupd_bit = pupd_b, \ 2015 .pupd_bit = pupd_b, \
2016 .drv_reg = -1, \ 2016 .drv_reg = -1, \
2017 .parked_reg = -1, \ 2017 .parked_bit = -1, \
2018 } 2018 }
2019 2019
2020/* Pin groups for drive strength registers (configurable version) */ 2020/* Pin groups for drive strength registers (configurable version) */
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra210.c b/drivers/pinctrl/tegra/pinctrl-tegra210.c
index 2d856af389ef..2b70e93da9db 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra210.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra210.c
@@ -1310,8 +1310,6 @@ static struct tegra_function tegra210_functions[] = {
1310 .lock_bit = 7, \ 1310 .lock_bit = 7, \
1311 .ioreset_bit = -1, \ 1311 .ioreset_bit = -1, \
1312 .rcv_sel_bit = PINGROUP_BIT_##e_io_hv(10), \ 1312 .rcv_sel_bit = PINGROUP_BIT_##e_io_hv(10), \
1313 .parked_reg = PINGROUP_REG(r), \
1314 .parked_bank = 1, \
1315 .parked_bit = 5, \ 1313 .parked_bit = 5, \
1316 .hsm_bit = PINGROUP_BIT_##hsm(9), \ 1314 .hsm_bit = PINGROUP_BIT_##hsm(9), \
1317 .schmitt_bit = 12, \ 1315 .schmitt_bit = 12, \
@@ -1345,7 +1343,7 @@ static struct tegra_function tegra210_functions[] = {
1345 .rcv_sel_bit = -1, \ 1343 .rcv_sel_bit = -1, \
1346 .drv_reg = DRV_PINGROUP_REG(r), \ 1344 .drv_reg = DRV_PINGROUP_REG(r), \
1347 .drv_bank = 0, \ 1345 .drv_bank = 0, \
1348 .parked_reg = -1, \ 1346 .parked_bit = -1, \
1349 .hsm_bit = -1, \ 1347 .hsm_bit = -1, \
1350 .schmitt_bit = -1, \ 1348 .schmitt_bit = -1, \
1351 .lpmd_bit = -1, \ 1349 .lpmd_bit = -1, \
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra30.c b/drivers/pinctrl/tegra/pinctrl-tegra30.c
index fb7817fea2d9..474ac6daf513 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra30.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra30.c
@@ -2139,7 +2139,7 @@ static struct tegra_function tegra30_functions[] = {
2139 .lock_bit = 7, \ 2139 .lock_bit = 7, \
2140 .ioreset_bit = PINGROUP_BIT_##ior(8), \ 2140 .ioreset_bit = PINGROUP_BIT_##ior(8), \
2141 .rcv_sel_bit = -1, \ 2141 .rcv_sel_bit = -1, \
2142 .parked_reg = -1, \ 2142 .parked_bit = -1, \
2143 .drv_reg = -1, \ 2143 .drv_reg = -1, \
2144 } 2144 }
2145 2145
@@ -2160,7 +2160,7 @@ static struct tegra_function tegra30_functions[] = {
2160 .rcv_sel_bit = -1, \ 2160 .rcv_sel_bit = -1, \
2161 .drv_reg = DRV_PINGROUP_REG(r), \ 2161 .drv_reg = DRV_PINGROUP_REG(r), \
2162 .drv_bank = 0, \ 2162 .drv_bank = 0, \
2163 .parked_reg = -1, \ 2163 .parked_bit = -1, \
2164 .hsm_bit = hsm_b, \ 2164 .hsm_bit = hsm_b, \
2165 .schmitt_bit = schmitt_b, \ 2165 .schmitt_bit = schmitt_b, \
2166 .lpmd_bit = lpmd_b, \ 2166 .lpmd_bit = lpmd_b, \