On 6/20/21 5:00 PM, Fabio Estevam wrote:
Unlike imx6, on imx7 the USB PHY is described as:

        usbphynop1: usbphynop1 {
                compatible = "usb-nop-xceiv";
                clocks = <&clks IMX7D_USB_PHY1_CLK>;
                clock-names = "main_clk";
                #phy-cells = <0>;
        };
        
which does not have the 'reg' property.

Do not return an error when the 'reg' property is not found
for the USB PHY.

This fixes USB gadget regression on a imx7s-warp board.

Successfully tested the "ums 0 mmc 0" command on two boards:
imx7s-warp and imx6dl-pico-pi.

Signed-off-by: Fabio Estevam <feste...@denx.de>
---
  drivers/usb/host/ehci-mx6.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
index 48b5c8b0c53c..c3e4170513ec 100644
--- a/drivers/usb/host/ehci-mx6.c
+++ b/drivers/usb/host/ehci-mx6.c
@@ -583,7 +583,7 @@ static int mx6_parse_dt_addrs(struct udevice *dev)
addr = (void __iomem *)fdtdec_get_addr(blob, phy_off, "reg");
        if ((fdt_addr_t)addr == FDT_ADDR_T_NONE)
-               return -EINVAL;
+               addr = NULL;
priv->phy_addr = addr;

I applied both, but this looks very much like mx8mm which also uses nop-phy . So I think what would be even nicer is if you could try and enable CONFIG_PHY , patch the DT to specify phys = <&usbphynop1>; instead of fsl,usbphy = <&usbphynop1>; and see whether that works. You can have a look at how the usb was enabled on the verdin board.

Maybe then we can get rid of some of those ifdefs and switch to generic EHCI PHY etc.

Reply via email to