mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 05:04:23 +08:00
x86: dfi-bt700: Add xHCI USB support
Change from EHCI to xHCI on the DFI BayTrail SoM. The xHCI USB hub is connected to an GPIO on the DFI BayTrail SoM. For correct operation, it needs to get reset upon power-up. Otherwise it may happen that the hub is not detected after a software reboot. This patch also configures this GPIO in the dts for correct operation. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
db1d20a904
commit
1f4e25780a
@ -47,6 +47,15 @@
|
||||
pad-offset = <0x3a0>;
|
||||
mode-func = <1>;
|
||||
};
|
||||
|
||||
xhci_hub_reset: usb_ulpi_stp@0 {
|
||||
gpio-offset = <0xa0 10>;
|
||||
pad-offset = <0x23b0>;
|
||||
mode-func = <0>;
|
||||
mode-gpio;
|
||||
output-value = <1>;
|
||||
direction = <PIN_OUTPUT>;
|
||||
};
|
||||
};
|
||||
|
||||
chosen {
|
||||
@ -261,6 +270,9 @@
|
||||
fsp,enable-spi;
|
||||
fsp,enable-sata;
|
||||
fsp,sata-mode = <SATA_MODE_AHCI>;
|
||||
#ifdef CONFIG_USB_XHCI_HCD
|
||||
fsp,enable-xhci;
|
||||
#endif
|
||||
fsp,lpe-mode = <LPE_MODE_PCI>;
|
||||
fsp,lpss-sio-mode = <LPSS_SIO_MODE_PCI>;
|
||||
fsp,enable-dma0;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user