Lines Matching full:ehci

28 #include "ehci.h"
29 #include "ehci-fsl.h"
31 #define DRIVER_DESC "Freescale EHCI Host controller driver"
32 #define DRV_NAME "ehci-fsl"
153 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in fsl_ehci_drv_probe() local
156 dev_dbg(&pdev->dev, "hcd=0x%p ehci=0x%p, phy=0x%p\n", in fsl_ehci_drv_probe()
157 hcd, ehci, hcd->usb_phy); in fsl_ehci_drv_probe()
161 &ehci_to_hcd(ehci)->self); in fsl_ehci_drv_probe()
202 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup_phy() local
212 portsc = ehci_readl(ehci, &ehci->regs->port_status[port_offset]); in ehci_fsl_setup_phy()
289 ehci_writel(ehci, portsc, &ehci->regs->port_status[port_offset]); in ehci_fsl_setup_phy()
301 static int ehci_fsl_usb_setup(struct ehci_hcd *ehci) in ehci_fsl_usb_setup() argument
303 struct usb_hcd *hcd = ehci_to_hcd(ehci); in ehci_fsl_usb_setup()
326 ehci->has_fsl_hs_errata = 1; in ehci_fsl_usb_setup()
329 ehci->has_fsl_susp_errata = 1; in ehci_fsl_usb_setup()
340 ehci->has_fsl_port_bug = 1; in ehci_fsl_usb_setup()
366 static int ehci_fsl_reinit(struct ehci_hcd *ehci) in ehci_fsl_reinit() argument
368 if (ehci_fsl_usb_setup(ehci)) in ehci_fsl_reinit()
377 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup() local
384 ehci->big_endian_desc = pdata->big_endian_desc; in ehci_fsl_setup()
385 ehci->big_endian_mmio = pdata->big_endian_mmio; in ehci_fsl_setup()
387 /* EHCI registers start at offset 0x100 */ in ehci_fsl_setup()
388 ehci->caps = hcd->regs + 0x100; in ehci_fsl_setup()
396 ehci->need_oc_pp_cycle = 1; in ehci_fsl_setup()
411 ehci_writel(ehci, SBUSCFG_INCR8, in ehci_fsl_setup()
415 retval = ehci_fsl_reinit(ehci); in ehci_fsl_setup()
420 struct ehci_hcd ehci; member
434 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_suspend() local
439 u32 mode = ehci_readl(ehci, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_suspend()
441 tmp = ehci_readl(ehci, hcd->regs + 0x140); /* usbcmd */ in ehci_fsl_mpc512x_drv_suspend()
461 ehci->rh_state = EHCI_RH_SUSPENDED; in ehci_fsl_mpc512x_drv_suspend()
468 tmp = ehci_readl(ehci, &ehci->regs->command); in ehci_fsl_mpc512x_drv_suspend()
470 ehci_writel(ehci, tmp, &ehci->regs->command); in ehci_fsl_mpc512x_drv_suspend()
472 /* save EHCI registers */ in ehci_fsl_mpc512x_drv_suspend()
473 pdata->pm_command = ehci_readl(ehci, &ehci->regs->command); in ehci_fsl_mpc512x_drv_suspend()
475 pdata->pm_status = ehci_readl(ehci, &ehci->regs->status); in ehci_fsl_mpc512x_drv_suspend()
476 pdata->pm_intr_enable = ehci_readl(ehci, &ehci->regs->intr_enable); in ehci_fsl_mpc512x_drv_suspend()
477 pdata->pm_frame_index = ehci_readl(ehci, &ehci->regs->frame_index); in ehci_fsl_mpc512x_drv_suspend()
478 pdata->pm_segment = ehci_readl(ehci, &ehci->regs->segment); in ehci_fsl_mpc512x_drv_suspend()
479 pdata->pm_frame_list = ehci_readl(ehci, &ehci->regs->frame_list); in ehci_fsl_mpc512x_drv_suspend()
480 pdata->pm_async_next = ehci_readl(ehci, &ehci->regs->async_next); in ehci_fsl_mpc512x_drv_suspend()
482 ehci_readl(ehci, &ehci->regs->configured_flag); in ehci_fsl_mpc512x_drv_suspend()
483 pdata->pm_portsc = ehci_readl(ehci, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_suspend()
484 pdata->pm_usbgenctrl = ehci_readl(ehci, in ehci_fsl_mpc512x_drv_suspend()
488 pdata->pm_portsc &= cpu_to_hc32(ehci, ~PORT_RWC_BITS); in ehci_fsl_mpc512x_drv_suspend()
493 tmp = ehci_readl(ehci, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_suspend()
495 ehci_writel(ehci, tmp, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_suspend()
503 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_resume() local
531 ehci_writel(ehci, tmp, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_resume()
533 ehci_writel(ehci, pdata->pm_usbgenctrl, in ehci_fsl_mpc512x_drv_resume()
535 ehci_writel(ehci, ISIPHYCTRL_PXE | ISIPHYCTRL_PHYE, in ehci_fsl_mpc512x_drv_resume()
538 ehci_writel(ehci, SBUSCFG_INCR8, hcd->regs + FSL_SOC_USB_SBUSCFG); in ehci_fsl_mpc512x_drv_resume()
540 /* restore EHCI registers */ in ehci_fsl_mpc512x_drv_resume()
541 ehci_writel(ehci, pdata->pm_command, &ehci->regs->command); in ehci_fsl_mpc512x_drv_resume()
542 ehci_writel(ehci, pdata->pm_intr_enable, &ehci->regs->intr_enable); in ehci_fsl_mpc512x_drv_resume()
543 ehci_writel(ehci, pdata->pm_frame_index, &ehci->regs->frame_index); in ehci_fsl_mpc512x_drv_resume()
544 ehci_writel(ehci, pdata->pm_segment, &ehci->regs->segment); in ehci_fsl_mpc512x_drv_resume()
545 ehci_writel(ehci, pdata->pm_frame_list, &ehci->regs->frame_list); in ehci_fsl_mpc512x_drv_resume()
546 ehci_writel(ehci, pdata->pm_async_next, &ehci->regs->async_next); in ehci_fsl_mpc512x_drv_resume()
547 ehci_writel(ehci, pdata->pm_configured_flag, in ehci_fsl_mpc512x_drv_resume()
548 &ehci->regs->configured_flag); in ehci_fsl_mpc512x_drv_resume()
549 ehci_writel(ehci, pdata->pm_portsc, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_resume()
552 ehci->rh_state = EHCI_RH_RUNNING; in ehci_fsl_mpc512x_drv_resume()
555 tmp = ehci_readl(ehci, &ehci->regs->command); in ehci_fsl_mpc512x_drv_resume()
557 ehci_writel(ehci, tmp, &ehci->regs->command); in ehci_fsl_mpc512x_drv_resume()
577 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in hcd_to_ehci_fsl() local
579 return container_of(ehci, struct ehci_fsl, ehci); in hcd_to_ehci_fsl()
606 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_drv_resume() local
614 ehci_prepare_ports_for_controller_resume(ehci); in ehci_fsl_drv_resume()
623 ehci_reset(ehci); in ehci_fsl_drv_resume()
624 ehci_fsl_reinit(ehci); in ehci_fsl_drv_resume()
651 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_start_port_reset() local
660 status = readl(&ehci->regs->port_status[port]); in ehci_start_port_reset()
665 if (ehci_is_TDI(ehci)) { in ehci_start_port_reset()
668 &ehci->regs->port_status[port]); in ehci_start_port_reset()
670 writel(PORT_RESET, &ehci->regs->port_status[port]); in ehci_start_port_reset()
721 .name = "fsl-ehci",
736 "Freescale On-Chip EHCI Host Controller"; in ehci_fsl_init()