diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2015-02-04 13:09:49 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2018-12-24 01:27:30 +0100 |
commit | b0a6bc58a88716a54b30429f92b30288d6fa28a0 (patch) | |
tree | 8d5de76639d287e4b064990822fc3f16eb18d252 /drivers/pci/host | |
parent | f7ba61b78a693a9e2087c534909ab3b534879cf8 (diff) |
pcie-imx6: improve reset function for reseting EP
If the reset gpio for a PCIe switch is invalid, but a gpio for
reseting downstream EP devices is valid no reset pulse for the EP devices is
generated.
(i.e. in the device tree reset-gpio is not defined but reset-ep-gpio is defined)
The patch fixes this.
Original patch from Juha Kokkonen, Huoltamoeletroniikka Ky
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit f593ebc9921013a992c1d096bf4cbad17c1af01b)
(cherry picked from commit 8437c2f0e4fafb9a31dd260704cc6b7a22bf33f8)
Conflicts:
drivers/pci/host/pci-imx6.c
(cherry picked from commit fc0d0a29ab0e6fc0de72b63fba80845cc554d543)
Diffstat (limited to 'drivers/pci/host')
-rw-r--r-- | drivers/pci/host/pci-imx6.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c index 5bfe1206a6da..10d66c1ba38c 100644 --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c @@ -944,6 +944,11 @@ static int imx_pcie_deassert_core_reset(struct imx_pcie *imx_pcie) if (gpio_is_valid(imx_pcie->reset_ep_gpio)) gpio_set_value_cansleep(imx_pcie->reset_ep_gpio, 0); mdelay(20); + } else if (gpio_is_valid(imx_pcie->reset_ep_gpio)) { + gpio_set_value_cansleep(imx_pcie->reset_ep_gpio, 1); + mdelay(100); + gpio_set_value_cansleep(imx_pcie->reset_ep_gpio, 0); + mdelay(20); } if (ret == 0) |