diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2016-05-11 15:54:35 +0200 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2017-01-11 21:27:16 +0100 |
commit | 5d510fc4698ac66b4f977b5df5f3973909798e88 (patch) | |
tree | 1563684c03a7994ab748e5a6e18991ae822c05be | |
parent | 2959a225e9c9e615025ed3de92be9171b6f954fa (diff) |
apalis_t30: add optional pcie evalboard initialisation
Implement optional PCIe EvalBoard initialisation which properly reset the PLX
(now Avago) PEX 8605 PCIe switch plus PCIe devices on the Apalis Evaluation
carrier board.
Please note that you will have to enable the second PCIe port in the dts as well
e.g.:
diff --git a/arch/arm/dts/tegra30-apalis.dts b/arch/arm/dts/tegra30-apalis.dts
index be4f4d6..321c7d6 100644
--- a/arch/arm/dts/tegra30-apalis.dts
+++ b/arch/arm/dts/tegra30-apalis.dts
@@ -59,6 +59,7 @@
};
pci@2,0 {
+ status = "okay";
nvidia,num-lanes = <1>;
};
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 340f51a210df1da640a57267e6c7fa56b8a852ed)
-rw-r--r-- | board/toradex/apalis_t30/apalis_t30.c | 19 | ||||
-rw-r--r-- | include/configs/apalis_t30.h | 1 |
2 files changed, 20 insertions, 0 deletions
diff --git a/board/toradex/apalis_t30/apalis_t30.c b/board/toradex/apalis_t30/apalis_t30.c index 4e75846ca3c..773f9e95800 100644 --- a/board/toradex/apalis_t30/apalis_t30.c +++ b/board/toradex/apalis_t30/apalis_t30.c @@ -127,6 +127,25 @@ int tegra_pcie_board_init(void) return err; } +#ifdef APALIS_T30_PCIE_EVALBOARD_INIT +#define PEX_PERST_N GPIO_PS7 /* Apalis GPIO7 */ +#define RESET_MOCI_N GPIO_PI4 + + /* Reset PLX PEX 8605 PCIe Switch plus PCIe devices on Apalis Evaluation + Board */ + gpio_request(PEX_PERST_N, "PEX_PERST_N"); + gpio_request(RESET_MOCI_N, "RESET_MOCI_N"); + gpio_direction_output(PEX_PERST_N, 0); + gpio_direction_output(RESET_MOCI_N, 0); + /* Must be asserted for 100 ms after power and clocks are stable */ + mdelay(100); + gpio_set_value(PEX_PERST_N, 1); + /* Err_5: PEX_REFCLK_OUTpx/nx Clock Outputs is not Guaranteed Until + 900 us After PEX_PERST# De-assertion */ + mdelay(1); + gpio_set_value(RESET_MOCI_N, 1); +#endif /* APALIS_T30_PCIE_EVALBOARD_INIT */ + return 0; } #endif /* CONFIG_PCI_TEGRA */ diff --git a/include/configs/apalis_t30.h b/include/configs/apalis_t30.h index cf9e40bfb28..921911dc77a 100644 --- a/include/configs/apalis_t30.h +++ b/include/configs/apalis_t30.h @@ -56,6 +56,7 @@ /* PCI host support */ #undef CONFIG_PCI_SCAN_SHOW #define CONFIG_CMD_PCI +#undef APALIS_T30_PCIE_EVALBOARD_INIT /* PCI networking support */ #define CONFIG_E1000_NO_NVM |