usb: dwc2: gadget: fix phy interface configuration

hsotg->phyif is set in dwc2_gadget_init according to phy interface
width. Use it for configuration instead of hardcoded value.
Moreover, set USB turnaround time according to phy width.

Tested-by: Robert Baldyga <r.baldyga@samsung.com>
Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Mian Yousaf Kaukab 2015-01-30 09:09:35 +01:00 committed by Felipe Balbi
parent ccb34a9101
commit fa4a8d722b

View File

@ -2290,8 +2290,9 @@ void s3c_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg,
*/ */
/* set the PLL on, remove the HNP/SRP and set the PHY */ /* set the PLL on, remove the HNP/SRP and set the PHY */
val = (hsotg->phyif == GUSBCFG_PHYIF8) ? 9 : 5;
writel(hsotg->phyif | GUSBCFG_TOUTCAL(7) | writel(hsotg->phyif | GUSBCFG_TOUTCAL(7) |
(0x5 << 10), hsotg->regs + GUSBCFG); (val << 10), hsotg->regs + GUSBCFG);
s3c_hsotg_init_fifo(hsotg); s3c_hsotg_init_fifo(hsotg);
@ -2978,6 +2979,7 @@ static void s3c_hsotg_phy_disable(struct dwc2_hsotg *hsotg)
*/ */
static void s3c_hsotg_init(struct dwc2_hsotg *hsotg) static void s3c_hsotg_init(struct dwc2_hsotg *hsotg)
{ {
u32 trdtim;
/* unmask subset of endpoint interrupts */ /* unmask subset of endpoint interrupts */
writel(DIEPMSK_TIMEOUTMSK | DIEPMSK_AHBERRMSK | writel(DIEPMSK_TIMEOUTMSK | DIEPMSK_AHBERRMSK |
@ -3002,8 +3004,10 @@ static void s3c_hsotg_init(struct dwc2_hsotg *hsotg)
s3c_hsotg_init_fifo(hsotg); s3c_hsotg_init_fifo(hsotg);
/* set the PLL on, remove the HNP/SRP and set the PHY */ /* set the PLL on, remove the HNP/SRP and set the PHY */
writel(GUSBCFG_PHYIF16 | GUSBCFG_TOUTCAL(7) | (0x5 << 10), trdtim = (hsotg->phyif == GUSBCFG_PHYIF8) ? 9 : 5;
hsotg->regs + GUSBCFG); writel(hsotg->phyif | GUSBCFG_TOUTCAL(7) |
(trdtim << 10),
hsotg->regs + GUSBCFG);
if (using_dma(hsotg)) if (using_dma(hsotg))
__orr32(hsotg->regs + GAHBCFG, GAHBCFG_DMA_EN); __orr32(hsotg->regs + GAHBCFG, GAHBCFG_DMA_EN);