> > > > > > If not supported by ATF, then where to power on and off PHY since no other > place calls PHY APIs? Is it always on? > > > > Yes, in this case (when -EOPNOTSUPP is returned) SMC API is not > > supported by ATF, and PHY is always on. > > To make it clear, core/hcd.c function usb_add_hcd() when > hcd->skip_phy_initialization is false is calling > usb_phy_roothub_power_on() which calls phy_power_on(). If this call fails then > error is propagated back to the usb_add_hcd() and this function fails too. > > But on boards with older ATF (which do not support PHY power on SMC API) is > phy_power_on() returning error -EOPNOTSUPP and therefore whole USB > 3.0 initialization fails. > > This patch is adding init hook to detect if ATF supports PHY power on/off > functions and in case it does not support it, code sets XHCI_SKIP_PHY_INIT flag > to instruct xhci-plat code to set > hcd->skip_phy_initialization flag to instruct core/hcd.c to skip calling > usb_phy_roothub_power_on() function as it is know that it would fail. Thanks for clarity, clear now. Peter