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
已解决! 转到解答。
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
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