lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 21 Dec 2011 01:40:40 +0800 From: Dong Aisheng <b29396@...escale.com> To: <linux-kernel@...r.kernel.org> CC: <linux-arm-kernel@...ts.infradead.org>, <linus.walleij@...ricsson.com>, <s.hauer@...gutronix.de>, <shawn.guo@...escale.com>, <kernel@...gutronix.de>, <grant.likely@...retlab.ca>, <rob.herring@...xeda.com>, <devicetree-discuss@...ts.ozlabs.org>, <cjb@...top.org>, <w.sang@...gutronix.de> Subject: [RFC PATCH v3 5/5] mmc: sdhci-esdhc-imx: using pinmux subsystem From: Dong Aisheng <dong.aisheng@...aro.org> Signed-off-by: Shawn Guo <shawn.guo@...aro.org> Signed-off-by: Dong Aisheng <dong.aisheng@...aro.org> Cc: Linus Walleij <linus.walleij@...aro.org> Cc: Chris Ball <cjb@...top.org> Cc: Sascha Hauer <s.hauer@...gutronix.de> Cc: Wolfram Sang <w.sang@...gutronix.de> --- drivers/mmc/host/sdhci-esdhc-imx.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index 4b976f0..4504136 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c @@ -24,6 +24,7 @@ #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_gpio.h> +#include <linux/pinctrl/pinmux.h> #include <mach/esdhc.h> #include "sdhci-pltfm.h" #include "sdhci-esdhc.h" @@ -68,6 +69,7 @@ struct pltfm_imx_data { int flags; u32 scratchpad; enum imx_esdhc_type devtype; + struct pinmux *pmx; struct esdhc_platform_data boarddata; }; @@ -439,6 +441,7 @@ static int __devinit sdhci_esdhc_imx_probe(struct platform_device *pdev) struct clk *clk; int err; struct pltfm_imx_data *imx_data; + struct pinmux *pmx; host = sdhci_pltfm_init(pdev, &sdhci_esdhc_imx_pdata); if (IS_ERR(host)) @@ -466,6 +469,16 @@ static int __devinit sdhci_esdhc_imx_probe(struct platform_device *pdev) clk_enable(clk); pltfm_host->clk = clk; + pmx = pinmux_get(&pdev->dev, NULL); + if (IS_ERR(pmx)) { + err = PTR_ERR(pmx); + goto err_pmx_get; + } + err = pinmux_enable(pmx); + if (err) + goto err_pmx_enable; + imx_data->pmx = pmx; + if (!is_imx25_esdhc(imx_data)) host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; @@ -558,6 +571,10 @@ no_card_detect_irq: gpio_free(boarddata->wp_gpio); no_card_detect_pin: no_board_data: + pinmux_disable(imx_data->pmx); +err_pmx_enable: + pinmux_put(imx_data->pmx); +err_pmx_get: clk_disable(pltfm_host->clk); clk_put(pltfm_host->clk); err_clk_get: @@ -585,6 +602,9 @@ static int __devexit sdhci_esdhc_imx_remove(struct platform_device *pdev) gpio_free(boarddata->cd_gpio); } + pinmux_disable(imx_data->pmx); + pinmux_put(imx_data->pmx); + clk_disable(pltfm_host->clk); clk_put(pltfm_host->clk); kfree(imx_data); -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists