Lines Matching refs:usb
23 #include <linux/usb.h>
24 #include <linux/usb/hcd.h>
57 u16 fhci_get_sof_timer_count(struct fhci_usb *usb)
59 return be16_to_cpu(in_be16(&usb->fhci->regs->usb_ussft) / 12);
63 static u32 endpoint_zero_init(struct fhci_usb *usb,
69 rc = fhci_create_ep(usb, data_mem, ring_len);
74 fhci_init_ep_registers(usb, usb->ep0, data_mem);
80 void fhci_usb_enable_interrupt(struct fhci_usb *usb)
82 struct fhci_hcd *fhci = usb->fhci;
84 if (usb->intr_nesting_cnt == 1) {
89 out_be16(&usb->fhci->regs->usb_usber, 0xffff);
90 out_be16(&usb->fhci->regs->usb_usbmr, usb->saved_msk);
94 } else if (usb->intr_nesting_cnt > 1)
96 usb->intr_nesting_cnt--;
99 /* disable the usb interrupt */
100 void fhci_usb_disable_interrupt(struct fhci_usb *usb)
102 struct fhci_hcd *fhci = usb->fhci;
104 if (usb->intr_nesting_cnt == 0) {
108 /* disable the usb interrupt */
110 out_be16(&usb->fhci->regs->usb_usbmr, 0);
112 usb->intr_nesting_cnt++;
118 struct fhci_usb *usb = fhci->usb_lld;
120 out_be16(&usb->fhci->regs->usb_usber, 0xffff);
121 out_be16(&usb->fhci->regs->usb_usbmr, usb->saved_msk);
122 setbits8(&usb->fhci->regs->usb_usmod, USB_MODE_EN);
132 struct fhci_usb *usb = fhci->usb_lld;
134 fhci_usb_disable_interrupt(usb);
137 /* disable the usb controller */
138 if (usb->port_status == FHCI_PORT_FULL ||
139 usb->port_status == FHCI_PORT_LOW)
142 clrbits8(&usb->fhci->regs->usb_usmod, USB_MODE_EN);
243 struct fhci_usb *usb = lld;
246 if (usb) {
247 fhci = usb->fhci;
249 fhci_ep0_free(usb);
250 kfree(usb->actual_frame);
251 kfree(usb);
258 struct fhci_usb *usb = fhci->usb_lld;
260 memset_io(usb->fhci->pram, 0, FHCI_PRAM_SIZE);
262 usb->port_status = FHCI_PORT_DISABLED;
263 usb->max_frame_usage = FRAME_TIME_USAGE;
264 usb->sw_transaction_time = SW_FIX_TIME_BETWEEN_TRANSACTION;
266 usb->actual_frame = kzalloc(sizeof(*usb->actual_frame), GFP_KERNEL);
267 if (!usb->actual_frame) {
268 fhci_usb_free(usb);
272 INIT_LIST_HEAD(&usb->actual_frame->tds_list);
281 usb->saved_msk = (USB_E_TXB_MASK |
286 out_8(&usb->fhci->regs->usb_usmod, USB_MODE_HOST | USB_MODE_EN);
289 out_be16(&usb->fhci->regs->usb_usbmr, 0);
292 out_be16(&usb->fhci->regs->usb_usber, 0xffff);
294 if (endpoint_zero_init(usb, DEFAULT_DATA_MEM, DEFAULT_RING_LEN) != 0) {
295 fhci_usb_free(usb);
305 struct fhci_usb *usb;
308 usb = kzalloc(sizeof(*usb), GFP_KERNEL);
309 if (!usb)
312 usb->fhci = fhci;
313 usb->hc_list = fhci->hc_list;
314 usb->vroot_hub = fhci->vroot_hub;
316 usb->transfer_confirm = fhci_transfer_confirm_callback;
318 return usb;
468 struct fhci_usb *usb = fhci->usb_lld;
481 if (usb->port_status != FHCI_PORT_DISABLED) {
536 .description = "fsl,usb-fhci",
623 dev_err(dev, "failed to allocate usb pram\n");
689 0, "qe timer (usb)", hcd);
698 dev_err(dev, "could not get usb irq\n");
811 { .compatible = "fsl,mpc8323-qe-usb", },
818 .name = "fsl,usb-fhci",