diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2015-02-04 13:09:49 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2017-12-21 14:29:10 +0100 |
commit | 0bfa192241b661f8791a3ecfdacd0c73311bdd48 (patch) | |
tree | 4992ead40230a823bbba66675ef7f74843f0ffa5 | |
parent | e123320ed759113dec3a23df195a4d6c005d90ee (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)
-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 bdd5685a91f8..ce282f065506 100644 --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c @@ -544,6 +544,11 @@ static void imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie) if (gpio_is_valid(imx6_pcie->reset_ep_gpio)) gpio_set_value_cansleep(imx6_pcie->reset_ep_gpio, 0); mdelay(20); + } else if (gpio_is_valid(imx6_pcie->reset_ep_gpio)) { + gpio_set_value_cansleep(imx6_pcie->reset_ep_gpio, 1); + mdelay(100); + gpio_set_value_cansleep(imx6_pcie->reset_ep_gpio, 0); + mdelay(20); } return; |