coreboot-kgpe-d16/src/device
Duncan Laurie bae9f85ddb devicetree: Add USB device type
This commit adds support for describing USB ports in devicetree.cb.
It allows a USB port location to be described in the tree with
configuration information, and ACPI code to be generated that
provides this information to the OS.

A new scan_usb_bus() is added that will scan bridges for devices so
a tree of ports and hubs can be created.

The device address is computed with a 'port type' and a 'port id'
which is flexible for SOC to handle depending on their specific USB
setup and allows USB2 and USB3 ports to be described separately.

For example a board may have devices on two ports, one with a USB2
device and one with a USB3 device, both of which are connected to an
xHCI controller with a root hub:

     xHCI
       |
    RootHub
    |     |
USB2[0]  USB3[2]

device pci 14.0 on
  chip drivers/usb/acpi
    register "name" = ""Root Hub""
    device usb 0.0 on
      chip drivers/usb/acpi
        register "name" = ""USB 2.0 Port 0""
        device usb 2.0 on end
      end
      chip drivers/usb/acpi
        register "name" = ""USB 3.0 Port 2""
        device usb 3.2 on end
      end
    end
  end
end

Change-Id: I64e6eba503cdab49be393465b535e139a8c90ef4
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/26169
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
2018-05-11 08:59:51 +00:00
..
dram device/dram/ddr3: improve XMP support 2018-04-16 08:46:23 +00:00
oprom device/oprom/yabel: Fix spelling of *successful* 2018-04-23 09:23:13 +00:00
azalia_device.c
cardbus_device.c src/device/cardbus_device.c: Get rid of device_t 2018-05-04 10:16:20 +00:00
cpu_device.c
device.c {device,drivers,lib,mb,nb}: Use only one space after 'if' 2018-05-09 13:11:04 +00:00
device_simple.c lib: provide clearer devicetree semantics 2017-04-25 18:14:38 +02:00
device_util.c devicetree: Add USB device type 2018-05-11 08:59:51 +00:00
hypertransport.c
i2c.c Reinvent I2C ops 2017-08-18 15:33:45 +00:00
i2c_bus.c device/i2c_bus: allow i2c_bus and i2c_simple to coexist 2018-01-24 05:02:50 +00:00
Kconfig Add a default path for vbt.bin 2018-02-01 18:57:28 +00:00
Makefile.inc Move pci_ops_mmconf from arch/x86/ to device/ 2018-05-08 03:01:35 +00:00
pci_class.c device/pci_class.c: Get rid of device_t 2018-05-04 10:17:28 +00:00
pci_device.c timestamps: Add timestamps around the vbios load & init 2018-03-08 18:14:54 +00:00
pci_early.c src/device: add IS_ENABLED() around Kconfig symbol references 2017-06-28 17:48:57 +00:00
pci_ops.c device/pci_ops: Remove unnecessary weak implementation 2018-05-08 03:00:48 +00:00
pci_ops_mmconf.c Move pci_ops_mmconf from arch/x86/ to device/ 2018-05-08 03:01:35 +00:00
pci_rom.c compiler.h: add __weak macro 2018-04-24 14:37:59 +00:00
pciexp_device.c src/device/pciexp_device.c: Get rid of device_t 2018-05-04 10:15:52 +00:00
pcix_device.c device/pcix_device.c: Get rid of device_t 2018-05-04 10:17:17 +00:00
pnp_device.c src/device/pnp_device.c: Get rid of device_t 2018-05-04 10:14:43 +00:00
root_device.c devicetree: Add USB device type 2018-05-11 08:59:51 +00:00
smbus_ops.c device/smbus_ops.c: Get rid of device_t 2018-05-04 10:17:08 +00:00
software_i2c.c software_i2c: Improve error behavior 2018-05-02 00:23:30 +00:00