Hi,
I'm having a difficulty implementing the role swap process between the i.MX8M evaluation board and an iPhone. The two are connected via a Lightning-to-USB-C cable and the kernel version is 6.1.36-imx8qm+gdd01990ad5ea.
When I try modify the /sys/bus/platform/devices/ci_hdrc.0/role, from host to device, I encounter a write error stating that it is forbidden to write that file (even though write permission is enabled for root). Checking the events with dmesg, I see the log "ci_hdrc.0: Current configuration is not dual-role, quit".
The dr_mode file inside the directory /sys/firmware/devicetree/base/bus@5b000000/usb@5b110000/usb@5b120000/ has the "otg" value.
What should I do to make an effective role swap process? Additionaly, should I also operate on the i2c pins for the role-swap process?
I'm doing my first embedded project so I'm a complete beginner at this.
Any pointers or advice will be would be greatly appreciated.
Hello,
I think you should modify the hardware there is a resistor in line USB+ you need to change to operate a host device.
Regards
Hi, Thank you for your response.
The resistor that you're talking about is the D1+ or D2+ in the U27/U55/U56 block that are connected to the usb type c port? How can I programmatically change that ? I should change it after the request of control swap?
I've found in this forum a question ("USB role switch with chipidea on i.MX8QXP") with a control transfer that can disconnect the otg device but then i don't see it as the host.