summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2016-05-11 15:54:35 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-01-11 21:27:16 +0100
commit5d510fc4698ac66b4f977b5df5f3973909798e88 (patch)
tree1563684c03a7994ab748e5a6e18991ae822c05be
parent2959a225e9c9e615025ed3de92be9171b6f954fa (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.c19
-rw-r--r--include/configs/apalis_t30.h1
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