summaryrefslogtreecommitdiff
path: root/drivers/pci/host
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2015-02-04 13:09:49 +0100
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2018-12-24 01:27:30 +0100
commitb0a6bc58a88716a54b30429f92b30288d6fa28a0 (patch)
tree8d5de76639d287e4b064990822fc3f16eb18d252 /drivers/pci/host
parentf7ba61b78a693a9e2087c534909ab3b534879cf8 (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.c5
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)