On 14-09-22, 10:59, JC Kuo wrote: > On 9/13/22 22:34, Vinod Koul wrote: > > On 06-09-22, 10:43, JC Kuo wrote: > > Thanks for this explanation... It helps! > > > > Just a suggestion, can this be moved into phy_init() you have detected > > connection in phy_power_on(), the transceiver can be enabled in > > phy_int... Would that work? > > That would work, too. However, because Tegra USB has separate phys for USB3 SS > and USB2, I'd like to keep the USB2 phy operations as they are now, so that USB > host and device controller drivers do not have to distinguish the phy type and > invoke different phy stubs. Furthermore, PD_ZI=0 does really power on the USB2 > phy, partially. > > For example: > 1. in .probe(), > for_each_usb_phy { > phy_init(phy); > } > > for_each_usb3_phy { > phy_power_on(phy); > }; > > 2. upon detecting connection, > > phy_power_on(the_target_usb2_phy); It should be always phy_init() in probe and once detection phy_power_on() that should be generic flow for all... -- ~Vinod