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) -
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) -
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) -
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) -
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) -
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
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
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 -
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 -
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 driverSigned-off-by: Vignesh Raghavendra
15 Dec, 2018
1 commit
-
The BITMAP related operations can now be moved to ./include/linux/bitmap.h
file to mimic the Linux kernel directory tree.This change also allows to remove the lin_gadget_compat.h header file
(which is a legacy code only for composite U-boot layer).
It was also possible to remove #includes from several USB gadget drivers.Signed-off-by: Lukasz Majewski
Reviewed-by: Stefan Agner
07 Dec, 2018
2 commits
-
When DM_USB_GADGET the platform code for the USB device must be replaced by
calls to a USB device driver.usb_gadget_initialize() probes the USB device driver.
usb_gadget_release() removes the USB device driver.Signed-off-by: Jean-Jacques Hiblot
Reviewed-by: Lukasz Majewski -
Add 2 functions to wrap the calls to board_usb_init() and
board_usb_cleanup().
This is a preparatory work for DM support for UDC drivers (DM_USB_GADGET).Signed-off-by: Jean-Jacques Hiblot
Reviewed-by: Lukasz Majewski
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
18 May, 2018
1 commit
-
Add support to get maximum speed from dt so that usb drivers
makes use of it for DT parsing.Signed-off-by: Mugunthan V N
Signed-off-by: Michal Simek
(rebase and fix errors)
Reviewed-by: Simon Glass
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
27 Oct, 2017
1 commit
-
Signed-off-by: Ashish Kumar
Signed-off-by: Amrita Kumari
Signed-off-by: Ran Wang
Reviewed-by: Bin Meng
Reviewed-by: York Sun
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
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
28 Apr, 2017
1 commit
-
In Linux, CONFIG_ARCH_OMAP2PLUS is used for OMAP2 or later SoCs.
Rename CONFIG_ARCH_OMAP2 to CONFIG_ARCH_OMAP2PLUS to follow this
naming.Move the OMAP2+ board/SoC choice down to mach-omap2/Kconfig to slim
down the arch/arm/Kconfig level.Signed-off-by: Masahiro Yamada
Reviewed-by: Tom Rini
18 Apr, 2017
3 commits
-
Use CONFIG_ARCH_LS1021A instead.
Signed-off-by: York Sun
-
Use CONFIG_ARCH_LS1043A instead.
Signed-off-by: York Sun
-
Use CONFIG_ARCH_LS2080A instead.
Signed-off-by: York Sun
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
19 Jan, 2017
1 commit
-
Enable usb feature for ls1046ardb
Signed-off-by: Changming Huang
Reviewed-by: York Sun
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
28 Sep, 2016
2 commits
-
Currently the controller by default enables the Receive Detect feature in P3
mode in USB 3.0 PHY. However, USB 3.0 PHY does not reliably support receive
detection in P3 mode.
Enabling the USB3 controller to configure USB in P2 mode whenever the Receive
Detect feature is required.Signed-off-by: Sriram Dash
Signed-off-by: Rajesh Bhagat -
This is required for better performance, and performs below tuning:
1. Enable burst length set, and define it as 4/8/16.
2. Set burst request limit to 16 requests.Signed-off-by: Rajesh Bhagat
Signed-off-by: Sriram Dash
27 Sep, 2016
1 commit
-
trini: Drop local memset() from
examples/standalone/mem_to_mem_idma2intr.cSigned-off-by: Tom Rini
26 Sep, 2016
1 commit
-
Move this config to Kconfig option and clean up existing uses.
Signed-off-by: York Sun
CC: Calvin Johnson
CC: Prabhakar Kushwaha
Reviewed-by: Tom Rini
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
27 Jul, 2016
1 commit
-
Remove Soc specific defines and use generic chasis specific defines
for USB controller base address mapping.Signed-off-by: Rajesh Bhagat
Reviewed-by: York Sun
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-4Signed-off-by: Calvin Johnson
Signed-off-by: Makarand Pawagi
Signed-off-by: Prabhakar Kushwaha
Reviewed-by: York Sun
17 May, 2016
1 commit
-
Add common usb code which usb drivers makes use of it.
Signed-off-by: Mugunthan V N
Reviewed-by: Simon Glass
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
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
07 Dec, 2015
1 commit
-
This patch removes unsued function usb_phy_reset, rather common function
dwc3_phy_reset is used.Signed-off-by: Marek Vasut
01 Dec, 2015
3 commits
-
Add support for the third USB controller for LS1043A.
Signed-off-by: Gong Qianyu
Reviewed-by: York Sun -
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 -
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