Lines Matching defs:hcd
21 #include <linux/usb/hcd.h>
50 struct usb_hcd *hcd;
88 hcd = __usb_create_hcd(&fsl_ehci_hc_driver, pdev->dev.parent,
90 if (!hcd) {
96 hcd->regs = devm_ioremap_resource(&pdev->dev, res);
97 if (IS_ERR(hcd->regs)) {
98 retval = PTR_ERR(hcd->regs);
102 hcd->rsrc_start = res->start;
103 hcd->rsrc_len = resource_size(res);
105 pdata->regs = hcd->regs;
108 hcd->power_budget = pdata->power_budget;
120 tmp = ioread32be(hcd->regs + FSL_SOC_USB_CTRL);
123 iowrite32be(tmp, hcd->regs + FSL_SOC_USB_CTRL);
129 iowrite32be(USB_CTRL_USB_EN, hcd->regs + FSL_SOC_USB_CTRL);
136 tmp = ioread32be(hcd->regs + FSL_SOC_USB_CTRL);
139 iowrite32be(tmp, hcd->regs + FSL_SOC_USB_CTRL);
141 writel(PORT_PTS_UTMI, hcd->regs + FSL_SOC_USB_PORTSC1);
146 retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
149 device_wakeup_enable(hcd->self.controller);
153 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
155 hcd->usb_phy = usb_get_phy(USB_PHY_TYPE_USB2);
156 dev_dbg(&pdev->dev, "hcd=0x%p ehci=0x%p, phy=0x%p\n",
157 hcd, ehci, hcd->usb_phy);
159 if (!IS_ERR_OR_NULL(hcd->usb_phy)) {
160 retval = otg_set_host(hcd->usb_phy->otg,
163 usb_put_phy(hcd->usb_phy);
172 hcd->skip_phy_initialization = 1;
178 usb_put_hcd(hcd);
186 static bool usb_phy_clk_valid(struct usb_hcd *hcd)
188 void __iomem *non_ehci = hcd->regs;
197 static int ehci_fsl_setup_phy(struct usb_hcd *hcd,
202 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
203 void __iomem *non_ehci = hcd->regs;
204 struct device *dev = hcd->self.controller;
208 dev_warn(hcd->self.controller, "Could not get controller version\n");
254 pdata->have_sysif_regs && !usb_phy_clk_valid(hcd)) {
284 !usb_phy_clk_valid(hcd)) {
285 dev_warn(hcd->self.controller, "USB PHY clock invalid\n");
303 struct usb_hcd *hcd = ehci_to_hcd(ehci);
305 void __iomem *non_ehci = hcd->regs;
307 pdata = dev_get_platdata(hcd->self.controller);
333 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 0))
343 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 0))
347 if (ehci_fsl_setup_phy(hcd, pdata->phy_mode, 1))
375 static int ehci_fsl_setup(struct usb_hcd *hcd)
377 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
382 dev = hcd->self.controller;
383 pdata = dev_get_platdata(hcd->self.controller);
388 ehci->caps = hcd->regs + 0x100;
399 hcd->has_tt = 1;
401 retval = ehci_setup(hcd);
412 hcd->regs + FSL_SOC_USB_SBUSCFG);
433 struct usb_hcd *hcd = dev_get_drvdata(dev);
434 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
439 u32 mode = ehci_readl(ehci, hcd->regs + FSL_SOC_USB_USBMODE);
441 tmp = ehci_readl(ehci, hcd->regs + 0x140); /* usbcmd */
465 clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
485 hcd->regs + FSL_SOC_USB_USBGENCTRL);
502 struct usb_hcd *hcd = dev_get_drvdata(dev);
503 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
531 ehci_writel(ehci, tmp, hcd->regs + FSL_SOC_USB_USBMODE);
534 hcd->regs + FSL_SOC_USB_USBGENCTRL);
536 hcd->regs + FSL_SOC_USB_ISIPHYCTRL);
538 ehci_writel(ehci, SBUSCFG_INCR8, hcd->regs + FSL_SOC_USB_SBUSCFG);
551 set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
559 usb_hcd_resume_root_hub(hcd);
575 static struct ehci_fsl *hcd_to_ehci_fsl(struct usb_hcd *hcd)
577 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
584 struct usb_hcd *hcd = dev_get_drvdata(dev);
585 struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd);
586 void __iomem *non_ehci = hcd->regs;
593 ehci_prepare_ports_for_controller_suspend(hcd_to_ehci(hcd),
604 struct usb_hcd *hcd = dev_get_drvdata(dev);
605 struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd);
606 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
607 void __iomem *non_ehci = hcd->regs;
618 usb_root_hub_lost_power(hcd->self.root_hub);
631 struct usb_hcd *hcd = dev_get_drvdata(dev);
633 usb_root_hub_lost_power(hcd->self.root_hub);
649 static int ehci_start_port_reset(struct usb_hcd *hcd, unsigned port)
651 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
696 struct usb_hcd *hcd = platform_get_drvdata(pdev);
698 if (!IS_ERR_OR_NULL(hcd->usb_phy)) {
699 otg_set_host(hcd->usb_phy->otg, NULL);
700 usb_put_phy(hcd->usb_phy);
703 usb_remove_hcd(hcd);
711 usb_put_hcd(hcd);