summaryrefslogtreecommitdiff
path: root/board/toradex/apalis_t30/apalis_t30.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/toradex/apalis_t30/apalis_t30.c')
-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 9f9731af49..5ea9f8ab29 100644
--- a/board/toradex/apalis_t30/apalis_t30.c
+++ b/board/toradex/apalis_t30/apalis_t30.c
@@ -120,6 +120,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;
}