diff options
author | Anson Huang <anson.huang@nxp.com> | 2019-02-23 03:18:25 +0000 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2019-02-25 13:42:46 +0100 |
commit | a329bbe707cee2cf8c660890ef2ad0d00ec7e8a3 (patch) | |
tree | e62ccaf8b7ce2ea9d9c7a397dceee4edca319cc8 /drivers/gpio/gpio-mxc.c | |
parent | af39459b896d732dd0ff9ef00ee59fe4ef6d1981 (diff) | |
download | talos-op-linux-a329bbe707cee2cf8c660890ef2ad0d00ec7e8a3.tar.gz talos-op-linux-a329bbe707cee2cf8c660890ef2ad0d00ec7e8a3.zip |
gpio: mxc: add check to return defer probe if clock tree NOT ready
On i.MX8MQ platform, clock driver uses platform driver
model and it is probed after GPIO driver, so when GPIO
driver fails to get clock, it should check the error type
to decide whether to return defer probe or just ignore
the clock operation.
Fixes: 2808801aab8a ("gpio: mxc: add clock operation")
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-mxc.c')
-rw-r--r-- | drivers/gpio/gpio-mxc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c index 2d1dfa1e0745..e86e61dda4b7 100644 --- a/drivers/gpio/gpio-mxc.c +++ b/drivers/gpio/gpio-mxc.c @@ -438,8 +438,11 @@ static int mxc_gpio_probe(struct platform_device *pdev) /* the controller clock is optional */ port->clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(port->clk)) + if (IS_ERR(port->clk)) { + if (PTR_ERR(port->clk) == -EPROBE_DEFER) + return -EPROBE_DEFER; port->clk = NULL; + } err = clk_prepare_enable(port->clk); if (err) { |