On 6/29/20 4:13 AM, Peng Fan wrote: [...] > @@ -23,6 +25,9 @@ > #include <linux/usb/otg.h> > > #include "ehci.h" > +#if CONFIG_IS_ENABLED(POWER_DOMAIN) > +#include <power-domain.h> > +#endif
The ifdef here should not be needed. > DECLARE_GLOBAL_DATA_PTR; > > @@ -590,6 +595,18 @@ static int ehci_usb_phy_mode(struct udevice *dev) > if ((fdt_addr_t)addr == FDT_ADDR_T_NONE) > return -EINVAL; > > + /* Need to power on the PHY before access it */ > +#if CONFIG_IS_ENABLED(POWER_DOMAIN) > + struct udevice phy_dev; > + struct power_domain pd; > + > + phy_dev.node = offset_to_ofnode(phy_off); > + if (!power_domain_get(&phy_dev, &pd)) { > + if (power_domain_on(&pd)) > + return -EINVAL; Please return the return value of power_domain_on() in case of failure. [...]