aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/mediatek
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/mediatek
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/mediatek')
-rw-r--r--drivers/pinctrl/mediatek/pinctrl-mtk-common.c21
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
645static const struct pinctrl_ops mtk_pctrl_ops = { 645static 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
1497chip_error: 1494chip_error:
1498 gpiochip_remove(pctl->chip); 1495 gpiochip_remove(pctl->chip);
1499pctrl_error:
1500 pinctrl_unregister(pctl->pctl_dev);
1501 return ret; 1496 return ret;
1502} 1497}
1503 1498