Hi Chrisさん Thank you for the patch! > From: Chris Brandt, Sent: Tuesday, May 7, 2019 8:46 AM > > When not using OTG, the PHY will need to know if it should function as > host or peripheral by checking dr_mode in the PHY node (not the parent > controller node). > > Signed-off-by: Chris Brandt <chris.brandt@xxxxxxxxxxx> > --- > drivers/phy/renesas/phy-rcar-gen3-usb2.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/phy/renesas/phy-rcar-gen3-usb2.c b/drivers/phy/renesas/phy-rcar-gen3-usb2.c > index 218b32e458cb..4eaa228ebd30 100644 > --- a/drivers/phy/renesas/phy-rcar-gen3-usb2.c > +++ b/drivers/phy/renesas/phy-rcar-gen3-usb2.c > @@ -408,7 +408,12 @@ static int rcar_gen3_phy_usb2_init(struct phy *p) > if (rcar_gen3_needs_init_otg(channel)) > rcar_gen3_init_otg(channel); > rphy->otg_initialized = true; > - } > + } else As Sergei-san said, this should be "} else {" > + /* Not OTG, so dr_mode should be set in PHY node */ > + if (usb_get_dr_mode(channel->dev) == USB_DR_MODE_PERIPHERAL) > + writel(0x80000000, usb2_base + USB2_COMMCTRL); > + else I would like to add "else if usb_get_dr_mode(channel->dev) == USB_DR_MODE_HOST)" for a PHY node without "dr_mode" property. In other words, if the PHY node doesn't have dr_mode property like R-Car, this condition can be the same behavior as previous. > + writel(0x00000000, usb2_base + USB2_COMMCTRL); > > rphy->initialized = true; > > @@ -638,6 +643,7 @@ static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev) > if (of_property_read_bool(dev->of_node, "renesas,uses_usb_x1")) > channel->uses_usb_x1 = true; > > + As Sergei-san said, this is not needed :) Best regards, Yoshihiro Shimoda