static void ehci_msm_start_hnp(struct ehci_hcd *ehci) { struct usb_hcd *hcd = ehci_to_hcd(ehci); struct msmusb_hcd *mhcd = hcd_to_mhcd(hcd); /* OTG driver handles HNP */ otg_start_hnp(mhcd->xceiv); }
void start_hnp(struct ehci_hcd *ehci) { unsigned long flags; otg_start_hnp(ehci->transceiver); local_irq_save(flags); ehci->transceiver->state = OTG_STATE_A_SUSPEND; local_irq_restore(flags); }
static void start_hnp(struct ohci_hcd *ohci) { const unsigned port = ohci_to_hcd(ohci)->self.otg_port - 1; unsigned long flags; otg_start_hnp(ohci->transceiver); local_irq_save(flags); ohci->transceiver->state = OTG_STATE_A_SUSPEND; writel (RH_PS_PSS, &ohci->regs->roothub.portstatus [port]); OTG_CTRL_REG &= ~OTG_A_BUSREQ; local_irq_restore(flags); }
static void ehci_xusbps_start_hnp(struct ehci_hcd *ehci) { const unsigned port = ehci_to_hcd(ehci)->self.otg_port - 1; unsigned long flags; u32 portsc; local_irq_save(flags); portsc = ehci_readl(ehci, &ehci->regs->port_status[port]); portsc |= PORT_SUSPEND; ehci_writel(ehci, portsc, &ehci->regs->port_status[port]); local_irq_restore(flags); otg_start_hnp(ehci->transceiver); }
static void ehci_zynq_start_hnp(struct ehci_hcd *ehci) { const unsigned port = ehci_to_hcd(ehci)->self.otg_port - 1; struct usb_hcd *hcd = ehci_to_hcd(ehci); unsigned long flags; u32 portsc; local_irq_save(flags); portsc = ehci_readl(ehci, &ehci->regs->port_status[port]); portsc |= PORT_SUSPEND; ehci_writel(ehci, portsc, &ehci->regs->port_status[port]); local_irq_restore(flags); otg_start_hnp(hcd->usb_phy->otg); }
static int omap2430_musb_vbus_reset(struct musb *musb) { int ret = -1; dev_info(musb->controller, "%s count=%d\n", __func__, musb->vbus_reset_count); if (musb->vbus_reset_count < 0) goto err; if (musb->vbus_reset_count < 5) { if (musb->xceiv->start_hnp) { ret = otg_start_hnp(musb->xceiv); musb->vbus_reset_count++; } } err: return ret; }
static void start_hnp(struct ohci_hcd *ohci) { struct usb_hcd *hcd = ohci_to_hcd(ohci); const unsigned port = hcd->self.otg_port - 1; unsigned long flags; u32 l; otg_start_hnp(hcd->phy->otg); local_irq_save(flags); hcd->phy->state = OTG_STATE_A_SUSPEND; writel (RH_PS_PSS, &ohci->regs->roothub.portstatus [port]); l = omap_readl(OTG_CTRL); l &= ~OTG_A_BUSREQ; omap_writel(l, OTG_CTRL); local_irq_restore(flags); }