summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/meson-gx-mmc.c
diff options
context:
space:
mode:
authorJerome Brunet <jbrunet@baylibre.com>2018-05-15 11:57:48 +0200
committerUlf Hansson <ulf.hansson@linaro.org>2018-05-21 10:50:45 +0200
commit19c6beaa064c4b198e7d774feab7a0851cf606a0 (patch)
tree7edc008a25fbe2be5625f5d63e2c1acd0503ca5d /drivers/mmc/host/meson-gx-mmc.c
parentdt-bindings: mmc: meson-gx: add reset (diff)
downloadlinux-19c6beaa064c4b198e7d774feab7a0851cf606a0.tar.xz
linux-19c6beaa064c4b198e7d774feab7a0851cf606a0.zip
mmc: meson-gx: add device reset
Trigger the reset line of the mmc controller while probing, if available. The reset should be optional for now, at least until all related DT nodes have the reset property. Reviewed-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/meson-gx-mmc.c')
-rw-r--r--drivers/mmc/host/meson-gx-mmc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
index 55bbd67177df..c201c378537e 100644
--- a/drivers/mmc/host/meson-gx-mmc.c
+++ b/drivers/mmc/host/meson-gx-mmc.c
@@ -35,6 +35,7 @@
#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/regulator/consumer.h>
+#include <linux/reset.h>
#include <linux/interrupt.h>
#include <linux/bitfield.h>
#include <linux/pinctrl/consumer.h>
@@ -1212,6 +1213,14 @@ static int meson_mmc_probe(struct platform_device *pdev)
goto free_host;
}
+ ret = device_reset_optional(&pdev->dev);
+ if (ret) {
+ if (ret != -EPROBE_DEFER)
+ dev_err(&pdev->dev, "device reset failed: %d\n", ret);
+
+ return ret;
+ }
+
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
host->regs = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(host->regs)) {