usb_xhci.c 695 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * From Coreboot
  3. * Copyright (C) 2008-2009 coresystems GmbH
  4. *
  5. * SPDX-License-Identifier: GPL-2.0
  6. */
  7. #include <common.h>
  8. #include <asm/pci.h>
  9. #include <asm/arch/pch.h>
  10. void bd82x6x_usb_xhci_init(pci_dev_t dev)
  11. {
  12. u32 reg32;
  13. debug("XHCI: Setting up controller.. ");
  14. /* lock overcurrent map */
  15. reg32 = x86_pci_read_config32(dev, 0x44);
  16. reg32 |= 1;
  17. x86_pci_write_config32(dev, 0x44, reg32);
  18. /* Enable clock gating */
  19. reg32 = x86_pci_read_config32(dev, 0x40);
  20. reg32 &= ~((1 << 20) | (1 << 21));
  21. reg32 |= (1 << 19) | (1 << 18) | (1 << 17);
  22. reg32 |= (1 << 10) | (1 << 9) | (1 << 8);
  23. reg32 |= (1 << 31); /* lock */
  24. x86_pci_write_config32(dev, 0x40, reg32);
  25. debug("done.\n");
  26. }