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/mediatek | |
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/mediatek')
-rw-r--r-- | drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c index 6ab8c3ccdeea..207b13b618cf 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c | |||
@@ -605,7 +605,7 @@ static int mtk_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev, | |||
605 | ret = mtk_pctrl_dt_subnode_to_map(pctldev, np, map, | 605 | ret = mtk_pctrl_dt_subnode_to_map(pctldev, np, map, |
606 | &reserved_maps, num_maps); | 606 | &reserved_maps, num_maps); |
607 | if (ret < 0) { | 607 | if (ret < 0) { |
608 | pinctrl_utils_dt_free_map(pctldev, *map, *num_maps); | 608 | pinctrl_utils_free_map(pctldev, *map, *num_maps); |
609 | of_node_put(np); | 609 | of_node_put(np); |
610 | return ret; | 610 | return ret; |
611 | } | 611 | } |
@@ -644,7 +644,7 @@ static int mtk_pctrl_get_group_pins(struct pinctrl_dev *pctldev, | |||
644 | 644 | ||
645 | static const struct pinctrl_ops mtk_pctrl_ops = { | 645 | static const struct pinctrl_ops mtk_pctrl_ops = { |
646 | .dt_node_to_map = mtk_pctrl_dt_node_to_map, | 646 | .dt_node_to_map = mtk_pctrl_dt_node_to_map, |
647 | .dt_free_map = pinctrl_utils_dt_free_map, | 647 | .dt_free_map = pinctrl_utils_free_map, |
648 | .get_groups_count = mtk_pctrl_get_groups_count, | 648 | .get_groups_count = mtk_pctrl_get_groups_count, |
649 | .get_group_name = mtk_pctrl_get_group_name, | 649 | .get_group_name = mtk_pctrl_get_group_name, |
650 | .get_group_pins = mtk_pctrl_get_group_pins, | 650 | .get_group_pins = mtk_pctrl_get_group_pins, |
@@ -1396,17 +1396,16 @@ int mtk_pctrl_init(struct platform_device *pdev, | |||
1396 | pctl->pctl_desc.pmxops = &mtk_pmx_ops; | 1396 | pctl->pctl_desc.pmxops = &mtk_pmx_ops; |
1397 | pctl->dev = &pdev->dev; | 1397 | pctl->dev = &pdev->dev; |
1398 | 1398 | ||
1399 | pctl->pctl_dev = pinctrl_register(&pctl->pctl_desc, &pdev->dev, pctl); | 1399 | pctl->pctl_dev = devm_pinctrl_register(&pdev->dev, &pctl->pctl_desc, |
1400 | pctl); | ||
1400 | if (IS_ERR(pctl->pctl_dev)) { | 1401 | if (IS_ERR(pctl->pctl_dev)) { |
1401 | dev_err(&pdev->dev, "couldn't register pinctrl driver\n"); | 1402 | dev_err(&pdev->dev, "couldn't register pinctrl driver\n"); |
1402 | return PTR_ERR(pctl->pctl_dev); | 1403 | return PTR_ERR(pctl->pctl_dev); |
1403 | } | 1404 | } |
1404 | 1405 | ||
1405 | pctl->chip = devm_kzalloc(&pdev->dev, sizeof(*pctl->chip), GFP_KERNEL); | 1406 | pctl->chip = devm_kzalloc(&pdev->dev, sizeof(*pctl->chip), GFP_KERNEL); |
1406 | if (!pctl->chip) { | 1407 | if (!pctl->chip) |
1407 | ret = -ENOMEM; | 1408 | return -ENOMEM; |
1408 | goto pctrl_error; | ||
1409 | } | ||
1410 | 1409 | ||
1411 | *pctl->chip = mtk_gpio_chip; | 1410 | *pctl->chip = mtk_gpio_chip; |
1412 | pctl->chip->ngpio = pctl->devdata->npins; | 1411 | pctl->chip->ngpio = pctl->devdata->npins; |
@@ -1415,10 +1414,8 @@ int mtk_pctrl_init(struct platform_device *pdev, | |||
1415 | pctl->chip->base = -1; | 1414 | pctl->chip->base = -1; |
1416 | 1415 | ||
1417 | ret = gpiochip_add_data(pctl->chip, pctl); | 1416 | ret = gpiochip_add_data(pctl->chip, pctl); |
1418 | if (ret) { | 1417 | if (ret) |
1419 | ret = -EINVAL; | 1418 | return -EINVAL; |
1420 | goto pctrl_error; | ||
1421 | } | ||
1422 | 1419 | ||
1423 | /* Register the GPIO to pin mappings. */ | 1420 | /* Register the GPIO to pin mappings. */ |
1424 | ret = gpiochip_add_pin_range(pctl->chip, dev_name(&pdev->dev), | 1421 | ret = gpiochip_add_pin_range(pctl->chip, dev_name(&pdev->dev), |
@@ -1496,8 +1493,6 @@ int mtk_pctrl_init(struct platform_device *pdev, | |||
1496 | 1493 | ||
1497 | chip_error: | 1494 | chip_error: |
1498 | gpiochip_remove(pctl->chip); | 1495 | gpiochip_remove(pctl->chip); |
1499 | pctrl_error: | ||
1500 | pinctrl_unregister(pctl->pctl_dev); | ||
1501 | return ret; | 1496 | return ret; |
1502 | } | 1497 | } |
1503 | 1498 | ||