• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/usb/host/

Lines Matching defs:hcd

17 #include <linux/usb/hcd.h>
25 #include "isp1760-hcd.h"
46 static inline struct isp1760_hcd *hcd_to_priv(struct usb_hcd *hcd)
48 return (struct isp1760_hcd *) (hcd->hcd_priv);
268 static void isp1760_init_regs(struct usb_hcd *hcd)
270 isp1760_writel(0, hcd->regs + HC_BUFFER_STATUS_REG);
271 isp1760_writel(NO_TRANSFER_ACTIVE, hcd->regs +
273 isp1760_writel(NO_TRANSFER_ACTIVE, hcd->regs +
275 isp1760_writel(NO_TRANSFER_ACTIVE, hcd->regs +
278 isp1760_writel(~NO_TRANSFER_ACTIVE, hcd->regs +
280 isp1760_writel(~NO_TRANSFER_ACTIVE, hcd->regs +
282 isp1760_writel(~NO_TRANSFER_ACTIVE, hcd->regs +
308 struct usb_hcd *hcd = priv_to_hcd(priv);
309 u32 command = isp1760_readl(hcd->regs + HC_USBCMD);
312 isp1760_writel(command, hcd->regs + HC_USBCMD);
313 hcd->state = HC_STATE_HALT;
315 retval = handshake(priv, hcd->regs + HC_USBCMD,
349 static int priv_init(struct usb_hcd *hcd)
351 struct isp1760_hcd *priv = hcd_to_priv(hcd);
363 hcc_params = isp1760_readl(hcd->regs + HC_HCCPARAMS);
373 static int isp1760_hc_setup(struct usb_hcd *hcd)
375 struct isp1760_hcd *priv = hcd_to_priv(hcd);
400 isp1760_writel(hwmode, hcd->regs + HC_HW_MODE_CTRL);
401 isp1760_writel(hwmode, hcd->regs + HC_HW_MODE_CTRL);
403 isp1760_writel(0xdeadbabe, hcd->regs + HC_SCRATCH_REG);
405 scratch = isp1760_readl(hcd->regs + HC_CHIP_ID_REG);
406 scratch = isp1760_readl(hcd->regs + HC_SCRATCH_REG);
413 isp1760_init_regs(hcd);
416 isp1760_writel(SW_RESET_RESET_ALL, hcd->regs + HC_RESET_REG);
419 isp1760_writel(SW_RESET_RESET_HC, hcd->regs + HC_RESET_REG);
434 isp1760_writel(hwmode | ALL_ATX_RESET, hcd->regs + HC_HW_MODE_CTRL);
436 isp1760_writel(hwmode, hcd->regs + HC_HW_MODE_CTRL);
438 isp1760_writel(INTERRUPT_ENABLE_MASK, hcd->regs + HC_INTERRUPT_REG);
439 isp1760_writel(INTERRUPT_ENABLE_MASK, hcd->regs + HC_INTERRUPT_ENABLE);
448 hcd->regs + HC_PORT1_CTRL);
451 priv->hcs_params = isp1760_readl(hcd->regs + HC_HCSPARAMS);
453 return priv_init(hcd);
456 static void isp1760_init_maps(struct usb_hcd *hcd)
459 isp1760_writel(0x80000000, hcd->regs + HC_ATL_PTD_LASTPTD_REG);
460 isp1760_writel(0x80000000, hcd->regs + HC_INT_PTD_LASTPTD_REG);
461 isp1760_writel(0x00000001, hcd->regs + HC_ISO_PTD_LASTPTD_REG);
464 static void isp1760_enable_interrupts(struct usb_hcd *hcd)
466 isp1760_writel(0, hcd->regs + HC_ATL_IRQ_MASK_AND_REG);
467 isp1760_writel(0, hcd->regs + HC_ATL_IRQ_MASK_OR_REG);
468 isp1760_writel(0, hcd->regs + HC_INT_IRQ_MASK_AND_REG);
469 isp1760_writel(0, hcd->regs + HC_INT_IRQ_MASK_OR_REG);
470 isp1760_writel(0, hcd->regs + HC_ISO_IRQ_MASK_AND_REG);
471 isp1760_writel(0xffffffff, hcd->regs + HC_ISO_IRQ_MASK_OR_REG);
475 static int isp1760_run(struct usb_hcd *hcd)
477 struct isp1760_hcd *priv = hcd_to_priv(hcd);
483 hcd->uses_new_polling = 1;
485 hcd->state = HC_STATE_RUNNING;
486 isp1760_enable_interrupts(hcd);
487 temp = isp1760_readl(hcd->regs + HC_HW_MODE_CTRL);
488 isp1760_writel(temp | HW_GLOBAL_INTR_EN, hcd->regs + HC_HW_MODE_CTRL);
490 command = isp1760_readl(hcd->regs + HC_USBCMD);
493 isp1760_writel(command, hcd->regs + HC_USBCMD);
495 retval = handshake(priv, hcd->regs + HC_USBCMD, CMD_RUN, CMD_RUN,
501 isp1760_writel(FLAG_CF, hcd->regs + HC_CONFIGFLAG);
503 retval = handshake(priv, hcd->regs + HC_CONFIGFLAG, FLAG_CF, FLAG_CF,
509 chipid = isp1760_readl(hcd->regs + HC_CHIP_ID_REG);
515 isp1760_init_maps(hcd);
753 struct usb_hcd *hcd = priv_to_hcd(priv);
764 hcd->regs + payload,
775 struct usb_hcd *hcd = priv_to_hcd(priv);
778 priv_write_copy(priv, (u32 *)&ptd, hcd->regs + atl_regs, sizeof(ptd));
795 struct usb_hcd *hcd = priv_to_hcd(priv);
798 priv_write_copy(priv, (u32 *)&ptd, hcd->regs + int_regs, sizeof(ptd));
810 static void enqueue_an_ATL_packet(struct usb_hcd *hcd, struct isp1760_qh *qh,
813 struct isp1760_hcd *priv = hcd_to_priv(hcd);
828 skip_map = isp1760_readl(hcd->regs + HC_ATL_PTD_SKIPMAP_REG);
840 or_map = isp1760_readl(hcd->regs + HC_ATL_IRQ_MASK_OR_REG);
842 isp1760_writel(or_map, hcd->regs + HC_ATL_IRQ_MASK_OR_REG);
845 isp1760_writel(skip_map, hcd->regs + HC_ATL_PTD_SKIPMAP_REG);
847 buffstatus = isp1760_readl(hcd->regs + HC_BUFFER_STATUS_REG);
849 isp1760_writel(buffstatus, hcd->regs + HC_BUFFER_STATUS_REG);
852 static void enqueue_an_INT_packet(struct usb_hcd *hcd, struct isp1760_qh *qh,
855 struct isp1760_hcd *priv = hcd_to_priv(hcd);
870 skip_map = isp1760_readl(hcd->regs + HC_INT_PTD_SKIPMAP_REG);
882 or_map = isp1760_readl(hcd->regs + HC_INT_IRQ_MASK_OR_REG);
884 isp1760_writel(or_map, hcd->regs + HC_INT_IRQ_MASK_OR_REG);
887 isp1760_writel(skip_map, hcd->regs + HC_INT_PTD_SKIPMAP_REG);
889 buffstatus = isp1760_readl(hcd->regs + HC_BUFFER_STATUS_REG);
891 isp1760_writel(buffstatus, hcd->regs + HC_BUFFER_STATUS_REG);
1604 static int isp1760_urb_enqueue(struct usb_hcd *hcd, struct urb *urb,
1607 struct isp1760_hcd *priv = hcd_to_priv(hcd);
1637 static int isp1760_urb_dequeue(struct usb_hcd *hcd, struct urb *urb,
1640 struct isp1760_hcd *priv = hcd_to_priv(hcd);
1680 skip_map = isp1760_readl(hcd->regs + skip_reg);
1682 isp1760_writel(skip_map, hcd->regs + skip_reg);
1684 or_map = isp1760_readl(hcd->regs + or_reg);
1686 isp1760_writel(or_map, hcd->regs + or_reg);
1688 priv_write_copy(priv, (u32 *)&ptd, hcd->regs + reg_base
1703 pe(hcd, qh, qtd);
1756 static int isp1760_hub_status_data(struct usb_hcd *hcd, char *buf)
1758 struct isp1760_hcd *priv = hcd_to_priv(hcd);
1765 if (!HC_IS_RUNNING(hcd->state))
1773 temp = isp1760_readl(hcd->regs + HC_PORTSC1);
1778 isp1760_writel(temp, hcd->regs + HC_PORTSC1);
1856 static int isp1760_hub_control(struct usb_hcd *hcd, u16 typeReq,
1859 struct isp1760_hcd *priv = hcd_to_priv(hcd);
1861 u32 __iomem *status_reg = hcd->regs + HC_PORTSC1;
1933 isp1760_readl(hcd->regs + HC_USBCMD);
2106 isp1760_readl(hcd->regs + HC_USBCMD);
2163 static int isp1760_get_frame(struct usb_hcd *hcd)
2165 struct isp1760_hcd *priv = hcd_to_priv(hcd);
2168 fr = isp1760_readl(hcd->regs + HC_FRINDEX);
2172 static void isp1760_stop(struct usb_hcd *hcd)
2174 struct isp1760_hcd *priv = hcd_to_priv(hcd);
2177 isp1760_hub_control(hcd, ClearPortFeature, USB_PORT_FEAT_POWER, 1,
2184 temp = isp1760_readl(hcd->regs + HC_HW_MODE_CTRL);
2185 isp1760_writel(temp &= ~HW_GLOBAL_INTR_EN, hcd->regs + HC_HW_MODE_CTRL);
2188 isp1760_writel(0, hcd->regs + HC_CONFIGFLAG);
2191 static void isp1760_shutdown(struct usb_hcd *hcd)
2195 isp1760_stop(hcd);
2196 temp = isp1760_readl(hcd->regs + HC_HW_MODE_CTRL);
2197 isp1760_writel(temp &= ~HW_GLOBAL_INTR_EN, hcd->regs + HC_HW_MODE_CTRL);
2199 command = isp1760_readl(hcd->regs + HC_USBCMD);
2201 isp1760_writel(command, hcd->regs + HC_USBCMD);
2205 .description = "isp1760-hcd",
2253 struct usb_hcd *hcd;
2263 hcd = usb_create_hcd(&isp1760_hc_driver, dev, dev_name(dev));
2264 if (!hcd)
2267 priv = hcd_to_priv(hcd);
2270 hcd->regs = ioremap(res_start, res_len);
2271 if (!hcd->regs) {
2276 hcd->irq = irq;
2277 hcd->rsrc_start = res_start;
2278 hcd->rsrc_len = res_len;
2280 ret = usb_add_hcd(hcd, irq, irqflags);
2284 return hcd;
2287 iounmap(hcd->regs);
2290 usb_put_hcd(hcd);