• Benjamin Herrenschmidt's avatar
    usb/gadget: Add driver for Aspeed SoC virtual hub · 7ecca2a4
    Benjamin Herrenschmidt authored
    The Aspeed BMC SoCs support a "virtual hub" function. It provides some
    HW support for a top-level USB2 hub behind which sit 5 gadget "ports".
    
    This driver adds support for the full functionality, emulating the
    hub standard requests and exposing 5 UDC gadget drivers corresponding
    to the ports.
    
    The hub itself has HW provided dedicated EP0 and EP1 (the latter for
    hub interrupts). It also has dedicated EP0s for each function. For
    other endpoints, there's a pool of 15 "generic" endpoints that are
    shared among the ports.
    
    The driver relies on my previous patch adding a "dispose" EP op to
    handle EP allocation between ports. EPs are allocated from the shared
    pool in the UDC "match_ep" callback and assigned to the UDC instance
    (added to the gadget ep_list).
    
    When the composite driver gets unbound, the new hook will allow the UDC
    to clean things up and return those EPs to the shared pool.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    7ecca2a4
Makefile 1.58 KB