1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <device/pci_ops.h> 4 #include <device/pci_def.h> 5 #include "pch.h" 6 7 /* 8 * Setup USB controller MMIO BAR to prevent the 9 * reference code from resetting the controller. 10 * 11 * The BAR will be re-assigned during device 12 * enumeration so these are only temporary. 13 */ enable_usb_bar_on_device(pci_devfn_t dev,u32 bar)14static void enable_usb_bar_on_device(pci_devfn_t dev, u32 bar) 15 { 16 pci_write_config32(dev, PCI_BASE_ADDRESS_0, bar); 17 pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY); 18 } 19 enable_usb_bar(void)20void enable_usb_bar(void) 21 { 22 enable_usb_bar_on_device(PCH_EHCI1_DEV, PCH_EHCI1_TEMP_BAR0); 23 if (!pch_is_lp()) 24 enable_usb_bar_on_device(PCH_EHCI2_DEV, PCH_EHCI2_TEMP_BAR0); 25 } 26