Lines Matching refs:hcd
52 struct usb_hcd *hcd; in usb_hcd_fsl_probe() local
89 hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev)); in usb_hcd_fsl_probe()
90 if (!hcd) { in usb_hcd_fsl_probe()
96 hcd->regs = devm_ioremap_resource(&pdev->dev, res); in usb_hcd_fsl_probe()
97 if (IS_ERR(hcd->regs)) { in usb_hcd_fsl_probe()
98 retval = PTR_ERR(hcd->regs); in usb_hcd_fsl_probe()
102 hcd->rsrc_start = res->start; in usb_hcd_fsl_probe()
103 hcd->rsrc_len = resource_size(res); in usb_hcd_fsl_probe()
105 pdata->regs = hcd->regs; in usb_hcd_fsl_probe()
108 hcd->power_budget = pdata->power_budget; in usb_hcd_fsl_probe()
120 setbits32(hcd->regs + FSL_SOC_USB_CTRL, 0x4); in usb_hcd_fsl_probe()
124 retval = usb_add_hcd(hcd, irq, IRQF_SHARED); in usb_hcd_fsl_probe()
127 device_wakeup_enable(hcd->self.controller); in usb_hcd_fsl_probe()
131 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in usb_hcd_fsl_probe()
133 hcd->usb_phy = usb_get_phy(USB_PHY_TYPE_USB2); in usb_hcd_fsl_probe()
135 hcd, ehci, hcd->usb_phy); in usb_hcd_fsl_probe()
137 if (!IS_ERR_OR_NULL(hcd->usb_phy)) { in usb_hcd_fsl_probe()
138 retval = otg_set_host(hcd->usb_phy->otg, in usb_hcd_fsl_probe()
141 usb_put_phy(hcd->usb_phy); in usb_hcd_fsl_probe()
154 usb_put_hcd(hcd); in usb_hcd_fsl_probe()
173 static void usb_hcd_fsl_remove(struct usb_hcd *hcd, in usb_hcd_fsl_remove() argument
178 if (!IS_ERR_OR_NULL(hcd->usb_phy)) { in usb_hcd_fsl_remove()
179 otg_set_host(hcd->usb_phy->otg, NULL); in usb_hcd_fsl_remove()
180 usb_put_phy(hcd->usb_phy); in usb_hcd_fsl_remove()
183 usb_remove_hcd(hcd); in usb_hcd_fsl_remove()
191 usb_put_hcd(hcd); in usb_hcd_fsl_remove()
194 static int ehci_fsl_setup_phy(struct usb_hcd *hcd, in ehci_fsl_setup_phy() argument
199 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup_phy()
200 void __iomem *non_ehci = hcd->regs; in ehci_fsl_setup_phy()
201 struct device *dev = hcd->self.controller; in ehci_fsl_setup_phy()
205 dev_warn(hcd->self.controller, "Could not get controller version\n"); in ehci_fsl_setup_phy()
252 dev_warn(hcd->self.controller, "USB PHY clock invalid\n"); in ehci_fsl_setup_phy()
267 struct usb_hcd *hcd = ehci_to_hcd(ehci); in ehci_fsl_usb_setup() local
269 void __iomem *non_ehci = hcd->regs; in ehci_fsl_usb_setup()
271 pdata = dev_get_platdata(hcd->self.controller); in ehci_fsl_usb_setup()
288 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 0)) in ehci_fsl_usb_setup()
303 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 0)) in ehci_fsl_usb_setup()
307 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 1)) in ehci_fsl_usb_setup()
335 static int ehci_fsl_setup(struct usb_hcd *hcd) in ehci_fsl_setup() argument
337 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_setup()
342 dev = hcd->self.controller; in ehci_fsl_setup()
343 pdata = dev_get_platdata(hcd->self.controller); in ehci_fsl_setup()
348 ehci->caps = hcd->regs + 0x100; in ehci_fsl_setup()
359 hcd->has_tt = 1; in ehci_fsl_setup()
361 retval = ehci_setup(hcd); in ehci_fsl_setup()
372 hcd->regs + FSL_SOC_USB_SBUSCFG); in ehci_fsl_setup()
393 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_mpc512x_drv_suspend() local
394 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_suspend()
399 u32 mode = ehci_readl(ehci, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_suspend()
401 tmp = ehci_readl(ehci, hcd->regs + 0x140); /* usbcmd */ in ehci_fsl_mpc512x_drv_suspend()
425 clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); in ehci_fsl_mpc512x_drv_suspend()
445 hcd->regs + FSL_SOC_USB_USBGENCTRL); in ehci_fsl_mpc512x_drv_suspend()
462 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_mpc512x_drv_resume() local
463 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_mpc512x_drv_resume()
491 ehci_writel(ehci, tmp, hcd->regs + FSL_SOC_USB_USBMODE); in ehci_fsl_mpc512x_drv_resume()
494 hcd->regs + FSL_SOC_USB_USBGENCTRL); in ehci_fsl_mpc512x_drv_resume()
496 hcd->regs + FSL_SOC_USB_ISIPHYCTRL); in ehci_fsl_mpc512x_drv_resume()
498 ehci_writel(ehci, SBUSCFG_INCR8, hcd->regs + FSL_SOC_USB_SBUSCFG); in ehci_fsl_mpc512x_drv_resume()
511 set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); in ehci_fsl_mpc512x_drv_resume()
519 usb_hcd_resume_root_hub(hcd); in ehci_fsl_mpc512x_drv_resume()
535 static struct ehci_fsl *hcd_to_ehci_fsl(struct usb_hcd *hcd) in hcd_to_ehci_fsl() argument
537 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in hcd_to_ehci_fsl()
544 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_drv_suspend() local
545 struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd); in ehci_fsl_drv_suspend()
546 void __iomem *non_ehci = hcd->regs; in ehci_fsl_drv_suspend()
553 ehci_prepare_ports_for_controller_suspend(hcd_to_ehci(hcd), in ehci_fsl_drv_suspend()
564 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_drv_resume() local
565 struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd); in ehci_fsl_drv_resume()
566 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_fsl_drv_resume()
567 void __iomem *non_ehci = hcd->regs; in ehci_fsl_drv_resume()
578 usb_root_hub_lost_power(hcd->self.root_hub); in ehci_fsl_drv_resume()
591 struct usb_hcd *hcd = dev_get_drvdata(dev); in ehci_fsl_drv_restore() local
593 usb_root_hub_lost_power(hcd->self.root_hub); in ehci_fsl_drv_restore()
609 static int ehci_start_port_reset(struct usb_hcd *hcd, unsigned port) in ehci_start_port_reset() argument
611 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_start_port_reset()
697 struct usb_hcd *hcd = platform_get_drvdata(pdev); in ehci_fsl_drv_remove() local
700 usb_hcd_fsl_remove(hcd, pdev); in ehci_fsl_drv_remove()