
On Mon, Jan 17, 2022 at 7:46 PM Fabio Estevam festevam@gmail.com wrote:
Hi Adam,
On Mon, Jan 17, 2022 at 9:21 PM Adam Ford aford173@gmail.com wrote:
The imx8mm and imx8mn appear compatible with imx7d-usb flags in the OTG driver. If the dr_mode is defined as host or peripheral, the device appears to operate correctly, however the auto host/peripheral detection results in an error.
The solution isn't just adding checks for imx8mm and imx8mn to the check for imx7, because the USB clock needs to be running to read from the USBNC_PHY_STATUS_OFFSET register or it will hang.
Marek requested that I not enable the clocks in ehci_usb_of_to_plat, so I modified that function to return an unknown state if the device tree does not explicitly state whether it is a host or a peripheral.
When the driver probes, it looks to see if it's in the unknown state, and only then will it read the register to auto-detect.
Signed-off-by: Adam Ford aford173@gmail.com
V3: Keep ehci_usb_of_to_plat but add the ability to return and unknown state instead of reading the register. If the probe determines the states is unknown, it will query the register after the clocks have been enabled. Because of the slight behavior change, I removed any review or tested tags.
Unfortunately, v3 breaks 'ums 0 mmc 0' on the imx7s-warp board.
Thanks for testing it.
I am not really sure what's significantly different between them. Do you get any errors when you run UMS?
The eMMC is no longer mounted and the board hangs.