<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/drivers/usb, branch next</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/drivers/usb?h=next</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/drivers/usb?h=next'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2026-08-09T11:26:42Z</updated>
<entry>
<title>usb: mtu3: add SPL support</title>
<updated>2026-08-09T11:26:42Z</updated>
<author>
<name>Carlo Caione</name>
<email>ccaione@baylibre.com</email>
</author>
<published>2026-08-08T13:40:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=08b77aac333cb437df57a7f746fa712042ccde61'/>
<id>urn:sha1:08b77aac333cb437df57a7f746fa712042ccde61</id>
<content type='text'>
MediaTek platforms may need the MTU3 controller before U-Boot proper is
available, but the driver is currently selected and built only with the
main U-Boot configuration symbols.

Add an explicit SPL controller option with host and gadget modes. Make
the driver build and its role checks phase-aware so each phase can select
the MTU3 role it needs without coupling it to the U-Boot proper controller
configuration.

The upstream binding locates the xHCI child registers through the parent
ranges property. Select SPL_OF_TRANSLATE for host mode so SPL can resolve
that address before mapping it.

Signed-off-by: Julien Masson &lt;jmasson@baylibre.com&gt;
Signed-off-by: Carlo Caione &lt;ccaione@baylibre.com&gt;
Reviewed-by: Marek Vasut &lt;marek.vasut+usb@mailbox.org&gt;
</content>
</entry>
<entry>
<title>usb: mtu3: support the upstream devicetree binding</title>
<updated>2026-08-09T11:26:42Z</updated>
<author>
<name>Carlo Caione</name>
<email>ccaione@baylibre.com</email>
</author>
<published>2026-08-08T13:39:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=0f8cbf3a0d6f5a83f3b3cc9792212247efd5afba'/>
<id>urn:sha1:0f8cbf3a0d6f5a83f3b3cc9792212247efd5afba</id>
<content type='text'>
The MTU3 glue driver expects a synthetic mediatek,ssusb child that
combines the device and xHCI register windows. Upstream devicetrees
instead put the device resources on the controller node and describe the
xHCI window with a standard child node, so U-Boot cannot use an upstream
topology.

Switch to the upstream layout. The controller owns the shared resources
and the device MAC, with the device register offsets relative to it as in
Linux. The gadget role binds as a node-less internal device, while the
host role binds to an enabled xHCI child and uses its own clocks,
supplies and register window. dr_mode selects the role and defaults to
otg, and the Kconfig choice constrains which role the build provides.
The legacy child layout is rejected explicitly so its combined register
window cannot be mistaken for the device MAC.

Convert the in-tree MT8183 and MT8512 devicetrees in the same commit so
neither platform is left without USB. MT8512 stays peripheral-only
because its xHCI host interrupt is not documented and the
mediatek,mtk-xhci binding requires it.

Reviewed-by: Marek Vasut &lt;marek.vasut+usb@mailbox.org&gt;
Signed-off-by: Carlo Caione &lt;ccaione@baylibre.com&gt;
</content>
</entry>
<entry>
<title>usb: mtu3: wait for TX FIFO to drain before disconnect</title>
<updated>2026-08-02T20:13:19Z</updated>
<author>
<name>Carlo Caione</name>
<email>ccaione@baylibre.com</email>
</author>
<published>2026-07-20T08:03:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=9879c40f6d010f7d019dcbf8b76d5642e40567c4'/>
<id>urn:sha1:9879c40f6d010f7d019dcbf8b76d5642e40567c4</id>
<content type='text'>
Fastboot unregisters the USB gadget from the completion callback of
its final OKAY response. MTU3 QMU can report that request complete
while bytes remain in the endpoint TX FIFO. Disabling the USB function
immediately can therefore disconnect the host before it receives the
response.

Before selecting the high-speed or SuperSpeed disconnect operation, poll
the FIFO state of enabled IN endpoints that have no pending requests.
Bound the wait to 1 ms. If a FIFO does not drain, reset its endpoint,
force the disconnect, and propagate -ETIMEDOUT through the gadget pullup
operation. Endpoints with pending requests are skipped so an ordinary
disconnect does not wait for an active transfer.

Fixes: e09b88cd083d ("usb: add MediaTek USB3 DRD driver")
Signed-off-by: Vitor Sato Eschholz &lt;vsatoes@baylibre.com&gt;
Signed-off-by: Carlo Caione &lt;ccaione@baylibre.com&gt;
Reviewed-by: Marek Vasut &lt;marek.vasut+usb@mailbox.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'u-boot-dfu-20260728' of https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu</title>
<updated>2026-07-28T13:52:00Z</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2026-07-28T13:50:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=9f934c71810e349949ce674e33099dface1ba6f4'/>
<id>urn:sha1:9f934c71810e349949ce674e33099dface1ba6f4</id>
<content type='text'>
u-boot-dfu-20260728

CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu/-/pipelines/769

Android:
* avb: Update libavb to AOSP 1.3.0
* avb: Fix memory leak on mmc_part
* bootmeth_android: Fix memory leaks for AvbOps and verify-data
* bootmeth_android: Fix out-of-bounds access in bootconfig parsing

USB Gadget:
* cmd: ums: Set serial# on iSerial device descriptor
* dwc2: Set maxpacket_limit and endpoint capabilities to prepare for
  udc core migration
* ci_udc: Fix ep type in ep_enable()
* ci_udc: Set usb request status to handle complete callback
* ci_udc: Ensure dtds are inactive before completing request
</content>
</entry>
<entry>
<title>usb: ci_udc: verify all dtds are inactive before completing request</title>
<updated>2026-07-22T07:16:16Z</updated>
<author>
<name>Jason He</name>
<email>jason.he_1@nxp.com</email>
</author>
<published>2026-05-22T07:55:12Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=b6056097247385c24c23ef39ebc04238336d11e2'/>
<id>urn:sha1:b6056097247385c24c23ef39ebc04238336d11e2</id>
<content type='text'>
According to device mode spec, the ACTIVE status field of dtds should
be check to determine whether the transfers completed successfully.
However, this is not implemented in handle_ep_complete.
When two EPs are enabled and transferring, EPa requests with multiple dtds
and EPb request with one dtd. Irq is triggred on EPb. The udc_irq handler
finds both EPb's and EPa's ENDPTCOMPLETE=1 while not all of EPa's dtds
have been completed. Because ACTIVE status is not checked, this case
causes crash in ci_udc driver.

Signed-off-by: Jason He &lt;jason.he_1@nxp.com&gt;
Signed-off-by: Ye Li &lt;ye.li@nxp.com&gt;
Link: https://patch.msgid.link/20260522075512.1291485-3-ye.li@nxp.com
Signed-off-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: ci_udc: Update usb request status</title>
<updated>2026-07-22T07:16:16Z</updated>
<author>
<name>Ye Li</name>
<email>ye.li@nxp.com</email>
</author>
<published>2026-05-22T07:55:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=b79147bbd47cd2d50836dc0a57376f4820663637'/>
<id>urn:sha1:b79147bbd47cd2d50836dc0a57376f4820663637</id>
<content type='text'>
usb request status is not set in ci_udc driver. However
in ci_ep_dequeue, it checks the request status for executing
complete callback, so upper layer is not able to free these
enqueued requests when calling usb_ep_dequeue.

Signed-off-by: Ye Li &lt;ye.li@nxp.com&gt;
Fixes: 26cc5129ee64 ("USB: gadaget: add Marvell controller support")
Reviewed-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
Link: https://patch.msgid.link/20260522075512.1291485-2-ye.li@nxp.com
Signed-off-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: ci_udc: set correct ep type in ep_enable()</title>
<updated>2026-07-22T07:16:16Z</updated>
<author>
<name>Xu Yang</name>
<email>xu.yang_2@nxp.com</email>
</author>
<published>2026-05-22T07:55:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=eed2ed75883bdf029be9325fb9dd9263d921372e'/>
<id>urn:sha1:eed2ed75883bdf029be9325fb9dd9263d921372e</id>
<content type='text'>
The Endpoint Type in ENDPTCTRL register should be correctly set
according to endpoint descriptor, not fixed to bulk. Otherwise,
unexpected behaviors may happen.

Fixes: 26cc5129ee64 ("USB: gadaget: add Marvell controller support")
Signed-off-by: Xu Yang &lt;xu.yang_2@nxp.com&gt;
Signed-off-by: Ye Li &lt;ye.li@nxp.com&gt;
Reviewed-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
Link: https://patch.msgid.link/20260522075512.1291485-1-ye.li@nxp.com
Signed-off-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: gadget: dwc2: Set endpoint capabilities via .caps field</title>
<updated>2026-07-22T06:54:16Z</updated>
<author>
<name>Mattijs Korpershoek</name>
<email>mkorpershoek@kernel.org</email>
</author>
<published>2026-07-03T13:29:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=c5c4cc4c6b9887858e168d5106f8f1d3dfb6c3e8'/>
<id>urn:sha1:c5c4cc4c6b9887858e168d5106f8f1d3dfb6c3e8</id>
<content type='text'>
Endpoint capabilities can be described via the .caps field of
struct usb_ep since commit
77dcbdf3c1ce ("usb: gadget: Add match_ep() op to usb_gadget_ops")

In linux, the following commit introduces it:
b86f33a3a371 ("usb: gadget: epautoconf: add endpoint capabilities flags verification")

Linux's change also reworks the ep matching function by relying on
these new capabilities instead of guessing based on the endpoint name.

Prepare the dwc2 UDC driver for capability-based matching by adding the
required capabilities for each endpoint.

Acked-by: Ilias Apalodimas &lt;ilias.apalodimas@linaro.org&gt;
Link: https://patch.msgid.link/20260703-usb-prep-dwc3-sync-v1-2-1352bc238c9b@kernel.org
Signed-off-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: gadget: dwc2: Use usb_ep_set_maxpacket_limit() for fifo sizes</title>
<updated>2026-07-22T06:54:16Z</updated>
<author>
<name>Mattijs Korpershoek</name>
<email>mkorpershoek@kernel.org</email>
</author>
<published>2026-07-03T13:29:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=6f9c431a20627db34e0c41ea865c611f0d2c2016'/>
<id>urn:sha1:6f9c431a20627db34e0c41ea865c611f0d2c2016</id>
<content type='text'>
More recent versions of usb_ep_autoconfig() use the maxpacket_limit
field from struct usb_ep.

This field has been introduced in the linux kernel via commit
e117e742d310 ("usb: gadget: add "maxpacket_limit" field to struct usb_ep")
And has been ported to U-Boot via commit
747a0a5b387f ("usb: dwc3: gadget: make dwc3 gadget build in uboot")

However, the dwc2 gadget driver was not converted to use
usb_ep_set_maxpacket_limit().
This is harmless for now, but the driver will break once
usb_ep_autoconfig() is updated to a more recent version.

Set maxpacket_limit via the recommended helper function to prepare for
a core gadget update.

Acked-by: Ilias Apalodimas &lt;ilias.apalodimas@linaro.org&gt;
Link: https://patch.msgid.link/20260703-usb-prep-dwc3-sync-v1-1-1352bc238c9b@kernel.org
Signed-off-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
</content>
</entry>
<entry>
<title>cmd: ums: Set Device Descriptor iSerial based on serial# env variable</title>
<updated>2026-07-22T06:53:37Z</updated>
<author>
<name>Marek Vasut</name>
<email>marex@nabladev.com</email>
</author>
<published>2026-06-26T14:28:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=3caa8f42e1f657177780be5a445502cbb9181e43'/>
<id>urn:sha1:3caa8f42e1f657177780be5a445502cbb9181e43</id>
<content type='text'>
The DFU code currently sets the content of "serial#" environment
variable into Device Descriptor iSerial field. This is useful when
there are multiple devices connected to the same host PC and they
have to be told apart. Replicate the same behavior in the UMS code.

Example without serial# set, which is the original behavior:
"
u-boot=&gt; ums 0 mmc 1
UMS: LUN 0, dev mmc 1, hwpart 0, sector 0x0, count 0x1d5a000

$ dmesg -w
...
usb 5-2.3.7: New USB device found, idVendor=0525, idProduct=a4a5, bcdDevice=7e.a7
usb 5-2.3.7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 5-2.3.7: Product: USB download gadget
usb 5-2.3.7: Manufacturer: Vendor
                            &lt;------------------------------- NOT HERE
usb-storage 5-2.3.7:1.0: USB Mass Storage device detected
...

$ lsusb -vd 0525:a4a5

Bus 005 Device 051: ID 0525:a4a5 Netchip Technology, Inc. Linux-USB File-backed Storage Gadget
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0525 Netchip Technology, Inc.
  idProduct          0xa4a5 Linux-USB File-backed Storage Gadget
  bcdDevice           7e.a7
  iManufacturer           1 Vendor
  iProduct                2 USB download gadget
  iSerial                 0 &lt;------------------------------- NOT HERE
...
"

Example with serial# set to 1234abcd, which is the optional new behavior:
"
u-boot=&gt; setenv serial# 1234abcd &lt;------------------------------ HERE
u-boot=&gt; ums 0 mmc 1
UMS: LUN 0, dev mmc 1, hwpart 0, sector 0x0, count 0x1d5a000

$ dmesg -w
...
usb 5-2.3.7: New USB device found, idVendor=0525, idProduct=a4a5, bcdDevice=7e.a7
usb 5-2.3.7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 5-2.3.7: Product: USB download gadget
usb 5-2.3.7: Manufacturer: Vendor
usb 5-2.3.7: SerialNumber: 1234abcd &lt;--------------------------- HERE
usb-storage 5-2.3.7:1.0: USB Mass Storage device detected
...

$ lsusb -vd 0525:a4a5

Bus 005 Device 052: ID 0525:a4a5 Netchip Technology, Inc. Linux-USB File-backed Storage Gadget
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0525 Netchip Technology, Inc.
  idProduct          0xa4a5 Linux-USB File-backed Storage Gadget
  bcdDevice           7e.a7
  iManufacturer           1 Vendor
  iProduct                2 USB download gadget
  iSerial                 3 1234abcd &lt;-------------------------- HERE
...
"

Signed-off-by: Marek Vasut &lt;marex@nabladev.com&gt;
Reviewed-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
Link: https://patch.msgid.link/20260626142840.305478-1-marex@nabladev.com
Signed-off-by: Mattijs Korpershoek &lt;mkorpershoek@kernel.org&gt;
</content>
</entry>
</feed>
