Hello,
Our target platform has a i.MX6ULZ SoC running in it. Upon using the USB OTG interface in "host" role for attaching USB digital headsets (e.g., Google Pixel USB-C earbuds) we observed the following Linux kernel error messages being reported:
kern.err kernel: usb usb1-port1: over-current condition
kern.inf kernel: usb 1-1: USB disconnect, device number 2
After some investigation into the problem, we discovered that on our target platform the USB_OTG1_OC signal had been left unconnected. Also, we came across information in the Linux kernel documentation, that we may have to use the flag "disable-over-current" in the USB OTG1 device node in the device tree specification for our target. Like so:
&usbotg1 {
dr_mode = "otg";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb_otg1>;
disable-over-current;
status = "okay";
};
After adding the above change. The USB over-current event stopped appearing. And the USB interface also seems to function normally. We further checked the health of the USB interface using a multi-meter to check if we had wrongly suppressed any real/actual USB over-current situation. But it did not seem to be the case.
So my query is, whether the solution to use the flag "disable-over-current" the way it's described above, the right way to handle the H/W design we have? Is there anything else that needs to be looked into to ensure that the USB works safely and correctly?
Best regards,
Uthappa
Solved! Go to Solution.
Hi Uthappa
> my query is, whether the solution to use the flag "disable-over-current" the way it's
>described above, the right way to handle the H/W design we have?
yes it is correct, in nxp dts file such "disable-over-current" is also used:
Best regards
igor
Thank you for confirming this Igor!
-Uthappa
Hi Uthappa
> my query is, whether the solution to use the flag "disable-over-current" the way it's
>described above, the right way to handle the H/W design we have?
yes it is correct, in nxp dts file such "disable-over-current" is also used:
Best regards
igor