diff options
author | Pritesh Raithatha <praithatha@nvidia.com> | 2013-01-08 02:32:36 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-01-18 10:13:52 -0500 |
commit | 348d1bf75c09f854630e9bd161dc2a88aebe2149 (patch) | |
tree | b7f3fd0f286d8191584c8d2f0200a29121e1acf2 /drivers/pinctrl/pinctrl-tegra20.c | |
parent | b2083062a3b4035e85349120b426ecef2b6d155f (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.c | 6 |
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) */ |