mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
request gpio pins and set direction correctly for pcmcia
SVN-Revision: 16332
This commit is contained in:
parent
287a0efd68
commit
4049592268
@ -409,9 +409,18 @@ static int bcm63xx_drv_pcmcia_probe(struct platform_device *pdev)
|
|||||||
val |= 3 << PCMCIA_C2_HOLD_SHIFT;
|
val |= 3 << PCMCIA_C2_HOLD_SHIFT;
|
||||||
pcmcia_writel(skt, val, PCMCIA_C2_REG);
|
pcmcia_writel(skt, val, PCMCIA_C2_REG);
|
||||||
|
|
||||||
|
/* request and setup ready gpio */
|
||||||
|
ret = gpio_request(skt->pd->ready_gpio, "bcm63xx_pcmcia");
|
||||||
|
if (ret < 0)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
ret = gpio_direction_input(skt->pd->ready_gpio);
|
||||||
|
if (ret < 0)
|
||||||
|
goto err_gpio;
|
||||||
|
|
||||||
ret = pcmcia_register_socket(sock);
|
ret = pcmcia_register_socket(sock);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err_gpio;
|
||||||
|
|
||||||
/* start polling socket */
|
/* start polling socket */
|
||||||
mod_timer(&skt->timer,
|
mod_timer(&skt->timer,
|
||||||
@ -420,6 +429,9 @@ static int bcm63xx_drv_pcmcia_probe(struct platform_device *pdev)
|
|||||||
platform_set_drvdata(pdev, skt);
|
platform_set_drvdata(pdev, skt);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
err_gpio:
|
||||||
|
gpio_free(skt->pd->ready_gpio);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
if (skt->io_base)
|
if (skt->io_base)
|
||||||
iounmap(skt->io_base);
|
iounmap(skt->io_base);
|
||||||
@ -442,6 +454,7 @@ static int bcm63xx_drv_pcmcia_remove(struct platform_device *pdev)
|
|||||||
iounmap(skt->io_base);
|
iounmap(skt->io_base);
|
||||||
res = skt->reg_res;
|
res = skt->reg_res;
|
||||||
release_mem_region(res->start, res->end - res->start + 1);
|
release_mem_region(res->start, res->end - res->start + 1);
|
||||||
|
gpio_free(skt->pd->ready_gpio);
|
||||||
kfree(skt);
|
kfree(skt);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user