diff options
Diffstat (limited to 'board/dfi')
-rw-r--r-- | board/dfi/dfi-bt700/Kconfig | 1 | ||||
-rw-r--r-- | board/dfi/dfi-bt700/dfi-bt700.c | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/board/dfi/dfi-bt700/Kconfig b/board/dfi/dfi-bt700/Kconfig index 3f0acb39f7..fca8b53d02 100644 --- a/board/dfi/dfi-bt700/Kconfig +++ b/board/dfi/dfi-bt700/Kconfig @@ -21,6 +21,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy select X86_RESET_VECTOR if !EFI_STUB select INTEL_BAYTRAIL select BOARD_ROMSIZE_KB_8192 + select BOARD_LATE_INIT config PCIE_ECAM_BASE default 0xe0000000 diff --git a/board/dfi/dfi-bt700/dfi-bt700.c b/board/dfi/dfi-bt700/dfi-bt700.c index 8645bdc795..3dd2036d11 100644 --- a/board/dfi/dfi-bt700/dfi-bt700.c +++ b/board/dfi/dfi-bt700/dfi-bt700.c @@ -28,3 +28,30 @@ int board_early_init_f(void) return 0; } + +int board_late_init(void) +{ + struct gpio_desc desc; + int ret; + + ret = dm_gpio_lookup_name("F10", &desc); + if (ret) + debug("gpio ret=%d\n", ret); + ret = dm_gpio_request(&desc, "xhci_hub_reset"); + if (ret) + debug("gpio_request ret=%d\n", ret); + ret = dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); + if (ret) + debug("gpio dir ret=%d\n", ret); + + /* Pull xHCI hub reset to low (active low) */ + dm_gpio_set_value(&desc, 0); + + /* Wait at least 5 ms, so lets choose 10 to be safe */ + mdelay(10); + + /* Pull xHCI hub reset to high (active low) */ + dm_gpio_set_value(&desc, 1); + + return 0; +} |