
On Fri, Jan 24, 2014 at 7:25 AM, Marek Vasut marex@denx.de wrote:
Add a callback so that a board can implement it's own specific routine to toggle the port's nRESET line.
Signed-off-by: Marek Vasut marex@denx.de Cc: Stefano Babic sbabic@denx.de
drivers/pci/pcie_imx.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/pcie_imx.c b/drivers/pci/pcie_imx.c index 0a74867..b554075 100644 --- a/drivers/pci/pcie_imx.c +++ b/drivers/pci/pcie_imx.c @@ -450,6 +450,13 @@ static int imx6_pcie_init_phy(void) return 0; }
+__weak int imx6_pcie_toggle_reset(void) +{
/* This function ought to be overridden ! */
puts("WARNING: Make sure the PCIe nRESET line is connected!\n");
return 0;
+}
static int imx6_pcie_deassert_core_reset(void) { struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR; @@ -466,10 +473,9 @@ static int imx6_pcie_deassert_core_reset(void) * Wait for the clock to settle a bit, when the clock are sourced * from the CPU, we need about 30mS to settle. */
mdelay(30);
mdelay(50);
/* FIXME: GPIO reset goes here */
mdelay(100);
imx6_pcie_toggle_reset(); return 0;
}
Tested-by: Tim Harvey tharvey@gateworks.com Acked-by: Tim Harvey tharvey@gateworks.com
Tested on a Gateworks Ventana GW54xx board with a PLX PEX8609 switch on the RC with 2 devices behind it: 00:01.0 - 16c3:abcd - Bridge device 01:00.0 - 10b5:8609 - Bridge device 02:01.0 - 10b5:8609 - Bridge device 02:04.0 - 10b5:8609 - Bridge device 02:05.0 - 10b5:8609 - Bridge device 02:06.0 - 10b5:8609 - Bridge device 02:07.0 - 10b5:8609 - Bridge device 02:08.0 - 10b5:8609 - Bridge device 08:00.0 - 11ab:4380 - Network controller 02:09.0 - 10b5:8609 - Bridge device 01:00.1 - 10b5:8609 - Base system peripheral
I would love to see this merged as the PCI driver won't really work without it for boards that have a proper PCI_RST#.
Thanks Merek!
Tim