Example #1
0
static int s5p_ehci_configurate(struct usb_hcd *hcd)
{
	/* DMA burst Enable */
	writel(readl(INSNREG00(hcd->regs)) | ENA_DMA_INCR,
			INSNREG00(hcd->regs));
	return 0;
}
static int s5p_ehci_configurate(struct usb_hcd *hcd)
{
	int delay_count = 0;

	/* This is for waiting phy before ehci configuration */
	do {
		if (readl(hcd->regs))
			break;
		udelay(1);
		++delay_count;
	} while (delay_count < 200);
	if (delay_count)
		dev_info(hcd->self.controller, "phy delay count = %d\n",
			delay_count);

	/* DMA burst Enable, set utmi suspend_on_n */
#ifdef CONFIG_USB_OHCI_S5P
#ifdef CONFIG_CDMA_MODEM_MDM6600
	writel(readl(INSNREG00(hcd->regs)) | ENA_DMA_INCR | OHCI_SUSP_LGCY,
#else
	writel(readl(INSNREG00(hcd->regs)) | ENA_DMA_INCR,
#endif
#else
	writel(readl(INSNREG00(hcd->regs)) | ENA_DMA_INCR,
#endif
		INSNREG00(hcd->regs));
	return 0;
}
Example #3
0
static void s5p_ehci_phy_init(struct platform_device *pdev)
{
	struct s5p_ehci_platdata *pdata = pdev->dev.platform_data;
	struct s5p_ehci_hcd *s5p_ehci = platform_get_drvdata(pdev);
	struct usb_hcd *hcd = s5p_ehci->hcd;
	u32 delay_count = 0;

	if (pdata && pdata->phy_init) {
		pdata->phy_init(pdev, S5P_USB_PHY_HOST);

		while (!readl(hcd->regs) && delay_count < 200) {
			delay_count++;
			udelay(1);
		}
		if (delay_count)
			dev_info(&pdev->dev, "waiting time = %d\n",
				delay_count);
		s5p_ehci_configurate(hcd);
		dev_dbg(&pdev->dev, "%s : 0x%x\n", __func__,
				readl(INSNREG00(hcd->regs)));
	}
}