06 May, 2020

6 commits

  • Since the orginal way to call interrupts handle function of DM usb
    gadget driver is through dm_usb_gadget_handle_interrupts(), when we want
    to use two or more different gadget drivers at the same time, it will
    cause error of duplicate names.

    So here add a handle_interrupts function pointer instead of driectly
    call dm_usb_gadget_handle_interrupts(), then the error can be avoided.

    Signed-off-by: Sherry Sun
    (cherry picked from commit 2458ddd952a6a2d2304dfe7ea34e4192cd1d5ed4)

    Sherry Sun
     
  • This patch is to add usb gadget super speed support in common
    driver, including BOS descriptor and select the super speed
    descriptor from function driver.

    Reviewed-by: Ye Li
    Reviewed-by: Peter Chen
    Tested-by: faqiang.zhu
    Signed-off-by: Li Jun
    (cherry picked from commit b0bc5f6d1292158a068446771c10a4e7285f9623)
    (cherry picked from commit 363267844637123d4fcfb924d624882b02059082)

    Li Jun
     
  • This is a proting patch from linux kernel: 37a3a533429e
    ("usb: gadget: OS Feature Descriptors support"), the original commit
    log see below:

    There is a custom (non-USB IF) extension to the USB standard:

    http://msdn.microsoft.com/library/windows/hardware/gg463182

    They grant permission to use the specification - there is
    "Microsoft OS Descriptor Specification License Agreement"
    under the link mentioned above, and its Section 2 "Grant
    of License", letter (b) reads:

    "Patent license. Microsoft hereby grants to You a nonexclusive,
    royalty-free, nontransferable, worldwide license under Microsoft’s
    patents embodied solely within the Specification and that are owned
    or licensable by Microsoft to make, use, import, offer to sell,
    sell and distribute directly or indirectly to Your Licensees Your
    Implementation. You may sublicense this patent license to Your
    Licensees under the same terms and conditions."

    The said extension is maintained by Microsoft for Microsoft.

    Yet it is fairly common for various devices to use it, and a
    popular proprietary operating system expects devices to provide
    "OS descriptors", so Linux-based USB gadgets whishing to be able
    to talk to a variety of operating systems should be able to provide
    the "OS descriptors".

    This patch adds optional support for gadgets whishing to expose
    the so called "OS Feature Descriptors", that is "Extended Compatibility ID"
    and "Extended Properties".

    Hosts which do request "OS descriptors" from gadgets do so during
    the enumeration phase and before the configuration is set with
    SET_CONFIGURATION. What is more, those hosts never ask for configurations
    at indices other than 0. Therefore, gadgets whishing to provide
    "OS descriptors" must designate one configuration to be used with
    this kind of hosts - this is what os_desc_config is added for in
    struct usb_composite_dev. There is an additional advantage to it:
    if a gadget provides "OS descriptors" and designates one configuration
    to be used with such non-USB-compliant hosts it can invoke
    "usb_add_config" in any order because the designated configuration
    will be reported to be at index 0 anyway.

    This patch also adds handling vendor-specific requests addressed
    at device or interface and related to handling "OS descriptors"."

    Signed-off-by: Li Jun
    (cherry picked from commit 859be2fc12dbd1b99e140641f2d7fa14df29c9dd)
    (cherry picked from commit b524637d502ca75e6eb385b59df708f858a6da2a)
    (cherry picked from commit 56ac0900c5182055a771fd2777f0bbb2295f49a8)

    Li Jun
     
  • This is a porting patch from linux kernel: 19824d5eeece
    ("usb: gadget: OS String support"), original commit log
    see below:

    "There is a custom (non-USB IF) extension to the USB standard:

    http://msdn.microsoft.com/library/windows/hardware/gg463182

    They grant permission to use the specification - there is
    "Microsoft OS Descriptor Specification License Agreement"
    under the link mentioned above, and its Section 2 "Grant
    of License", letter (b) reads:

    "Patent license. Microsoft hereby grants to You a nonexclusive,
    royalty-free, nontransferable, worldwide license under Microsoft’s
    patents embodied solely within the Specification and that are owned
    or licensable by Microsoft to make, use, import, offer to sell,
    sell and distribute directly or indirectly to Your Licensees Your
    Implementation. You may sublicense this patent license to Your
    Licensees under the same terms and conditions."

    The said extension is maintained by Microsoft for Microsoft.

    Yet it is fairly common for various devices to use it, and a
    popular proprietary operating system expects devices to provide
    "OS descriptors", so Linux-based USB gadgets whishing to be able
    to talk to a variety of operating systems should be able to provide
    the "OS descriptors".

    This patch adds optional support for gadgets whishing to expose
    the so called "OS String" under index 0xEE of language 0.
    The contents of the string is generated based on the qw_sign
    array and b_vendor_code.

    Interested gadgets need to set the cdev->use_os_string flag,
    fill cdev->qw_sign with appropriate values and fill cdev->b_vendor_code
    with a value of their choice.

    This patch does not however implement responding to any vendor-specific
    USB requests."

    Signed-off-by: Li Jun
    (cherry picked from commit b6ea0aaee307be0defaf8dc2c1eae9110bdae9a7)
    (cherry picked from commit ccc7596829c33eb1b616e3f5ba434edff444f805)
    (cherry picked from commit 98d8afdca42c1f0e7a875b628e0fb398af2cdea7)

    Li Jun
     
  • imx8mq usb xhci is a dwc3 based controller, its synopsys PHY
    can be controlled by usbmix glue layer. imx8mq has 2 USB3 instance,
    this patch enables both two USB3 controllers.

    Reviewed-by : Peng Fan
    Signed-off-by: Li Jun

    (cherry picked from commit cb77028d960277df2dc357a86e6851da74924c1a)
    Signed-off-by: Ye Li
    (cherry picked from commit 5a6326b0498115ca524537d5695ccd582d335157)
    (cherry picked from commit 4d2664a31ef2b45e6cd3ef6fbb83d81ea04b555e)

    Li Jun
     
  • Since some new fields in usb_ep structure been moved to usb_ss_ep.
    The CDNS3 gadget driver should replies on this operation to bind the
    usb_ss_ep with the endpoint descriptor when function layer uses
    usb_ep_autoconfig to add endpoint descriptors to gadget. So that
    CDNS3 driver can know the EP information and configure the EP once
    the set configuration request is received.

    Signed-off-by: Sherry Sun
    Signed-off-by: Ye Li

    Ye Li
     

23 Nov, 2019

1 commit

  • U-Boot has two different variants of dwc3 initializations,
    - with dm variant gadget, so the respective dm driver would
    call the dwc3_init in core.
    - with non-dm variant gadget, so the usage board file would
    call dwc3_uboot_init in core.

    The driver probe would handle all respective gadget properties
    including phy interface via phy_type property and then trigger
    dwc3_init for dm-variant gadgets.

    So, to support the phy interface for non-dm variant gadgets,
    the better option is dwc3_uboot_init since there is no
    dedicated controller for non-dm variant gadgets.

    This patch support for adding phy interface like 8/16-bit UTMI+
    code for dwc3_uboot.

    This change used Linux phy.h enum list, to make proper code
    compatibility.

    Cc: Marek Vasut
    Tested-by: Levin Du
    Signed-off-by: Jagan Teki
    Reviewed-by: Marek Vasut
    Reviewed-by: Kever Yang

    Jagan Teki
     

07 Nov, 2019

3 commits

  • To add usb-3.0 support to peripheral device add BOS & SS capability
    descriptors to gadget composite framework.

    Signed-off-by: T Karthik Reddy
    Signed-off-by: Siva Durga Prasad Paladugu
    Signed-off-by: Michal Simek
    Reviewed-by: Roger Quadros

    T Karthik Reddy
     
  • This patch was copied from kernel commit: 67fdfda4a99ed.

    Sometimes, the gadget driver we want to run has max_speed lower than
    what the UDC supports. In such situations, UDC might want to make sure
    we don't try to connect on speeds not supported by the gadget
    driver because that will just fail.

    So here introduce a new optional ->udc_set_speed() method which can be
    implemented by interested UDC drivers to achieve this purpose.

    Signed-off-by: Sherry Sun
    Signed-off-by: Vignesh Raghavendra

    Sherry Sun
     
  • Add match_ep() op to usb_gadget_ops similar to Linux kernel which is
    useful in finding a suitable ep match for the function driver. This will
    avoid adding more gadget_is_xxx() handling code to usb_ep_autoconfig().

    Also sync usb_ep_caps struct thats is usually used in the match_ep()
    callback by the gadget controller driver

    Signed-off-by: Vignesh Raghavendra

    Vignesh Raghavendra
     

15 Dec, 2018

1 commit


07 Dec, 2018

2 commits


23 Aug, 2018

1 commit

  • When MUSB is operating in peripheral mode, probe registering
    musb core using musb_register which intern return int value
    for validation. so there is no scope to preserve struct musb
    pointer but the same can be used in .remove musb_stop.
    So fix this by return musb_register with struct musb pointer.

    Cc: Igor Grinberg
    Cc: Purna Chandra Mandal
    Tested-by: Chen-Yu Tsai # A33-OlinuXino
    Tested-by: Jagan Teki
    Signed-off-by: Jagan Teki

    Jagan Teki
     

18 May, 2018

1 commit


07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     

27 Oct, 2017

1 commit


01 Oct, 2017

1 commit

  • USB endpoint reports the period between consecutive requests to send
    or receive data as bInverval in its endpoint descriptor. So far this
    is ignored by xHCI driver and the 'Interval' field in xHC's endpoint
    context is always programmed to zero which means 1ms for low speed
    or full speed , or 125us for high speed or super speed. We should
    honor the interval by getting it from endpoint descriptor.

    Signed-off-by: Bin Meng

    Bin Meng
     

08 May, 2017

1 commit

  • Modify the determination of the base address of xHCI registers of DRA7XX
    targets.
    Before the commit: by the target.
    After the commit: by the USB port index.

    Cc: Lokesh Vutla
    Cc: Marek Vasut
    Cc: Roger Quadros
    Signed-off-by: Uri Mashiach
    Reviewed-by: Marek Vasut
    Reviewed-by: Tom Rini
    Reviewed-by: Roger Quadros
    Acked-by: Marek Vasut
    Acked-by: Marek Vasut

    Uri Mashiach
     

28 Apr, 2017

1 commit


18 Apr, 2017

3 commits


06 Apr, 2017

1 commit

  • The architecture is currently unmaintained, remove.

    Cc: Benjamin Matthews
    Cc: Chong Huang
    Cc: Dimitar Penev
    Cc: Haitao Zhang
    Cc: I-SYST Micromodule
    Cc: M.Hasewinkel (MHA)
    Cc: Marek Vasut
    Cc: Martin Strubel
    Cc: Peter Meerwald
    Cc: Sonic Zhang
    Cc: Valentin Yakovenkov
    Cc: Wojtek Skulski
    Cc: Wojtek Skulski
    Signed-off-by: Tom Rini

    Tom Rini
     

19 Jan, 2017

1 commit


04 Dec, 2016

1 commit

  • Both AM57xx and DRA7xx share the same set of base addresses for DWC
    controllers. The usage however differ with DWC2 instance used typically
    in AM57xx evms while DWC1 instances used in DRA7x platforms.

    Use TARGET_SOC config to differentiate so that CONFIG_AM57XX can be dropped.

    Eventually, this needs to be dt-fied.

    Signed-off-by: Nishanth Menon
    Signed-off-by: Lokesh Vutla
    Reviewed-by: Tom Rini

    Nishanth Menon
     

28 Sep, 2016

2 commits


27 Sep, 2016

1 commit


26 Sep, 2016

1 commit


22 Sep, 2016

1 commit

  • This patch add support for rockchip dwc3 controller, which corresponding
    to the two type-C port on rk3399 evb.
    Only support usb2.0 currently for we have not enable the usb3.0 phy
    driver and PD(fusb302) driver.

    Signed-off-by: MengDongyang
    Signed-off-by: Kever Yang
    Reviewed-by: Marek Vasut
    Reviewed-by: Simon Glass

    MengDongyang
     

27 Jul, 2016

1 commit


04 Jun, 2016

1 commit

  • The QorIQ LS1012A processor, optimized for battery-backed or
    USB-powered, integrates a single ARM Cortex-A53 core with a hardware
    packet forwarding engine and high-speed interfaces to deliver
    line-rate networking performance.

    This patch add support of LS1012A SoC along with
    - Update platform & DDR clock read logic as per SVR
    - Define MMDC controller register set.
    - Update LUT base address for PCIe
    - Avoid L3 platform cache compilation
    - Update USB address, errata
    - SerDes table
    - Added CSU IDs for SDHC2, SAI-1 to SAI-4

    Signed-off-by: Calvin Johnson
    Signed-off-by: Makarand Pawagi
    Signed-off-by: Prabhakar Kushwaha
    Reviewed-by: York Sun

    Prabhakar Kushwaha
     

17 May, 2016

1 commit


07 Apr, 2016

1 commit

  • LS2080A is the primary SoC, and LS2085A is a personality with AIOP
    and DPAA DDR. The RDB and QDS boards support both personality. By
    detecting the SVR at runtime, a single image per board can support
    both SoCs. It gives users flexibility to swtich SoC without the need
    to reprogram the board.

    Signed-off-by: York Sun
    CC: Prabhakar Kushwaha
    Reviewed-by: Prabhakar Kushwaha

    York Sun
     

06 Feb, 2016

1 commit

  • Correct spelling of "U-Boot" shall be used in all written text
    (documentation, comments in source files etc.).

    Signed-off-by: Bin Meng
    Reviewed-by: Heiko Schocher
    Reviewed-by: Simon Glass
    Reviewed-by: Minkyu Kang

    Bin Meng
     

07 Dec, 2015

1 commit


01 Dec, 2015

3 commits

  • Add support for the third USB controller for LS1043A.

    Signed-off-by: Gong Qianyu
    Reviewed-by: York Sun

    Gong Qianyu
     
  • Freescale's LS2085A is a another personality of LS2080A SoC with
    support of AIOP and DP-DDR.
    This Patch adds support of LS2085A Personality.

    Signed-off-by: Pratiyush Mohan Srivastava
    Signed-off-by: Prabhakar Kushwaha
    [York Sun: Updated MAINTAINERS files
    Dropped #ifdef in cpu.h
    Add CONFIG_SYS_NS16550=y in defconfig]
    Reviewed-by: York Sun

    Prabhakar Kushwaha
     
  • LS2080A is a prime personality of Freescale’s LS2085A. It is a non-AIOP
    personality without support of DP-DDR, L2 switch, 1588, PCIe endpoint etc.
    So renaming existing LS2085A code base to reflect LS2080A (Prime personality)

    Signed-off-by: Pratiyush Mohan Srivastava
    Signed-off-by: Prabhakar Kushwaha
    [York Sun: Dropped #ifdef in cpu.c for cpu_type_list]
    Reviewed-by: York Sun

    Prabhakar Kushwaha