summaryrefslogtreecommitdiff
path: root/board
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 /board
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)
Diffstat (limited to 'board')
-rw-r--r--board/toradex/apalis_t30/apalis_t30.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/board/toradex/apalis_t30/apalis_t30.c b/board/toradex/apalis_t30/apalis_t30.c
index 4e75846ca3..773f9e9580 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 */