Lines Matching refs:usb
23 #include <linux/usb.h>
24 #include <linux/usb/hcd.h>
58 u16 fhci_get_sof_timer_count(struct fhci_usb *usb)
60 return be16_to_cpu(in_be16(&usb->fhci->regs->usb_ussft) / 12);
64 static u32 endpoint_zero_init(struct fhci_usb *usb,
70 rc = fhci_create_ep(usb, data_mem, ring_len);
75 fhci_init_ep_registers(usb, usb->ep0, data_mem);
81 void fhci_usb_enable_interrupt(struct fhci_usb *usb)
83 struct fhci_hcd *fhci = usb->fhci;
85 if (usb->intr_nesting_cnt == 1) {
90 out_be16(&usb->fhci->regs->usb_usber, 0xffff);
91 out_be16(&usb->fhci->regs->usb_usbmr, usb->saved_msk);
95 } else if (usb->intr_nesting_cnt > 1)
97 usb->intr_nesting_cnt--;
100 /* disable the usb interrupt */
101 void fhci_usb_disable_interrupt(struct fhci_usb *usb)
103 struct fhci_hcd *fhci = usb->fhci;
105 if (usb->intr_nesting_cnt == 0) {
109 /* disable the usb interrupt */
111 out_be16(&usb->fhci->regs->usb_usbmr, 0);
113 usb->intr_nesting_cnt++;
119 struct fhci_usb *usb = fhci->usb_lld;
121 out_be16(&usb->fhci->regs->usb_usber, 0xffff);
122 out_be16(&usb->fhci->regs->usb_usbmr, usb->saved_msk);
123 setbits8(&usb->fhci->regs->usb_usmod, USB_MODE_EN);
133 struct fhci_usb *usb = fhci->usb_lld;
135 fhci_usb_disable_interrupt(usb);
138 /* disable the usb controller */
139 if (usb->port_status == FHCI_PORT_FULL ||
140 usb->port_status == FHCI_PORT_LOW)
143 clrbits8(&usb->fhci->regs->usb_usmod, USB_MODE_EN);
244 struct fhci_usb *usb = lld;
247 if (usb) {
248 fhci = usb->fhci;
250 fhci_ep0_free(usb);
251 kfree(usb->actual_frame);
252 kfree(usb);
259 struct fhci_usb *usb = fhci->usb_lld;
261 memset_io(usb->fhci->pram, 0, FHCI_PRAM_SIZE);
263 usb->port_status = FHCI_PORT_DISABLED;
264 usb->max_frame_usage = FRAME_TIME_USAGE;
265 usb->sw_transaction_time = SW_FIX_TIME_BETWEEN_TRANSACTION;
267 usb->actual_frame = kzalloc(sizeof(*usb->actual_frame), GFP_KERNEL);
268 if (!usb->actual_frame) {
269 fhci_usb_free(usb);
273 INIT_LIST_HEAD(&usb->actual_frame->tds_list);
282 usb->saved_msk = (USB_E_TXB_MASK |
287 out_8(&usb->fhci->regs->usb_usmod, USB_MODE_HOST | USB_MODE_EN);
290 out_be16(&usb->fhci->regs->usb_usbmr, 0);
293 out_be16(&usb->fhci->regs->usb_usber, 0xffff);
295 if (endpoint_zero_init(usb, DEFAULT_DATA_MEM, DEFAULT_RING_LEN) != 0) {
296 fhci_usb_free(usb);
306 struct fhci_usb *usb;
309 usb = kzalloc(sizeof(*usb), GFP_KERNEL);
310 if (!usb)
313 usb->fhci = fhci;
314 usb->hc_list = fhci->hc_list;
315 usb->vroot_hub = fhci->vroot_hub;
317 usb->transfer_confirm = fhci_transfer_confirm_callback;
319 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");
672 0, "qe timer (usb)", hcd);
681 dev_err(dev, "could not get usb irq\n");
783 { .compatible = "fsl,mpc8323-qe-usb", },
790 .name = "fsl,usb-fhci",