• S
    usb: ci_udc: support variants with hostpc register · fcf2ede1
    Stephen Warren 提交于
    Tegra's USB controller appears to be a variant of the ChipIdea
    controller; perhaps derived from it, or simply a different version of
    the IP core to what U-Boot supports today.
    
    In this variant, at least the following difference are present:
    - Some registers are moved about.
    - Setup transaction completion is reported in a separate 'epsetupstat'
      register, rather than in 'epstat' (which still exists, perhaps for
      other transaction types).
    - USB connection speed is reported in a separate 'hostpc1_devlc'
      register, rather than 'portsc'.
    - The registers used by ci_udc.c begin at offset 0x130 from the USB
      register base, rather than offset 0x140. However, this is handled
      by the associated EHCI controller driver, since the register address
      is stored in controller.ctrl->hcor.
    
    Introduce define CONFIG_CI_UDC_HAS_HOSTPC to indicate which variant of
    the controller should be supported. The "HAS_HOSTPC" part of this name
    mirrors the similar "has_hostpc" field used by the Linux EHCI controller
    core to represent the presence/absence of the hostpc1_devlc register.
    Signed-off-by: NStephen Warren <swarren@nvidia.com>
    fcf2ede1
ci_udc.c 19.2 KB