aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/tegra
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-05-19 15:50:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-05-19 15:50:56 -0400
commita37571a29eca963562ff5a9233db4a5c73c72cf9 (patch)
treeec78d4b5b905f32bc541b2faa5b89f88967cf990 /drivers/pinctrl/tegra
parenta0d3c7c5c07cfbe00ab89438ddf82482f5a99422 (diff)
parent0d5358330c20d50e52e3e65ff07a5db8007041fc (diff)
Merge tag 'pinctrl-v4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "This kernel cycle was quite calm when it comes to pin control and there is really just one major change, and that is the introduction of devm_pinctrl_register() managed resources. Apart from that linear development, details below. Core changes: - Add the devm_pinctrl_register() API and switch all applicable drivers to use it, saving lots of lines of code all over the place. New drivers: - driver for the Broadcom NS2 SoC - subdriver for the PXA25x SoCs - subdriver for the AMLogic Meson GXBB SoC Driver improvements: - the Intel Baytrail driver now properly supports pin control - Nomadik, Rockchip, Broadcom BCM2835 support the .get_direction() callback in the GPIO portions - continued development and stabilization of several SH-PFC SoC subdrivers: r8a7795, r8a7790, r8a7794 etc" * tag 'pinctrl-v4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (85 commits) Revert "pinctrl: tegra: avoid parked_reg and parked_bank" pinctrl: meson: Fix eth_tx_en bit index pinctrl: tegra: avoid parked_reg and parked_bank pinctrl: tegra: Correctly check the supported configuration pinctrl: amlogic: Add support for Amlogic Meson GXBB SoC pinctrl: rockchip: fix pull setting error for rk3399 pinctrl: stm32: Implement .pin_config_dbg_show() pinctrl: nomadik: hide nmk_gpio_get_mode when unused pinctrl: ns2: rename pinctrl_utils_dt_free_map pinctrl: at91: Merge clk_prepare and clk_enable into clk_prepare_enable pinctrl: at91: Make at91_gpio_template const pinctrl: baytrail: fix some error handling in debugfs pinctrl: ns2: add pinmux driver support for Broadcom NS2 SoC pinctrl: sirf/atlas7: trivial fix of spelling mistake on flagged pinctrl: sh-pfc: Kill unused variable in sh_pfc_remove() pinctrl: nomadik: implement .get_direction() pinctrl: nomadik: use BIT() with offsets consequently pinctrl: exynos5440: Use off-stack memory for pinctrl_gpio_range pinctrl: zynq: Use devm_pinctrl_register() for pinctrl registration pinctrl: u300: Use devm_pinctrl_register() for pinctrl registration ...
Diffstat (limited to 'drivers/pinctrl/tegra')
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra-xusb.c15
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra.c36
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra.h8
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra114.c3
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra124.c3
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra20.c4
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra210.c5
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra30.c3
8 files changed, 47 insertions, 30 deletions
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c b/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
index 946cda3fee35..6f68a9eebc58 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
@@ -267,7 +267,7 @@ static const struct pinctrl_ops tegra_xusb_padctl_pinctrl_ops = {
267 .get_group_name = tegra_xusb_padctl_get_group_name, 267 .get_group_name = tegra_xusb_padctl_get_group_name,
268 .get_group_pins = tegra_xusb_padctl_get_group_pins, 268 .get_group_pins = tegra_xusb_padctl_get_group_pins,
269 .dt_node_to_map = tegra_xusb_padctl_dt_node_to_map, 269 .dt_node_to_map = tegra_xusb_padctl_dt_node_to_map,
270 .dt_free_map = pinctrl_utils_dt_free_map, 270 .dt_free_map = pinctrl_utils_free_map,
271}; 271};
272 272
273static int tegra_xusb_padctl_get_functions_count(struct pinctrl_dev *pinctrl) 273static int tegra_xusb_padctl_get_functions_count(struct pinctrl_dev *pinctrl)
@@ -914,7 +914,8 @@ int tegra_xusb_padctl_legacy_probe(struct platform_device *pdev)
914 padctl->desc.confops = &tegra_xusb_padctl_pinconf_ops; 914 padctl->desc.confops = &tegra_xusb_padctl_pinconf_ops;
915 padctl->desc.owner = THIS_MODULE; 915 padctl->desc.owner = THIS_MODULE;
916 916
917 padctl->pinctrl = pinctrl_register(&padctl->desc, &pdev->dev, padctl); 917 padctl->pinctrl = devm_pinctrl_register(&pdev->dev, &padctl->desc,
918 padctl);
918 if (IS_ERR(padctl->pinctrl)) { 919 if (IS_ERR(padctl->pinctrl)) {
919 dev_err(&pdev->dev, "failed to register pincontrol\n"); 920 dev_err(&pdev->dev, "failed to register pincontrol\n");
920 err = PTR_ERR(padctl->pinctrl); 921 err = PTR_ERR(padctl->pinctrl);
@@ -924,7 +925,7 @@ int tegra_xusb_padctl_legacy_probe(struct platform_device *pdev)
924 phy = devm_phy_create(&pdev->dev, NULL, &pcie_phy_ops); 925 phy = devm_phy_create(&pdev->dev, NULL, &pcie_phy_ops);
925 if (IS_ERR(phy)) { 926 if (IS_ERR(phy)) {
926 err = PTR_ERR(phy); 927 err = PTR_ERR(phy);
927 goto unregister; 928 goto reset;
928 } 929 }
929 930
930 padctl->phys[TEGRA_XUSB_PADCTL_PCIE] = phy; 931 padctl->phys[TEGRA_XUSB_PADCTL_PCIE] = phy;
@@ -933,7 +934,7 @@ int tegra_xusb_padctl_legacy_probe(struct platform_device *pdev)
933 phy = devm_phy_create(&pdev->dev, NULL, &sata_phy_ops); 934 phy = devm_phy_create(&pdev->dev, NULL, &sata_phy_ops);
934 if (IS_ERR(phy)) { 935 if (IS_ERR(phy)) {
935 err = PTR_ERR(phy); 936 err = PTR_ERR(phy);
936 goto unregister; 937 goto reset;
937 } 938 }
938 939
939 padctl->phys[TEGRA_XUSB_PADCTL_SATA] = phy; 940 padctl->phys[TEGRA_XUSB_PADCTL_SATA] = phy;
@@ -944,13 +945,11 @@ int tegra_xusb_padctl_legacy_probe(struct platform_device *pdev)
944 if (IS_ERR(padctl->provider)) { 945 if (IS_ERR(padctl->provider)) {
945 err = PTR_ERR(padctl->provider); 946 err = PTR_ERR(padctl->provider);
946 dev_err(&pdev->dev, "failed to register PHYs: %d\n", err); 947 dev_err(&pdev->dev, "failed to register PHYs: %d\n", err);
947 goto unregister; 948 goto reset;
948 } 949 }
949 950
950 return 0; 951 return 0;
951 952
952unregister:
953 pinctrl_unregister(padctl->pinctrl);
954reset: 953reset:
955 reset_control_assert(padctl->rst); 954 reset_control_assert(padctl->rst);
956 return err; 955 return err;
@@ -962,8 +961,6 @@ int tegra_xusb_padctl_legacy_remove(struct platform_device *pdev)
962 struct tegra_xusb_padctl *padctl = platform_get_drvdata(pdev); 961 struct tegra_xusb_padctl *padctl = platform_get_drvdata(pdev);
963 int err; 962 int err;
964 963
965 pinctrl_unregister(padctl->pinctrl);
966
967 err = reset_control_assert(padctl->rst); 964 err = reset_control_assert(padctl->rst);
968 if (err < 0) 965 if (err < 0)
969 dev_err(&pdev->dev, "failed to assert reset: %d\n", err); 966 dev_err(&pdev->dev, "failed to assert reset: %d\n", err);
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.c b/drivers/pinctrl/tegra/pinctrl-tegra.c
index 49388822c0e9..6e82b290cb4f 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra.c
@@ -215,7 +215,7 @@ static int tegra_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
215 ret = tegra_pinctrl_dt_subnode_to_map(pctldev, np, map, 215 ret = tegra_pinctrl_dt_subnode_to_map(pctldev, np, map,
216 &reserved_maps, num_maps); 216 &reserved_maps, num_maps);
217 if (ret < 0) { 217 if (ret < 0) {
218 pinctrl_utils_dt_free_map(pctldev, *map, 218 pinctrl_utils_free_map(pctldev, *map,
219 *num_maps); 219 *num_maps);
220 of_node_put(np); 220 of_node_put(np);
221 return ret; 221 return ret;
@@ -233,7 +233,7 @@ static const struct pinctrl_ops tegra_pinctrl_ops = {
233 .pin_dbg_show = tegra_pinctrl_pin_dbg_show, 233 .pin_dbg_show = tegra_pinctrl_pin_dbg_show,
234#endif 234#endif
235 .dt_node_to_map = tegra_pinctrl_dt_node_to_map, 235 .dt_node_to_map = tegra_pinctrl_dt_node_to_map,
236 .dt_free_map = pinctrl_utils_dt_free_map, 236 .dt_free_map = pinctrl_utils_free_map,
237}; 237};
238 238
239static int tegra_pinctrl_get_funcs_count(struct pinctrl_dev *pctldev) 239static int tegra_pinctrl_get_funcs_count(struct pinctrl_dev *pctldev)
@@ -417,7 +417,7 @@ static int tegra_pinconf_reg(struct tegra_pmx *pmx,
417 return -ENOTSUPP; 417 return -ENOTSUPP;
418 } 418 }
419 419
420 if (*reg < 0 || *bit > 31) { 420 if (*reg < 0 || *bit < 0) {
421 if (report_err) { 421 if (report_err) {
422 const char *prop = "unknown"; 422 const char *prop = "unknown";
423 int i; 423 int i;
@@ -625,6 +625,22 @@ static struct pinctrl_desc tegra_pinctrl_desc = {
625 .owner = THIS_MODULE, 625 .owner = THIS_MODULE,
626}; 626};
627 627
628static void tegra_pinctrl_clear_parked_bits(struct tegra_pmx *pmx)
629{
630 int i = 0;
631 const struct tegra_pingroup *g;
632 u32 val;
633
634 for (i = 0; i < pmx->soc->ngroups; ++i) {
635 if (pmx->soc->groups[i].parked_reg >= 0) {
636 g = &pmx->soc->groups[i];
637 val = pmx_readl(pmx, g->parked_bank, g->parked_reg);
638 val &= ~(1 << g->parked_bit);
639 pmx_writel(pmx, val, g->parked_bank, g->parked_reg);
640 }
641 }
642}
643
628static bool gpio_node_has_range(void) 644static bool gpio_node_has_range(void)
629{ 645{
630 struct device_node *np; 646 struct device_node *np;
@@ -719,12 +735,14 @@ int tegra_pinctrl_probe(struct platform_device *pdev,
719 return PTR_ERR(pmx->regs[i]); 735 return PTR_ERR(pmx->regs[i]);
720 } 736 }
721 737
722 pmx->pctl = pinctrl_register(&tegra_pinctrl_desc, &pdev->dev, pmx); 738 pmx->pctl = devm_pinctrl_register(&pdev->dev, &tegra_pinctrl_desc, pmx);
723 if (IS_ERR(pmx->pctl)) { 739 if (IS_ERR(pmx->pctl)) {
724 dev_err(&pdev->dev, "Couldn't register pinctrl driver\n"); 740 dev_err(&pdev->dev, "Couldn't register pinctrl driver\n");
725 return PTR_ERR(pmx->pctl); 741 return PTR_ERR(pmx->pctl);
726 } 742 }
727 743
744 tegra_pinctrl_clear_parked_bits(pmx);
745
728 if (!gpio_node_has_range()) 746 if (!gpio_node_has_range())
729 pinctrl_add_gpio_range(pmx->pctl, &tegra_pinctrl_gpio_range); 747 pinctrl_add_gpio_range(pmx->pctl, &tegra_pinctrl_gpio_range);
730 748
@@ -735,13 +753,3 @@ int tegra_pinctrl_probe(struct platform_device *pdev,
735 return 0; 753 return 0;
736} 754}
737EXPORT_SYMBOL_GPL(tegra_pinctrl_probe); 755EXPORT_SYMBOL_GPL(tegra_pinctrl_probe);
738
739int tegra_pinctrl_remove(struct platform_device *pdev)
740{
741 struct tegra_pmx *pmx = platform_get_drvdata(pdev);
742
743 pinctrl_unregister(pmx->pctl);
744
745 return 0;
746}
747EXPORT_SYMBOL_GPL(tegra_pinctrl_remove);
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.h b/drivers/pinctrl/tegra/pinctrl-tegra.h
index 1615db7e3a4b..d2ced17382b5 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra.h
+++ b/drivers/pinctrl/tegra/pinctrl-tegra.h
@@ -93,6 +93,9 @@ 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.
97 * @parked_bank: Parked register bank. 0 if unsupported.
98 * @parked_bit: Parked register bit. 0 if unsupported.
96 * @einput_bit: Enable-input register bit. 99 * @einput_bit: Enable-input register bit.
97 * @odrain_bit: Open-drain register bit. 100 * @odrain_bit: Open-drain register bit.
98 * @lock_bit: Lock register bit. 101 * @lock_bit: Lock register bit.
@@ -135,13 +138,16 @@ struct tegra_pingroup {
135 s16 pupd_reg; 138 s16 pupd_reg;
136 s16 tri_reg; 139 s16 tri_reg;
137 s16 drv_reg; 140 s16 drv_reg;
141 s16 parked_reg;
138 u32 mux_bank:2; 142 u32 mux_bank:2;
139 u32 pupd_bank:2; 143 u32 pupd_bank:2;
140 u32 tri_bank:2; 144 u32 tri_bank:2;
141 u32 drv_bank:2; 145 u32 drv_bank:2;
146 u32 parked_bank:2;
142 s32 mux_bit:6; 147 s32 mux_bit:6;
143 s32 pupd_bit:6; 148 s32 pupd_bit:6;
144 s32 tri_bit:6; 149 s32 tri_bit:6;
150 s32 parked_bit:6;
145 s32 einput_bit:6; 151 s32 einput_bit:6;
146 s32 odrain_bit:6; 152 s32 odrain_bit:6;
147 s32 lock_bit:6; 153 s32 lock_bit:6;
@@ -189,6 +195,4 @@ struct tegra_pinctrl_soc_data {
189 195
190int tegra_pinctrl_probe(struct platform_device *pdev, 196int tegra_pinctrl_probe(struct platform_device *pdev,
191 const struct tegra_pinctrl_soc_data *soc_data); 197 const struct tegra_pinctrl_soc_data *soc_data);
192int tegra_pinctrl_remove(struct platform_device *pdev);
193
194#endif 198#endif
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra114.c b/drivers/pinctrl/tegra/pinctrl-tegra114.c
index 05e49d5137ab..4851d169f4c7 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra114.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra114.c
@@ -1578,6 +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 .drv_reg = -1, \ 1582 .drv_reg = -1, \
1582 } 1583 }
1583 1584
@@ -1598,6 +1599,7 @@ static struct tegra_function tegra114_functions[] = {
1598 .rcv_sel_bit = -1, \ 1599 .rcv_sel_bit = -1, \
1599 .drv_reg = DRV_PINGROUP_REG(r), \ 1600 .drv_reg = DRV_PINGROUP_REG(r), \
1600 .drv_bank = 0, \ 1601 .drv_bank = 0, \
1602 .parked_reg = -1, \
1601 .hsm_bit = hsm_b, \ 1603 .hsm_bit = hsm_b, \
1602 .schmitt_bit = schmitt_b, \ 1604 .schmitt_bit = schmitt_b, \
1603 .lpmd_bit = lpmd_b, \ 1605 .lpmd_bit = lpmd_b, \
@@ -1863,7 +1865,6 @@ static struct platform_driver tegra114_pinctrl_driver = {
1863 .of_match_table = tegra114_pinctrl_of_match, 1865 .of_match_table = tegra114_pinctrl_of_match,
1864 }, 1866 },
1865 .probe = tegra114_pinctrl_probe, 1867 .probe = tegra114_pinctrl_probe,
1866 .remove = tegra_pinctrl_remove,
1867}; 1868};
1868module_platform_driver(tegra114_pinctrl_driver); 1869module_platform_driver(tegra114_pinctrl_driver);
1869 1870
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra124.c b/drivers/pinctrl/tegra/pinctrl-tegra124.c
index 7cd44c7c296d..a0ce723a9482 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra124.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra124.c
@@ -1747,6 +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 .drv_reg = -1, \ 1751 .drv_reg = -1, \
1751 } 1752 }
1752 1753
@@ -1767,6 +1768,7 @@ static struct tegra_function tegra124_functions[] = {
1767 .rcv_sel_bit = -1, \ 1768 .rcv_sel_bit = -1, \
1768 .drv_reg = DRV_PINGROUP_REG(r), \ 1769 .drv_reg = DRV_PINGROUP_REG(r), \
1769 .drv_bank = 0, \ 1770 .drv_bank = 0, \
1771 .parked_reg = -1, \
1770 .hsm_bit = hsm_b, \ 1772 .hsm_bit = hsm_b, \
1771 .schmitt_bit = schmitt_b, \ 1773 .schmitt_bit = schmitt_b, \
1772 .lpmd_bit = lpmd_b, \ 1774 .lpmd_bit = lpmd_b, \
@@ -2075,7 +2077,6 @@ static struct platform_driver tegra124_pinctrl_driver = {
2075 .of_match_table = tegra124_pinctrl_of_match, 2077 .of_match_table = tegra124_pinctrl_of_match,
2076 }, 2078 },
2077 .probe = tegra124_pinctrl_probe, 2079 .probe = tegra124_pinctrl_probe,
2078 .remove = tegra_pinctrl_remove,
2079}; 2080};
2080module_platform_driver(tegra124_pinctrl_driver); 2081module_platform_driver(tegra124_pinctrl_driver);
2081 2082
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra20.c b/drivers/pinctrl/tegra/pinctrl-tegra20.c
index 4833db4433d9..09bad6980ad1 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra20.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra20.c
@@ -1994,6 +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 .einput_bit = -1, \ 1998 .einput_bit = -1, \
1998 .odrain_bit = -1, \ 1999 .odrain_bit = -1, \
1999 .lock_bit = -1, \ 2000 .lock_bit = -1, \
@@ -2013,6 +2014,7 @@ static struct tegra_function tegra20_functions[] = {
2013 .pupd_bank = 2, \ 2014 .pupd_bank = 2, \
2014 .pupd_bit = pupd_b, \ 2015 .pupd_bit = pupd_b, \
2015 .drv_reg = -1, \ 2016 .drv_reg = -1, \
2017 .parked_reg = -1, \
2016 } 2018 }
2017 2019
2018/* Pin groups for drive strength registers (configurable version) */ 2020/* Pin groups for drive strength registers (configurable version) */
@@ -2028,6 +2030,7 @@ static struct tegra_function tegra20_functions[] = {
2028 .tri_reg = -1, \ 2030 .tri_reg = -1, \
2029 .drv_reg = ((r) - PINGROUP_REG_A), \ 2031 .drv_reg = ((r) - PINGROUP_REG_A), \
2030 .drv_bank = 3, \ 2032 .drv_bank = 3, \
2033 .parked_reg = -1, \
2031 .hsm_bit = hsm_b, \ 2034 .hsm_bit = hsm_b, \
2032 .schmitt_bit = schmitt_b, \ 2035 .schmitt_bit = schmitt_b, \
2033 .lpmd_bit = lpmd_b, \ 2036 .lpmd_bit = lpmd_b, \
@@ -2242,7 +2245,6 @@ static struct platform_driver tegra20_pinctrl_driver = {
2242 .of_match_table = tegra20_pinctrl_of_match, 2245 .of_match_table = tegra20_pinctrl_of_match,
2243 }, 2246 },
2244 .probe = tegra20_pinctrl_probe, 2247 .probe = tegra20_pinctrl_probe,
2245 .remove = tegra_pinctrl_remove,
2246}; 2248};
2247module_platform_driver(tegra20_pinctrl_driver); 2249module_platform_driver(tegra20_pinctrl_driver);
2248 2250
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra210.c b/drivers/pinctrl/tegra/pinctrl-tegra210.c
index 252b464901c0..2d856af389ef 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra210.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra210.c
@@ -1310,6 +1310,9 @@ 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 .hsm_bit = PINGROUP_BIT_##hsm(9), \ 1316 .hsm_bit = PINGROUP_BIT_##hsm(9), \
1314 .schmitt_bit = 12, \ 1317 .schmitt_bit = 12, \
1315 .drvtype_bit = PINGROUP_BIT_##drvtype(13), \ 1318 .drvtype_bit = PINGROUP_BIT_##drvtype(13), \
@@ -1342,6 +1345,7 @@ static struct tegra_function tegra210_functions[] = {
1342 .rcv_sel_bit = -1, \ 1345 .rcv_sel_bit = -1, \
1343 .drv_reg = DRV_PINGROUP_REG(r), \ 1346 .drv_reg = DRV_PINGROUP_REG(r), \
1344 .drv_bank = 0, \ 1347 .drv_bank = 0, \
1348 .parked_reg = -1, \
1345 .hsm_bit = -1, \ 1349 .hsm_bit = -1, \
1346 .schmitt_bit = -1, \ 1350 .schmitt_bit = -1, \
1347 .lpmd_bit = -1, \ 1351 .lpmd_bit = -1, \
@@ -1579,7 +1583,6 @@ static struct platform_driver tegra210_pinctrl_driver = {
1579 .of_match_table = tegra210_pinctrl_of_match, 1583 .of_match_table = tegra210_pinctrl_of_match,
1580 }, 1584 },
1581 .probe = tegra210_pinctrl_probe, 1585 .probe = tegra210_pinctrl_probe,
1582 .remove = tegra_pinctrl_remove,
1583}; 1586};
1584module_platform_driver(tegra210_pinctrl_driver); 1587module_platform_driver(tegra210_pinctrl_driver);
1585 1588
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra30.c b/drivers/pinctrl/tegra/pinctrl-tegra30.c
index 47b2fd8bb2e9..fb7817fea2d9 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra30.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra30.c
@@ -2139,6 +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 .drv_reg = -1, \ 2143 .drv_reg = -1, \
2143 } 2144 }
2144 2145
@@ -2159,6 +2160,7 @@ static struct tegra_function tegra30_functions[] = {
2159 .rcv_sel_bit = -1, \ 2160 .rcv_sel_bit = -1, \
2160 .drv_reg = DRV_PINGROUP_REG(r), \ 2161 .drv_reg = DRV_PINGROUP_REG(r), \
2161 .drv_bank = 0, \ 2162 .drv_bank = 0, \
2163 .parked_reg = -1, \
2162 .hsm_bit = hsm_b, \ 2164 .hsm_bit = hsm_b, \
2163 .schmitt_bit = schmitt_b, \ 2165 .schmitt_bit = schmitt_b, \
2164 .lpmd_bit = lpmd_b, \ 2166 .lpmd_bit = lpmd_b, \
@@ -2498,7 +2500,6 @@ static struct platform_driver tegra30_pinctrl_driver = {
2498 .of_match_table = tegra30_pinctrl_of_match, 2500 .of_match_table = tegra30_pinctrl_of_match,
2499 }, 2501 },
2500 .probe = tegra30_pinctrl_probe, 2502 .probe = tegra30_pinctrl_probe,
2501 .remove = tegra_pinctrl_remove,
2502}; 2503};
2503module_platform_driver(tegra30_pinctrl_driver); 2504module_platform_driver(tegra30_pinctrl_driver);
2504 2505