29 May, 2015

1 commit


15 May, 2015

2 commits


06 May, 2015

1 commit


19 Apr, 2015

7 commits


14 Apr, 2015

5 commits


18 Jan, 2015

2 commits

  • This commit fixes a number of issues with the reset sequence of musb-new
    in host mode:

    1) Our usb device probe relies on a second device reset being done after the
    first descriptors read. Factor the musb reset code into a usb_reset_root_port
    function (and add this as an empty define for other controllers), and call
    this when a device has no parent.

    2) Just like with normal usb controllers there needs to be a delay after
    reset, for normal usb controllers, this is handled in hub_port_reset, add a
    delay to usb_reset_root_port.

    3) Sync the musb reset sequence with the upstream kernel, clear all bits of
    power except bits 4-7, and increase the time reset is asserted to 50 ms.

    With these fixes an usb keyboard I have now always enumerates properly, where
    as earlier it would only enumerare properly once every 5 tries.

    Signed-off-by: Hans de Goede

    Hans de Goede
     
  • Before this commit u-boot would print the following on boot with musb and
    no usb device plugged in:

    starting USB...
    USB0: Port not available.
    USB error: all controllers failed lowlevel init

    This commit changes this to:

    starting USB...
    USB0: Port not available.

    Which is the correct thing to do since the low-level init went fine.

    Signed-off-by: Hans de Goede

    Hans de Goede
     

08 Dec, 2014

1 commit


04 Nov, 2014

1 commit


29 Aug, 2014

1 commit

  • As we support both Host and Device mode operation, an OTG controller
    can return -ENODEV on a port which it found to be in Device mode during
    Host mode scan for devices. In case -ENODEV is returned, print that the
    port is not available and continue instead of screaming a bloody error
    message.

    Signed-off-by: Marek Vasut

    Marek Vasut
     

21 Oct, 2013

4 commits

  • This parameter will later be used to verify OTG ports.

    Signed-off-by: Troy Kisky

    Troy Kisky
     
  • This will be used by usb_lowlevel_init so it will
    no longer be used by only board specific functions.

    Move definition of enum usb_init_type higher in file
    so that it will be available for usb_low_level_init.

    Signed-off-by: Troy Kisky

    Troy Kisky
     
  • This commit unifies board-specific USB initialization implementations
    under one symbol (usb_board_init), declaration of which is available in
    usb.h.

    New API allows selective initialization of USB controllers whenever needed.

    Signed-off-by: Mateusz Zalega
    Signed-off-by: Kyungmin Park
    Reviewed-by: Lukasz Majewski
    Cc: Marek Vasut
    Cc: Lukasz Majewski

    Mateusz Zalega
     
  • This adds stack layer for eXtensible Host Controller Interface
    which facilitates use of USB 3.0 in host mode.

    Adapting xHCI host controller driver in linux-kernel
    by Sarah Sharp to needs in u-boot.

    Initial porting from Linux kernel version 3.4, with following
    top commit history of drivers/usb/host/xhci* :
    cf84055 xHCI: Cleanup isoc transfer ring when TD length mismatch found

    This adds the basic xHCI host controller driver with bare minimum
    features:
    - Control/Bulk transfer support has been added with required
    infrastructure for necessary xHC data structures.
    - Stream protocol hasn't been supported yet.
    - No support for quirky devices has been added.

    Signed-off-by: Vikas C Sajjan
    Signed-off-by: Julius Werner
    Signed-off-by: Vivek Gautam
    Cc: Simon Glass
    Cc: Minkyu Kang
    Cc: Dan Murphy
    Cc: Marek Vasut

    Vivek Gautam
     

27 Aug, 2013

1 commit

  • The existing USB configuration parsing code relies on the descriptors'
    own length values when reading through the configuration blob. Since the
    size of those descriptors is always well-defined, we should rather use
    the known sizes instead of trusting device-provided values to be
    correct. Also adds some safety to potential out-of-order descriptors.

    Change-Id: I16f69dfdd6793aa0fe930b5148d4521f3e5c3090
    Signed-off-by: Julius Werner

    Julius Werner
     

24 Jul, 2013

1 commit


06 May, 2013

4 commits


17 Dec, 2012

1 commit


20 Nov, 2012

1 commit

  • Linux usb/ch9.h seems to have all the same information (and more)
    as usbdescriptors.h so use the former instead of the later one.

    As a consequense of this change USB_SPEED_* values don't correspond
    directly to EHCI speed encoding anymore, I've added necessary
    recoding in EHCI driver. Also there is no point to put speed into
    pipe anymore so it's removed and a bunch of host drivers fixed to
    look at usb_device->speed instead.

    Old usbdescriptors.h included is not removed as it seems to be
    used by old USB device code.

    This makes usb.h and usbdevice.h incompatible. Fortunately the
    only place that tries to include both are the old MUSB code and
    it needs usb.h only for USB_DMA_MINALIGN used in aligned attribute
    on musb_regs structure but this attribute seems to be unneeded
    (old MUSB code doesn't support any DMA at all).

    Signed-off-by: Ilya Yanok

    Ilya Yanok
     

22 Oct, 2012

1 commit

  • When a USB configuration descriptor was larger than our USB buffer
    (512 bytes), we were skipping the full descriptor reading but then we
    were still parsing and using it, triggering memory corruptions.
    Now in that case, it just skips this device enumeration and displays the
    appropriate message to the user, so he can fix the buffer if he wants.

    This bug was triggered by some UVC webcams which have very large
    configuration descriptors (e.g. a couple of kB) describing all their
    supported video encodings.

    Signed-off-by: Vincent Palatin
    Acked-by: Simon Glass

    Vincent Palatin
     

16 Oct, 2012

2 commits


18 Jul, 2012

2 commits


20 May, 2012

2 commits

  • This avoids cache-alignment warnings shown in console
    when a usb command is entered.

    Whenever X bytes of unaligned buffer is invalidated, arm core
    invalidates X + Y bytes as per the cache line size and throws
    these warnings.

    Signed-off-by: Puneet Saxena
    Signed-off-by: Marek Vasut

    Puneet Saxena
     
  • Building usb for Blackfin boards fails as we get linux/compiler.h
    included which expands the "noinline" inside of the attribute and
    we get attribute(attribute(noinline)).

    Explicitly use the helper define to avoid this.

    Signed-off-by: Mike Frysinger

    Mike Frysinger