summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2015-02-04 13:09:49 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2015-02-04 13:09:49 +0100
commitf593ebc9921013a992c1d096bf4cbad17c1af01b (patch)
tree70c30a343d874000e5596d8affea01b3376ba203
parent23b22e549ed6ede5b44a948824463daafb6745c3 (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
-rw-r--r--drivers/pci/host/pci-imx6.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c
index e153932ea677..44213e110c5b 100644
--- a/drivers/pci/host/pci-imx6.c
+++ b/drivers/pci/host/pci-imx6.c
@@ -290,6 +290,10 @@ static int imx6_pcie_deassert_core_reset(struct pcie_port *pp)
msleep(1);
if (gpio_is_valid(imx6_pcie->reset_ep_gpio))
gpio_set_value(imx6_pcie->reset_ep_gpio, 0);
+ } else if (gpio_is_valid(imx6_pcie->reset_ep_gpio)) {
+ gpio_set_value(imx6_pcie->reset_ep_gpio, 1);
+ msleep(100);
+ gpio_set_value(imx6_pcie->reset_ep_gpio, 0);
}
return 0;