chipidea: usbmisc_imx: i.MX93 support

Stefan Wahren wahrenst at gmx.net
Wed Jun 24 03:05:00 PDT 2026


Hi Xu,

Am 24.06.26 um 11:11 schrieb Xu Yang:
> On Wed, Jun 24, 2026 at 08:30:00AM +0200, Stefan Wahren wrote:
> What's your issue on i.MX93?
we have an i.MX93 board using both USB interfaces:

USB1:
- external available via USB-C connector
- OTG interface should be able to switch between host and peripheral
- as USB-C interface control we use the TI TUSB321AI [1] (while its DIR, 
OUT1, OUT2, CURRENT_MODE, PORT is unconnected or tied to GND)

  USB2:
- used as internal host interface

  We have the problem that 5 seconds after disconnecting a USB device 
from USB-C (USB1) interface, the USB driver complains that the VBUS is 
still to high:

[  144.078347] usb 2-1: USB disconnect, device number 2
[  144.083425] ci_hdrc ci_hdrc.0: remove, state 1
[  144.083521] usb 2-1.1: USB disconnect, device number 3
[  144.090310] usb usb2: USB disconnect, device number 1
[  144.139325] usb 2-1.5: USB disconnect, device number 4
[  144.158700] ci_hdrc ci_hdrc.0: USB bus 2 deregistered
[  149.190274] ci_hdrc ci_hdrc.0: timeout waiting for 00000800 in OTGSC
[  149.196741] usbmisc_imx 4c100200.usbmisc: vbus is error
[  149.202078] usbmisc_imx 4c100200.usbmisc: Error occurs during 
detection: -22

But except of this, both roles works as expected.

Here are the relevant device tree parts:

                 reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_usbotg1grp>;
                                compatible = "regulator-fixed";
                                regulator-name = "usb_otg1_vbus";
                                regulator-min-microvolt = <5000000>;
                                regulator-max-microvolt = <5000000>;
                                gpio = <&gpio4 13 GPIO_ACTIVE_HIGH>;
                                enable-active-high;
                                regulator-boot-on;
                 };

                 &usbotg1 {
                                vbus-supply = <&reg_usb_otg1_vbus>;
                                over-current-active-low;
                                status = "okay";
                 };

Thanks
Stefan

[1] - https://www.ti.com/lit/ds/symlink/tusb321ai.pdf
>
> Thanks,
> Xu Yang



More information about the linux-arm-kernel mailing list