aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2012-11-12 01:45:50 -0500
committerLinus Walleij <linus.walleij@linaro.org>2012-11-15 05:21:45 -0500
commit9387760db221420f56a9f43a7d079c9fb209e32e (patch)
tree5ac8d12af9d4d4185c19d0b86be9f26ae4dbb81c /drivers/pinctrl
parent507ccdbfd80020c402cbbf65ceeb3235edb79021 (diff)
pinctrl: pxa3xx: Use devm_request_and_ioremap
Use managed resources API to simplify the code. Also ensure we do request mem_region before ioremap. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/pinctrl-pxa3xx.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/pinctrl/pinctrl-pxa3xx.c b/drivers/pinctrl/pinctrl-pxa3xx.c
index f14cd6ba4c0b..43e3dd058ddb 100644
--- a/drivers/pinctrl/pinctrl-pxa3xx.c
+++ b/drivers/pinctrl/pinctrl-pxa3xx.c
@@ -173,7 +173,6 @@ int pxa3xx_pinctrl_register(struct platform_device *pdev,
173{ 173{
174 struct pinctrl_desc *desc; 174 struct pinctrl_desc *desc;
175 struct resource *res; 175 struct resource *res;
176 int ret = 0;
177 176
178 if (!info || !info->cputype) 177 if (!info || !info->cputype)
179 return -EINVAL; 178 return -EINVAL;
@@ -190,21 +189,17 @@ int pxa3xx_pinctrl_register(struct platform_device *pdev,
190 return -ENOENT; 189 return -ENOENT;
191 info->phy_base = res->start; 190 info->phy_base = res->start;
192 info->phy_size = resource_size(res); 191 info->phy_size = resource_size(res);
193 info->virt_base = ioremap(info->phy_base, info->phy_size); 192 info->virt_base = devm_request_and_ioremap(&pdev->dev, res);
194 if (!info->virt_base) 193 if (!info->virt_base)
195 return -ENOMEM; 194 return -ENOMEM;
196 info->pctrl = pinctrl_register(desc, &pdev->dev, info); 195 info->pctrl = pinctrl_register(desc, &pdev->dev, info);
197 if (!info->pctrl) { 196 if (!info->pctrl) {
198 dev_err(&pdev->dev, "failed to register PXA pinmux driver\n"); 197 dev_err(&pdev->dev, "failed to register PXA pinmux driver\n");
199 ret = -EINVAL; 198 return -EINVAL;
200 goto err;
201 } 199 }
202 pinctrl_add_gpio_range(info->pctrl, &pxa3xx_pinctrl_gpio_range); 200 pinctrl_add_gpio_range(info->pctrl, &pxa3xx_pinctrl_gpio_range);
203 platform_set_drvdata(pdev, info); 201 platform_set_drvdata(pdev, info);
204 return 0; 202 return 0;
205err:
206 iounmap(info->virt_base);
207 return ret;
208} 203}
209 204
210int pxa3xx_pinctrl_unregister(struct platform_device *pdev) 205int pxa3xx_pinctrl_unregister(struct platform_device *pdev)
@@ -212,7 +207,6 @@ int pxa3xx_pinctrl_unregister(struct platform_device *pdev)
212 struct pxa3xx_pinmux_info *info = platform_get_drvdata(pdev); 207 struct pxa3xx_pinmux_info *info = platform_get_drvdata(pdev);
213 208
214 pinctrl_unregister(info->pctrl); 209 pinctrl_unregister(info->pctrl);
215 iounmap(info->virt_base);
216 platform_set_drvdata(pdev, NULL); 210 platform_set_drvdata(pdev, NULL);
217 return 0; 211 return 0;
218} 212}