summaryrefslogtreecommitdiff
path: root/drivers/spi/spi-zynqmp-gqspi.c
diff options
context:
space:
mode:
authorRajan Vaja <rajan.vaja@xilinx.com>2019-03-04 15:18:08 -0800
committerMichal Simek <michal.simek@xilinx.com>2019-03-18 13:45:27 +0100
commit3d0313786470acb414b7d5fdd2202f061acffb02 (patch)
tree7e34a492da0da9cab34389dfa8125d2e741085ae /drivers/spi/spi-zynqmp-gqspi.c
parentb9472f7d8224460499dd7128ec944735ed5345a0 (diff)
drivers: Defer probe if firmware is not ready
Driver needs ZynqMP firmware interface to call EEMI APIs. In case firmware is not ready, dependent drivers should wait until the firmware is ready. Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com> Signed-off-by: Jolly Shah <jollys@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'drivers/spi/spi-zynqmp-gqspi.c')
-rw-r--r--drivers/spi/spi-zynqmp-gqspi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/spi/spi-zynqmp-gqspi.c b/drivers/spi/spi-zynqmp-gqspi.c
index 9f83e1b17aa1..d07b6f940f9f 100644
--- a/drivers/spi/spi-zynqmp-gqspi.c
+++ b/drivers/spi/spi-zynqmp-gqspi.c
@@ -138,6 +138,7 @@
#define SPI_AUTOSUSPEND_TIMEOUT 3000
enum mode_type {GQSPI_MODE_IO, GQSPI_MODE_DMA};
+static const struct zynqmp_eemi_ops *eemi_ops;
/**
* struct zynqmp_qspi - Defines qspi driver instance
@@ -1021,6 +1022,10 @@ static int zynqmp_qspi_probe(struct platform_device *pdev)
struct resource *res;
struct device *dev = &pdev->dev;
+ eemi_ops = zynqmp_pm_get_eemi_ops();
+ if (IS_ERR(eemi_ops))
+ return PTR_ERR(eemi_ops);
+
master = spi_alloc_master(&pdev->dev, sizeof(*xqspi));
if (!master)
return -ENOMEM;