diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-19 15:50:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-19 15:50:56 -0400 |
commit | a37571a29eca963562ff5a9233db4a5c73c72cf9 (patch) | |
tree | ec78d4b5b905f32bc541b2faa5b89f88967cf990 /drivers/pinctrl/qcom | |
parent | a0d3c7c5c07cfbe00ab89438ddf82482f5a99422 (diff) | |
parent | 0d5358330c20d50e52e3e65ff07a5db8007041fc (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/qcom')
-rw-r--r-- | drivers/pinctrl/qcom/pinctrl-msm.c | 10 | ||||
-rw-r--r-- | drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 9 | ||||
-rw-r--r-- | drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 9 | ||||
-rw-r--r-- | drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 11 | ||||
-rw-r--r-- | drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 11 |
5 files changed, 16 insertions, 34 deletions
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c index 8777cf083eef..1a44e1d03390 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c | |||
@@ -101,7 +101,7 @@ static const struct pinctrl_ops msm_pinctrl_ops = { | |||
101 | .get_group_name = msm_get_group_name, | 101 | .get_group_name = msm_get_group_name, |
102 | .get_group_pins = msm_get_group_pins, | 102 | .get_group_pins = msm_get_group_pins, |
103 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, | 103 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, |
104 | .dt_free_map = pinctrl_utils_dt_free_map, | 104 | .dt_free_map = pinctrl_utils_free_map, |
105 | }; | 105 | }; |
106 | 106 | ||
107 | static int msm_get_functions_count(struct pinctrl_dev *pctldev) | 107 | static int msm_get_functions_count(struct pinctrl_dev *pctldev) |
@@ -898,17 +898,16 @@ int msm_pinctrl_probe(struct platform_device *pdev, | |||
898 | msm_pinctrl_desc.name = dev_name(&pdev->dev); | 898 | msm_pinctrl_desc.name = dev_name(&pdev->dev); |
899 | msm_pinctrl_desc.pins = pctrl->soc->pins; | 899 | msm_pinctrl_desc.pins = pctrl->soc->pins; |
900 | msm_pinctrl_desc.npins = pctrl->soc->npins; | 900 | msm_pinctrl_desc.npins = pctrl->soc->npins; |
901 | pctrl->pctrl = pinctrl_register(&msm_pinctrl_desc, &pdev->dev, pctrl); | 901 | pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &msm_pinctrl_desc, |
902 | pctrl); | ||
902 | if (IS_ERR(pctrl->pctrl)) { | 903 | if (IS_ERR(pctrl->pctrl)) { |
903 | dev_err(&pdev->dev, "Couldn't register pinctrl driver\n"); | 904 | dev_err(&pdev->dev, "Couldn't register pinctrl driver\n"); |
904 | return PTR_ERR(pctrl->pctrl); | 905 | return PTR_ERR(pctrl->pctrl); |
905 | } | 906 | } |
906 | 907 | ||
907 | ret = msm_gpio_init(pctrl); | 908 | ret = msm_gpio_init(pctrl); |
908 | if (ret) { | 909 | if (ret) |
909 | pinctrl_unregister(pctrl->pctrl); | ||
910 | return ret; | 910 | return ret; |
911 | } | ||
912 | 911 | ||
913 | platform_set_drvdata(pdev, pctrl); | 912 | platform_set_drvdata(pdev, pctrl); |
914 | 913 | ||
@@ -923,7 +922,6 @@ int msm_pinctrl_remove(struct platform_device *pdev) | |||
923 | struct msm_pinctrl *pctrl = platform_get_drvdata(pdev); | 922 | struct msm_pinctrl *pctrl = platform_get_drvdata(pdev); |
924 | 923 | ||
925 | gpiochip_remove(&pctrl->chip); | 924 | gpiochip_remove(&pctrl->chip); |
926 | pinctrl_unregister(pctrl->pctrl); | ||
927 | 925 | ||
928 | unregister_restart_handler(&pctrl->restart_nb); | 926 | unregister_restart_handler(&pctrl->restart_nb); |
929 | 927 | ||
diff --git a/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c b/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c index 4e12ded3c773..686accb89f52 100644 --- a/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c +++ b/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | |||
@@ -212,7 +212,7 @@ static const struct pinctrl_ops pmic_gpio_pinctrl_ops = { | |||
212 | .get_group_name = pmic_gpio_get_group_name, | 212 | .get_group_name = pmic_gpio_get_group_name, |
213 | .get_group_pins = pmic_gpio_get_group_pins, | 213 | .get_group_pins = pmic_gpio_get_group_pins, |
214 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, | 214 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, |
215 | .dt_free_map = pinctrl_utils_dt_free_map, | 215 | .dt_free_map = pinctrl_utils_free_map, |
216 | }; | 216 | }; |
217 | 217 | ||
218 | static int pmic_gpio_get_functions_count(struct pinctrl_dev *pctldev) | 218 | static int pmic_gpio_get_functions_count(struct pinctrl_dev *pctldev) |
@@ -764,14 +764,14 @@ static int pmic_gpio_probe(struct platform_device *pdev) | |||
764 | state->chip.of_gpio_n_cells = 2; | 764 | state->chip.of_gpio_n_cells = 2; |
765 | state->chip.can_sleep = false; | 765 | state->chip.can_sleep = false; |
766 | 766 | ||
767 | state->ctrl = pinctrl_register(pctrldesc, dev, state); | 767 | state->ctrl = devm_pinctrl_register(dev, pctrldesc, state); |
768 | if (IS_ERR(state->ctrl)) | 768 | if (IS_ERR(state->ctrl)) |
769 | return PTR_ERR(state->ctrl); | 769 | return PTR_ERR(state->ctrl); |
770 | 770 | ||
771 | ret = gpiochip_add_data(&state->chip, state); | 771 | ret = gpiochip_add_data(&state->chip, state); |
772 | if (ret) { | 772 | if (ret) { |
773 | dev_err(state->dev, "can't add gpio chip\n"); | 773 | dev_err(state->dev, "can't add gpio chip\n"); |
774 | goto err_chip; | 774 | return ret; |
775 | } | 775 | } |
776 | 776 | ||
777 | ret = gpiochip_add_pin_range(&state->chip, dev_name(dev), 0, 0, npins); | 777 | ret = gpiochip_add_pin_range(&state->chip, dev_name(dev), 0, 0, npins); |
@@ -784,8 +784,6 @@ static int pmic_gpio_probe(struct platform_device *pdev) | |||
784 | 784 | ||
785 | err_range: | 785 | err_range: |
786 | gpiochip_remove(&state->chip); | 786 | gpiochip_remove(&state->chip); |
787 | err_chip: | ||
788 | pinctrl_unregister(state->ctrl); | ||
789 | return ret; | 787 | return ret; |
790 | } | 788 | } |
791 | 789 | ||
@@ -794,7 +792,6 @@ static int pmic_gpio_remove(struct platform_device *pdev) | |||
794 | struct pmic_gpio_state *state = platform_get_drvdata(pdev); | 792 | struct pmic_gpio_state *state = platform_get_drvdata(pdev); |
795 | 793 | ||
796 | gpiochip_remove(&state->chip); | 794 | gpiochip_remove(&state->chip); |
797 | pinctrl_unregister(state->ctrl); | ||
798 | return 0; | 795 | return 0; |
799 | } | 796 | } |
800 | 797 | ||
diff --git a/drivers/pinctrl/qcom/pinctrl-spmi-mpp.c b/drivers/pinctrl/qcom/pinctrl-spmi-mpp.c index 2a3e5490a483..1735ffef9d5c 100644 --- a/drivers/pinctrl/qcom/pinctrl-spmi-mpp.c +++ b/drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | |||
@@ -235,7 +235,7 @@ static const struct pinctrl_ops pmic_mpp_pinctrl_ops = { | |||
235 | .get_group_name = pmic_mpp_get_group_name, | 235 | .get_group_name = pmic_mpp_get_group_name, |
236 | .get_group_pins = pmic_mpp_get_group_pins, | 236 | .get_group_pins = pmic_mpp_get_group_pins, |
237 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, | 237 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, |
238 | .dt_free_map = pinctrl_utils_dt_free_map, | 238 | .dt_free_map = pinctrl_utils_free_map, |
239 | }; | 239 | }; |
240 | 240 | ||
241 | static int pmic_mpp_get_functions_count(struct pinctrl_dev *pctldev) | 241 | static int pmic_mpp_get_functions_count(struct pinctrl_dev *pctldev) |
@@ -877,14 +877,14 @@ static int pmic_mpp_probe(struct platform_device *pdev) | |||
877 | state->chip.of_gpio_n_cells = 2; | 877 | state->chip.of_gpio_n_cells = 2; |
878 | state->chip.can_sleep = false; | 878 | state->chip.can_sleep = false; |
879 | 879 | ||
880 | state->ctrl = pinctrl_register(pctrldesc, dev, state); | 880 | state->ctrl = devm_pinctrl_register(dev, pctrldesc, state); |
881 | if (IS_ERR(state->ctrl)) | 881 | if (IS_ERR(state->ctrl)) |
882 | return PTR_ERR(state->ctrl); | 882 | return PTR_ERR(state->ctrl); |
883 | 883 | ||
884 | ret = gpiochip_add_data(&state->chip, state); | 884 | ret = gpiochip_add_data(&state->chip, state); |
885 | if (ret) { | 885 | if (ret) { |
886 | dev_err(state->dev, "can't add gpio chip\n"); | 886 | dev_err(state->dev, "can't add gpio chip\n"); |
887 | goto err_chip; | 887 | return ret; |
888 | } | 888 | } |
889 | 889 | ||
890 | ret = gpiochip_add_pin_range(&state->chip, dev_name(dev), 0, 0, npins); | 890 | ret = gpiochip_add_pin_range(&state->chip, dev_name(dev), 0, 0, npins); |
@@ -897,8 +897,6 @@ static int pmic_mpp_probe(struct platform_device *pdev) | |||
897 | 897 | ||
898 | err_range: | 898 | err_range: |
899 | gpiochip_remove(&state->chip); | 899 | gpiochip_remove(&state->chip); |
900 | err_chip: | ||
901 | pinctrl_unregister(state->ctrl); | ||
902 | return ret; | 900 | return ret; |
903 | } | 901 | } |
904 | 902 | ||
@@ -907,7 +905,6 @@ static int pmic_mpp_remove(struct platform_device *pdev) | |||
907 | struct pmic_mpp_state *state = platform_get_drvdata(pdev); | 905 | struct pmic_mpp_state *state = platform_get_drvdata(pdev); |
908 | 906 | ||
909 | gpiochip_remove(&state->chip); | 907 | gpiochip_remove(&state->chip); |
910 | pinctrl_unregister(state->ctrl); | ||
911 | return 0; | 908 | return 0; |
912 | } | 909 | } |
913 | 910 | ||
diff --git a/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c b/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c index cd8580d9741d..d3f5501d17ee 100644 --- a/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c +++ b/drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | |||
@@ -200,7 +200,7 @@ static const struct pinctrl_ops pm8xxx_pinctrl_ops = { | |||
200 | .get_group_name = pm8xxx_get_group_name, | 200 | .get_group_name = pm8xxx_get_group_name, |
201 | .get_group_pins = pm8xxx_get_group_pins, | 201 | .get_group_pins = pm8xxx_get_group_pins, |
202 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, | 202 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, |
203 | .dt_free_map = pinctrl_utils_dt_free_map, | 203 | .dt_free_map = pinctrl_utils_free_map, |
204 | }; | 204 | }; |
205 | 205 | ||
206 | static int pm8xxx_get_functions_count(struct pinctrl_dev *pctldev) | 206 | static int pm8xxx_get_functions_count(struct pinctrl_dev *pctldev) |
@@ -729,7 +729,7 @@ static int pm8xxx_gpio_probe(struct platform_device *pdev) | |||
729 | pctrl->desc.custom_conf_items = pm8xxx_conf_items; | 729 | pctrl->desc.custom_conf_items = pm8xxx_conf_items; |
730 | #endif | 730 | #endif |
731 | 731 | ||
732 | pctrl->pctrl = pinctrl_register(&pctrl->desc, &pdev->dev, pctrl); | 732 | pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &pctrl->desc, pctrl); |
733 | if (IS_ERR(pctrl->pctrl)) { | 733 | if (IS_ERR(pctrl->pctrl)) { |
734 | dev_err(&pdev->dev, "couldn't register pm8xxx gpio driver\n"); | 734 | dev_err(&pdev->dev, "couldn't register pm8xxx gpio driver\n"); |
735 | return PTR_ERR(pctrl->pctrl); | 735 | return PTR_ERR(pctrl->pctrl); |
@@ -745,7 +745,7 @@ static int pm8xxx_gpio_probe(struct platform_device *pdev) | |||
745 | ret = gpiochip_add_data(&pctrl->chip, pctrl); | 745 | ret = gpiochip_add_data(&pctrl->chip, pctrl); |
746 | if (ret) { | 746 | if (ret) { |
747 | dev_err(&pdev->dev, "failed register gpiochip\n"); | 747 | dev_err(&pdev->dev, "failed register gpiochip\n"); |
748 | goto unregister_pinctrl; | 748 | return ret; |
749 | } | 749 | } |
750 | 750 | ||
751 | ret = gpiochip_add_pin_range(&pctrl->chip, | 751 | ret = gpiochip_add_pin_range(&pctrl->chip, |
@@ -765,9 +765,6 @@ static int pm8xxx_gpio_probe(struct platform_device *pdev) | |||
765 | unregister_gpiochip: | 765 | unregister_gpiochip: |
766 | gpiochip_remove(&pctrl->chip); | 766 | gpiochip_remove(&pctrl->chip); |
767 | 767 | ||
768 | unregister_pinctrl: | ||
769 | pinctrl_unregister(pctrl->pctrl); | ||
770 | |||
771 | return ret; | 768 | return ret; |
772 | } | 769 | } |
773 | 770 | ||
@@ -777,8 +774,6 @@ static int pm8xxx_gpio_remove(struct platform_device *pdev) | |||
777 | 774 | ||
778 | gpiochip_remove(&pctrl->chip); | 775 | gpiochip_remove(&pctrl->chip); |
779 | 776 | ||
780 | pinctrl_unregister(pctrl->pctrl); | ||
781 | |||
782 | return 0; | 777 | return 0; |
783 | } | 778 | } |
784 | 779 | ||
diff --git a/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c b/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c index 54a5402a9079..9191727aff5e 100644 --- a/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c +++ b/drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | |||
@@ -277,7 +277,7 @@ static const struct pinctrl_ops pm8xxx_pinctrl_ops = { | |||
277 | .get_group_name = pm8xxx_get_group_name, | 277 | .get_group_name = pm8xxx_get_group_name, |
278 | .get_group_pins = pm8xxx_get_group_pins, | 278 | .get_group_pins = pm8xxx_get_group_pins, |
279 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, | 279 | .dt_node_to_map = pinconf_generic_dt_node_to_map_group, |
280 | .dt_free_map = pinctrl_utils_dt_free_map, | 280 | .dt_free_map = pinctrl_utils_free_map, |
281 | }; | 281 | }; |
282 | 282 | ||
283 | static int pm8xxx_get_functions_count(struct pinctrl_dev *pctldev) | 283 | static int pm8xxx_get_functions_count(struct pinctrl_dev *pctldev) |
@@ -820,7 +820,7 @@ static int pm8xxx_mpp_probe(struct platform_device *pdev) | |||
820 | pctrl->desc.custom_conf_items = pm8xxx_conf_items; | 820 | pctrl->desc.custom_conf_items = pm8xxx_conf_items; |
821 | #endif | 821 | #endif |
822 | 822 | ||
823 | pctrl->pctrl = pinctrl_register(&pctrl->desc, &pdev->dev, pctrl); | 823 | pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &pctrl->desc, pctrl); |
824 | if (IS_ERR(pctrl->pctrl)) { | 824 | if (IS_ERR(pctrl->pctrl)) { |
825 | dev_err(&pdev->dev, "couldn't register pm8xxx mpp driver\n"); | 825 | dev_err(&pdev->dev, "couldn't register pm8xxx mpp driver\n"); |
826 | return PTR_ERR(pctrl->pctrl); | 826 | return PTR_ERR(pctrl->pctrl); |
@@ -836,7 +836,7 @@ static int pm8xxx_mpp_probe(struct platform_device *pdev) | |||
836 | ret = gpiochip_add_data(&pctrl->chip, pctrl); | 836 | ret = gpiochip_add_data(&pctrl->chip, pctrl); |
837 | if (ret) { | 837 | if (ret) { |
838 | dev_err(&pdev->dev, "failed register gpiochip\n"); | 838 | dev_err(&pdev->dev, "failed register gpiochip\n"); |
839 | goto unregister_pinctrl; | 839 | return ret; |
840 | } | 840 | } |
841 | 841 | ||
842 | ret = gpiochip_add_pin_range(&pctrl->chip, | 842 | ret = gpiochip_add_pin_range(&pctrl->chip, |
@@ -856,9 +856,6 @@ static int pm8xxx_mpp_probe(struct platform_device *pdev) | |||
856 | unregister_gpiochip: | 856 | unregister_gpiochip: |
857 | gpiochip_remove(&pctrl->chip); | 857 | gpiochip_remove(&pctrl->chip); |
858 | 858 | ||
859 | unregister_pinctrl: | ||
860 | pinctrl_unregister(pctrl->pctrl); | ||
861 | |||
862 | return ret; | 859 | return ret; |
863 | } | 860 | } |
864 | 861 | ||
@@ -868,8 +865,6 @@ static int pm8xxx_mpp_remove(struct platform_device *pdev) | |||
868 | 865 | ||
869 | gpiochip_remove(&pctrl->chip); | 866 | gpiochip_remove(&pctrl->chip); |
870 | 867 | ||
871 | pinctrl_unregister(pctrl->pctrl); | ||
872 | |||
873 | return 0; | 868 | return 0; |
874 | } | 869 | } |
875 | 870 | ||