summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinctrl-tegra20.c
diff options
context:
space:
mode:
authorPritesh Raithatha <praithatha@nvidia.com>2013-01-08 02:32:36 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-01-18 10:13:52 -0500
commit348d1bf75c09f854630e9bd161dc2a88aebe2149 (patch)
treeb7f3fd0f286d8191584c8d2f0200a29121e1acf2 /drivers/pinctrl/pinctrl-tegra20.c
parentb2083062a3b4035e85349120b426ecef2b6d155f (diff)
pinctrl: tegra: add support for rcv-sel and drive type
NVIDIA's Tegra114 added two more configuration parameter in pinmux i.e. rcv-sel and drive type. rcv-sel: Select between High and Normal VIL/VIH receivers. RCVR_SEL=1: High VIL/VIH RCVR_SEL=0: Normal VIL/VIH drv_type: Ouptput drive type: 33-50 ohm driver: 0x1 66-100ohm driver: 0x0 Add support of these parameters to be configure from DTS file. Tegra20 and Tegra30 does not support this configuration and hence initialize their pinmux structure with reg = -1. Originally written by Pritesh Raithatha. Changes by ldewangan: - remove drvtype_width as it is always 2. - Better describe the change. Signed-off-by: Pritesh Raithatha <praithatha@nvidia.com> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinctrl-tegra20.c')
-rw-r--r--drivers/pinctrl/pinctrl-tegra20.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-tegra20.c b/drivers/pinctrl/pinctrl-tegra20.c
index e848189038f0..fcfb7d012c5b 100644
--- a/drivers/pinctrl/pinctrl-tegra20.c
+++ b/drivers/pinctrl/pinctrl-tegra20.c
@@ -2624,7 +2624,9 @@ static const struct tegra_function tegra20_functions[] = {
2624 .odrain_reg = -1, \ 2624 .odrain_reg = -1, \
2625 .lock_reg = -1, \ 2625 .lock_reg = -1, \
2626 .ioreset_reg = -1, \ 2626 .ioreset_reg = -1, \
2627 .rcv_sel_reg = -1, \
2627 .drv_reg = -1, \ 2628 .drv_reg = -1, \
2629 .drvtype_reg = -1, \
2628 } 2630 }
2629 2631
2630/* Pin groups with only pull up and pull down control */ 2632/* Pin groups with only pull up and pull down control */
@@ -2642,7 +2644,9 @@ static const struct tegra_function tegra20_functions[] = {
2642 .odrain_reg = -1, \ 2644 .odrain_reg = -1, \
2643 .lock_reg = -1, \ 2645 .lock_reg = -1, \
2644 .ioreset_reg = -1, \ 2646 .ioreset_reg = -1, \
2647 .rcv_sel_reg = -1, \
2645 .drv_reg = -1, \ 2648 .drv_reg = -1, \
2649 .drvtype_reg = -1, \
2646 } 2650 }
2647 2651
2648/* Pin groups for drive strength registers (configurable version) */ 2652/* Pin groups for drive strength registers (configurable version) */
@@ -2660,6 +2664,7 @@ static const struct tegra_function tegra20_functions[] = {
2660 .odrain_reg = -1, \ 2664 .odrain_reg = -1, \
2661 .lock_reg = -1, \ 2665 .lock_reg = -1, \
2662 .ioreset_reg = -1, \ 2666 .ioreset_reg = -1, \
2667 .rcv_sel_reg = -1, \
2663 .drv_reg = ((r) - PINGROUP_REG_A), \ 2668 .drv_reg = ((r) - PINGROUP_REG_A), \
2664 .drv_bank = 3, \ 2669 .drv_bank = 3, \
2665 .hsm_bit = hsm_b, \ 2670 .hsm_bit = hsm_b, \
@@ -2673,6 +2678,7 @@ static const struct tegra_function tegra20_functions[] = {
2673 .slwr_width = slwr_w, \ 2678 .slwr_width = slwr_w, \
2674 .slwf_bit = slwf_b, \ 2679 .slwf_bit = slwf_b, \
2675 .slwf_width = slwf_w, \ 2680 .slwf_width = slwf_w, \
2681 .drvtype_reg = -1, \
2676 } 2682 }
2677 2683
2678/* Pin groups for drive strength registers (simple version) */ 2684/* Pin groups for drive strength registers (simple version) */