Lines Matching refs:hcd
61 struct usb_hcd *hcd; in fsl_ehci_drv_probe() local
98 hcd = usb_create_hcd(&fsl_ehci_hc_driver, &pdev->dev, in fsl_ehci_drv_probe()
100 if (!hcd) { in fsl_ehci_drv_probe()
106 hcd->regs = devm_ioremap_resource(&pdev->dev, res); in fsl_ehci_drv_probe()
107 if (IS_ERR(hcd->regs)) { in fsl_ehci_drv_probe()
108 retval = PTR_ERR(hcd->regs); in fsl_ehci_drv_probe()
112 hcd->rsrc_start = res->start; in fsl_ehci_drv_probe()
113 hcd->rsrc_len = resource_size(res); in fsl_ehci_drv_probe()
115 pdata->regs = hcd->regs; in fsl_ehci_drv_probe()
118 hcd->power_budget = pdata->power_budget; in fsl_ehci_drv_probe()
130 clrsetbits_be32(hcd->regs + FSL_SOC_USB_CTRL, in fsl_ehci_drv_probe()
138 clrsetbits_be32(hcd->regs + FSL_SOC_USB_CTRL, in fsl_ehci_drv_probe()
140 writel(PORT_PTS_UTMI, hcd->regs + FSL_SOC_USB_PORTSC1); in fsl_ehci_drv_probe()
145 retval = usb_add_hcd(hcd, irq, IRQF_SHARED); in fsl_ehci_drv_probe()
148 device_wakeup_enable(hcd->self.controller); in fsl_ehci_drv_probe()
152 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in fsl_ehci_drv_probe()
154 hcd->usb_phy = usb_get_phy(USB_PHY_TYPE_USB2); in fsl_ehci_drv_probe()
156 hcd, ehci, hcd->usb_phy); in fsl_ehci_drv_probe()
158 if (!IS_ERR_OR_NULL(hcd->usb_phy)) { in fsl_ehci_drv_probe()
159 retval = otg_set_host(hcd->usb_phy->otg, in fsl_ehci_drv_probe()
162 usb_put_phy(hcd->usb_phy); in fsl_ehci_drv_probe()
175 usb_put_hcd(hcd); in fsl_ehci_drv_probe()
183 static int ehci_fsl_setup_phy(struct usb_hcd *hcd, in ehci_fsl_setup_phy() argument
188 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup_phy()
189 void __iomem *non_ehci = hcd->regs; in ehci_fsl_setup_phy()
190 struct device *dev = hcd->self.controller; in ehci_fsl_setup_phy()
194 dev_warn(hcd->self.controller, "Could not get controller version\n"); in ehci_fsl_setup_phy()
245 dev_warn(hcd->self.controller, in ehci_fsl_setup_phy()
262 struct usb_hcd *hcd = ehci_to_hcd(ehci); in ehci_fsl_usb_setup() local
264 void __iomem *non_ehci = hcd->regs; in ehci_fsl_usb_setup()
266 pdata = dev_get_platdata(hcd->self.controller); in ehci_fsl_usb_setup()
287 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 0)) in ehci_fsl_usb_setup()
302 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 0)) in ehci_fsl_usb_setup()
306 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 1)) in ehci_fsl_usb_setup()
334 static int ehci_fsl_setup(struct usb_hcd *hcd) in ehci_fsl_setup() argument
336 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup()
341 dev = hcd->self.controller; in ehci_fsl_setup()
342 pdata = dev_get_platdata(hcd->self.controller); in ehci_fsl_setup()
347 ehci->caps = hcd->regs + 0x100; in ehci_fsl_setup()
358 hcd->has_tt = 1; in ehci_fsl_setup()
360 retval = ehci_setup(hcd); in ehci_fsl_setup()
371 hcd->regs + FSL_SOC_USB_SBUSCFG); in ehci_fsl_setup()
392 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_mpc512x_drv_suspend() local
393 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_suspend()
398 u32 mode = ehci_readl(ehci, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_suspend()
400 tmp = ehci_readl(ehci, hcd->regs + 0x140); /* usbcmd */ in ehci_fsl_mpc512x_drv_suspend()
424 clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); in ehci_fsl_mpc512x_drv_suspend()
444 hcd->regs + FSL_SOC_USB_USBGENCTRL); in ehci_fsl_mpc512x_drv_suspend()
461 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_mpc512x_drv_resume() local
462 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_resume()
490 ehci_writel(ehci, tmp, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_resume()
493 hcd->regs + FSL_SOC_USB_USBGENCTRL); in ehci_fsl_mpc512x_drv_resume()
495 hcd->regs + FSL_SOC_USB_ISIPHYCTRL); in ehci_fsl_mpc512x_drv_resume()
497 ehci_writel(ehci, SBUSCFG_INCR8, hcd->regs + FSL_SOC_USB_SBUSCFG); in ehci_fsl_mpc512x_drv_resume()
510 set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); in ehci_fsl_mpc512x_drv_resume()
518 usb_hcd_resume_root_hub(hcd); in ehci_fsl_mpc512x_drv_resume()
534 static struct ehci_fsl *hcd_to_ehci_fsl(struct usb_hcd *hcd) in hcd_to_ehci_fsl() argument
536 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in hcd_to_ehci_fsl()
543 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_drv_suspend() local
544 struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd); in ehci_fsl_drv_suspend()
545 void __iomem *non_ehci = hcd->regs; in ehci_fsl_drv_suspend()
552 ehci_prepare_ports_for_controller_suspend(hcd_to_ehci(hcd), in ehci_fsl_drv_suspend()
563 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_drv_resume() local
564 struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd); in ehci_fsl_drv_resume()
565 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_drv_resume()
566 void __iomem *non_ehci = hcd->regs; in ehci_fsl_drv_resume()
577 usb_root_hub_lost_power(hcd->self.root_hub); in ehci_fsl_drv_resume()
590 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_drv_restore() local
592 usb_root_hub_lost_power(hcd->self.root_hub); in ehci_fsl_drv_restore()
608 static int ehci_start_port_reset(struct usb_hcd *hcd, unsigned port) in ehci_start_port_reset() argument
610 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_start_port_reset()
655 struct usb_hcd *hcd = platform_get_drvdata(pdev); in fsl_ehci_drv_remove() local
657 if (!IS_ERR_OR_NULL(hcd->usb_phy)) { in fsl_ehci_drv_remove()
658 otg_set_host(hcd->usb_phy->otg, NULL); in fsl_ehci_drv_remove()
659 usb_put_phy(hcd->usb_phy); in fsl_ehci_drv_remove()
662 usb_remove_hcd(hcd); in fsl_ehci_drv_remove()
670 usb_put_hcd(hcd); in fsl_ehci_drv_remove()