summaryrefslogtreecommitdiff
path: root/board/toradex/apalis-tk1/apalis-tk1.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/toradex/apalis-tk1/apalis-tk1.c')
-rw-r--r--board/toradex/apalis-tk1/apalis-tk1.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/board/toradex/apalis-tk1/apalis-tk1.c b/board/toradex/apalis-tk1/apalis-tk1.c
index 2f097056f3..510bdf5240 100644
--- a/board/toradex/apalis-tk1/apalis-tk1.c
+++ b/board/toradex/apalis-tk1/apalis-tk1.c
@@ -18,8 +18,6 @@
#define LAN_RESET_N GPIO_PS2
-DECLARE_GLOBAL_DATA_PTR;
-
int arch_misc_init(void)
{
if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) ==
@@ -149,6 +147,25 @@ int tegra_pcie_board_init(void)
mdelay(100);
gpio_set_value(LAN_RESET_N, 1);
+#ifdef APALIS_TK1_PCIE_EVALBOARD_INIT
+#define PEX_PERST_N GPIO_PDD1 /* Apalis GPIO7 */
+#define RESET_MOCI_CTRL GPIO_PU4
+
+ /* 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_CTRL, "RESET_MOCI_CTRL");
+ gpio_direction_output(PEX_PERST_N, 0);
+ gpio_direction_output(RESET_MOCI_CTRL, 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_CTRL, 1);
+#endif /* APALIS_T30_PCIE_EVALBOARD_INIT */
+
return 0;
}