Hello Biju-san,

Thank you for the email.

> From: Biju Das, Sent: Monday, October 15, 2018 11:55 PM
> 
> Hello Shimoda-San and  all,
> 
> RZ/G1C  USB2.0 host/function controller  has the below features compared to 
> R-Car Gen2/Gen3 USB2.0 block
> 
> 1) It has a shared pll reset register for hsusb0/hsusb1 and this register 
> reside in hsusb0 block.
> 2) This implies, in order to enable USB1 host/peripheral, we need to enable 
> hsusb0 block as well.
> 3) USB2.0 Host controller block is similar to R-Car Gen3 USB2.0 host 
> controller but with
>    few register sets. There is no PLL reset on the host side(USBCTR).

I also checked the RZ/G1C datasheet and I understood them.
- Each USB host needs to deassert the pll reset only if RZ/G1C.
 (In other words, other RZ/G1 and R-Car Gen2/3 don't need to deassert the pll 
reset of hsusb block for host side.)

> To address 1 and 3, I have modified the phy-rcar-gen2 with rz/g1c specific 
> phy_ops .
> Also added optional usb2.0 host reg property for initializing interrupt 
> enable, OVC detection timer and Suspend/resume
> timer register .

If so, you also have to add optional usb2.0 host clock and enable the clock on 
the phy-rcar-gen2 driver.

> I will send the patch based on the below discussion.
> 
> To address 2, I am seeing 2 solutions
> 
> solution 1) On the SoC dtsi->define USB1 clocks(ehci1/ohci1/hsusb1) and
>                     On the board dts-> enable hsusb0 + usb1 host/peripheral.
> 
> solution 2) On the SoC dtsi->define  USB1 clocks(ehci1/ohci1/hsusb1) followed 
> by hsusb0 clock and
>                      On the board dts-> enable only usb1 host/peripheral.
>                     This will allow us to do pll reset without enabling 
> hsusb0 on the board dts.

I'm afraid but I don't understand these 2 solutions. Where are the USB1 clocks 
defined?

> Do you have any preferences one way or the other? Or a third option?

I'm thinking which nodes we will have on RZ/G1C dtsi:
 - We will have ehci[01]/ohci[01]/hsusb[01]/usbphy[01] nodes.
 - ehci0/ohci0/hsusb0 nodes have phys property with usbphy0.
 - ehci1/ohci1/hsusb1 nodes have phys property with both usbphy0 and usbphy1 to 
achieve the 2) you mentioned above.
 - usbphy[01] has reg/clocks as both own hsusb and usb host blocks.

About the phy driver:
 - Add the 1) and 3) you mentioned above.

Best regards,
Yoshihiro Shimoda

> Regards,
> Biju

Reply via email to