Lines Matching refs:ehci

143 		struct ehci_hcd *ehci = hcd_to_ehci(hcd);  in usb_hcd_fsl_probe()  local
145 ehci->transceiver = usb_get_transceiver(); in usb_hcd_fsl_probe()
147 hcd, ehci, ehci->transceiver); in usb_hcd_fsl_probe()
149 if (ehci->transceiver) { in usb_hcd_fsl_probe()
150 retval = otg_set_host(ehci->transceiver->otg, in usb_hcd_fsl_probe()
151 &ehci_to_hcd(ehci)->self); in usb_hcd_fsl_probe()
153 if (ehci->transceiver) in usb_hcd_fsl_probe()
154 put_device(ehci->transceiver->dev); in usb_hcd_fsl_probe()
194 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in usb_hcd_fsl_remove() local
196 if (ehci->transceiver) { in usb_hcd_fsl_remove()
197 otg_set_host(ehci->transceiver->otg, NULL); in usb_hcd_fsl_remove()
198 put_device(ehci->transceiver->dev); in usb_hcd_fsl_remove()
214 static void ehci_fsl_setup_phy(struct ehci_hcd *ehci, in ehci_fsl_setup_phy() argument
219 struct usb_hcd *hcd = ehci_to_hcd(ehci); in ehci_fsl_setup_phy()
225 portsc = ehci_readl(ehci, &ehci->regs->port_status[port_offset]); in ehci_fsl_setup_phy()
248 ehci_writel(ehci, portsc, &ehci->regs->port_status[port_offset]); in ehci_fsl_setup_phy()
251 static void ehci_fsl_usb_setup(struct ehci_hcd *ehci) in ehci_fsl_usb_setup() argument
253 struct usb_hcd *hcd = ehci_to_hcd(ehci); in ehci_fsl_usb_setup()
279 ehci_fsl_setup_phy(ehci, pdata->phy_mode, 0); in ehci_fsl_usb_setup()
290 ehci->has_fsl_port_bug = 1; in ehci_fsl_usb_setup()
293 ehci_fsl_setup_phy(ehci, pdata->phy_mode, 0); in ehci_fsl_usb_setup()
295 ehci_fsl_setup_phy(ehci, pdata->phy_mode, 1); in ehci_fsl_usb_setup()
311 static int ehci_fsl_reinit(struct ehci_hcd *ehci) in ehci_fsl_reinit() argument
313 ehci_fsl_usb_setup(ehci); in ehci_fsl_reinit()
314 ehci_port_power(ehci, 0); in ehci_fsl_reinit()
322 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup() local
329 ehci->big_endian_desc = pdata->big_endian_desc; in ehci_fsl_setup()
330 ehci->big_endian_mmio = pdata->big_endian_mmio; in ehci_fsl_setup()
333 ehci->caps = hcd->regs + 0x100; in ehci_fsl_setup()
334 ehci->regs = hcd->regs + 0x100 + in ehci_fsl_setup()
335 HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase)); in ehci_fsl_setup()
336 dbg_hcs_params(ehci, "reset"); in ehci_fsl_setup()
337 dbg_hcc_params(ehci, "reset"); in ehci_fsl_setup()
340 ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params); in ehci_fsl_setup()
344 retval = ehci_halt(ehci); in ehci_fsl_setup()
353 ehci->sbrn = 0x20; in ehci_fsl_setup()
355 ehci_reset(ehci); in ehci_fsl_setup()
363 ehci_writel(ehci, SBUSCFG_INCR8, in ehci_fsl_setup()
367 retval = ehci_fsl_reinit(ehci); in ehci_fsl_setup()
372 struct ehci_hcd ehci; member
386 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_suspend() local
391 u32 mode = ehci_readl(ehci, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_suspend()
393 tmp = ehci_readl(ehci, hcd->regs + 0x140); /* usbcmd */ in ehci_fsl_mpc512x_drv_suspend()
413 ehci->rh_state = EHCI_RH_SUSPENDED; in ehci_fsl_mpc512x_drv_suspend()
420 tmp = ehci_readl(ehci, &ehci->regs->command); in ehci_fsl_mpc512x_drv_suspend()
422 ehci_writel(ehci, tmp, &ehci->regs->command); in ehci_fsl_mpc512x_drv_suspend()
425 pdata->pm_command = ehci_readl(ehci, &ehci->regs->command); in ehci_fsl_mpc512x_drv_suspend()
427 pdata->pm_status = ehci_readl(ehci, &ehci->regs->status); in ehci_fsl_mpc512x_drv_suspend()
428 pdata->pm_intr_enable = ehci_readl(ehci, &ehci->regs->intr_enable); in ehci_fsl_mpc512x_drv_suspend()
429 pdata->pm_frame_index = ehci_readl(ehci, &ehci->regs->frame_index); in ehci_fsl_mpc512x_drv_suspend()
430 pdata->pm_segment = ehci_readl(ehci, &ehci->regs->segment); in ehci_fsl_mpc512x_drv_suspend()
431 pdata->pm_frame_list = ehci_readl(ehci, &ehci->regs->frame_list); in ehci_fsl_mpc512x_drv_suspend()
432 pdata->pm_async_next = ehci_readl(ehci, &ehci->regs->async_next); in ehci_fsl_mpc512x_drv_suspend()
434 ehci_readl(ehci, &ehci->regs->configured_flag); in ehci_fsl_mpc512x_drv_suspend()
435 pdata->pm_portsc = ehci_readl(ehci, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_suspend()
436 pdata->pm_usbgenctrl = ehci_readl(ehci, in ehci_fsl_mpc512x_drv_suspend()
440 pdata->pm_portsc &= cpu_to_hc32(ehci, ~PORT_RWC_BITS); in ehci_fsl_mpc512x_drv_suspend()
445 tmp = ehci_readl(ehci, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_suspend()
447 ehci_writel(ehci, tmp, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_suspend()
455 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_resume() local
483 ehci_writel(ehci, tmp, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_resume()
485 ehci_writel(ehci, pdata->pm_usbgenctrl, in ehci_fsl_mpc512x_drv_resume()
487 ehci_writel(ehci, ISIPHYCTRL_PXE | ISIPHYCTRL_PHYE, in ehci_fsl_mpc512x_drv_resume()
490 ehci_writel(ehci, SBUSCFG_INCR8, hcd->regs + FSL_SOC_USB_SBUSCFG); in ehci_fsl_mpc512x_drv_resume()
493 ehci_writel(ehci, pdata->pm_command, &ehci->regs->command); in ehci_fsl_mpc512x_drv_resume()
494 ehci_writel(ehci, pdata->pm_intr_enable, &ehci->regs->intr_enable); in ehci_fsl_mpc512x_drv_resume()
495 ehci_writel(ehci, pdata->pm_frame_index, &ehci->regs->frame_index); in ehci_fsl_mpc512x_drv_resume()
496 ehci_writel(ehci, pdata->pm_segment, &ehci->regs->segment); in ehci_fsl_mpc512x_drv_resume()
497 ehci_writel(ehci, pdata->pm_frame_list, &ehci->regs->frame_list); in ehci_fsl_mpc512x_drv_resume()
498 ehci_writel(ehci, pdata->pm_async_next, &ehci->regs->async_next); in ehci_fsl_mpc512x_drv_resume()
499 ehci_writel(ehci, pdata->pm_configured_flag, in ehci_fsl_mpc512x_drv_resume()
500 &ehci->regs->configured_flag); in ehci_fsl_mpc512x_drv_resume()
501 ehci_writel(ehci, pdata->pm_portsc, &ehci->regs->port_status[0]); in ehci_fsl_mpc512x_drv_resume()
504 ehci->rh_state = EHCI_RH_RUNNING; in ehci_fsl_mpc512x_drv_resume()
507 tmp = ehci_readl(ehci, &ehci->regs->command); in ehci_fsl_mpc512x_drv_resume()
509 ehci_writel(ehci, tmp, &ehci->regs->command); in ehci_fsl_mpc512x_drv_resume()
529 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in hcd_to_ehci_fsl() local
531 return container_of(ehci, struct ehci_fsl, ehci); in hcd_to_ehci_fsl()
558 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_drv_resume() local
566 ehci_prepare_ports_for_controller_resume(ehci); in ehci_fsl_drv_resume()
575 ehci_reset(ehci); in ehci_fsl_drv_resume()
576 ehci_fsl_reinit(ehci); in ehci_fsl_drv_resume()
603 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_start_port_reset() local
612 status = readl(&ehci->regs->port_status[port]); in ehci_start_port_reset()
617 if (ehci_is_TDI(ehci)) { in ehci_start_port_reset()
620 &ehci->regs->port_status[port]); in ehci_start_port_reset()
622 writel(PORT_RESET, &ehci->regs->port_status[port]); in ehci_start_port_reset()