Lines Matching refs:hcd

335 hcd_to_max3421(struct usb_hcd *hcd)  in hcd_to_max3421()  argument
337 return (struct max3421_hcd *) hcd->hcd_priv; in hcd_to_max3421()
347 spi_rd8(struct usb_hcd *hcd, unsigned int reg) in spi_rd8() argument
349 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in spi_rd8()
350 struct spi_device *spi = to_spi_device(hcd->self.controller); in spi_rd8()
373 spi_wr8(struct usb_hcd *hcd, unsigned int reg, u8 val) in spi_wr8() argument
375 struct spi_device *spi = to_spi_device(hcd->self.controller); in spi_wr8()
376 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in spi_wr8()
397 spi_rd_buf(struct usb_hcd *hcd, unsigned int reg, void *buf, size_t len) in spi_rd_buf() argument
399 struct spi_device *spi = to_spi_device(hcd->self.controller); in spi_rd_buf()
400 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in spi_rd_buf()
423 spi_wr_buf(struct usb_hcd *hcd, unsigned int reg, void *buf, size_t len) in spi_wr_buf() argument
425 struct spi_device *spi = to_spi_device(hcd->self.controller); in spi_wr_buf()
426 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in spi_wr_buf()
463 max3421_set_speed(struct usb_hcd *hcd, struct usb_device *dev) in max3421_set_speed() argument
465 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_set_speed()
480 spi_wr8(hcd, MAX3421_REG_MODE, max3421_hcd->mode); in max3421_set_speed()
489 max3421_set_address(struct usb_hcd *hcd, struct usb_device *dev, int epnum) in max3421_set_address() argument
500 spi_wr8(hcd, MAX3421_REG_HCTL, hctl); in max3421_set_address()
507 spi_wr8(hcd, MAX3421_REG_PERADDR, dev->devnum); in max3421_set_address()
511 max3421_ctrl_setup(struct usb_hcd *hcd, struct urb *urb) in max3421_ctrl_setup() argument
513 spi_wr_buf(hcd, MAX3421_REG_SUDFIFO, urb->setup_packet, 8); in max3421_ctrl_setup()
518 max3421_transfer_in(struct usb_hcd *hcd, struct urb *urb) in max3421_transfer_in() argument
520 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_transfer_in()
529 max3421_transfer_out(struct usb_hcd *hcd, struct urb *urb, int fast_retransmit) in max3421_transfer_out() argument
531 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_transfer_out()
532 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_transfer_out()
542 spi_wr8(hcd, MAX3421_REG_SNDBC, 0); in max3421_transfer_out()
543 spi_wr8(hcd, MAX3421_REG_SNDFIFO, ((u8 *) src)[0]); in max3421_transfer_out()
544 spi_wr8(hcd, MAX3421_REG_SNDBC, max3421_hcd->curr_len); in max3421_transfer_out()
565 spi_wr_buf(hcd, MAX3421_REG_SNDFIFO, src, max3421_hcd->curr_len); in max3421_transfer_out()
566 spi_wr8(hcd, MAX3421_REG_SNDBC, max3421_hcd->curr_len); in max3421_transfer_out()
575 max3421_next_transfer(struct usb_hcd *hcd, int fast_retransmit) in max3421_next_transfer() argument
577 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_next_transfer()
589 cmd = max3421_ctrl_setup(hcd, urb); in max3421_next_transfer()
594 cmd = max3421_transfer_in(hcd, urb); in max3421_next_transfer()
596 cmd = max3421_transfer_out(hcd, urb, fast_retransmit); in max3421_next_transfer()
616 spi_wr8(hcd, MAX3421_REG_HXFR, cmd); in max3421_next_transfer()
635 max3421_select_and_start_urb(struct usb_hcd *hcd) in max3421_select_and_start_urb() argument
637 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_select_and_start_urb()
638 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_select_and_start_urb()
758 max3421_set_address(hcd, urb->dev, epnum); in max3421_select_and_start_urb()
759 max3421_set_speed(hcd, urb->dev); in max3421_select_and_start_urb()
760 max3421_next_transfer(hcd, 0); in max3421_select_and_start_urb()
770 max3421_check_unlink(struct usb_hcd *hcd) in max3421_check_unlink() argument
772 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_check_unlink()
773 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_check_unlink()
788 usb_hcd_unlink_urb_from_ep(hcd, urb); in max3421_check_unlink()
791 usb_hcd_giveback_urb(hcd, urb, 0); in max3421_check_unlink()
804 max3421_slow_retransmit(struct usb_hcd *hcd) in max3421_slow_retransmit() argument
806 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_slow_retransmit()
819 max3421_recv_data_available(struct usb_hcd *hcd) in max3421_recv_data_available() argument
821 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_recv_data_available()
826 rcvbc = spi_rd8(hcd, MAX3421_REG_RCVBC); in max3421_recv_data_available()
840 spi_rd_buf(hcd, MAX3421_REG_RCVFIFO, dst, transfer_size); in max3421_recv_data_available()
846 spi_wr8(hcd, MAX3421_REG_HIRQ, BIT(MAX3421_HI_RCVDAV_BIT)); in max3421_recv_data_available()
850 max3421_handle_error(struct usb_hcd *hcd, u8 hrsl) in max3421_handle_error() argument
852 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_handle_error()
853 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_handle_error()
895 spi_wr8(hcd, MAX3421_REG_HCTL, in max3421_handle_error()
907 max3421_slow_retransmit(hcd); in max3421_handle_error()
928 max3421_next_transfer(hcd, 1); in max3421_handle_error()
931 max3421_slow_retransmit(hcd); in max3421_handle_error()
935 spi_wr8(hcd, MAX3421_REG_SNDBC, 0); in max3421_handle_error()
942 max3421_transfer_in_done(struct usb_hcd *hcd, struct urb *urb) in max3421_transfer_in_done() argument
944 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_transfer_in_done()
945 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_transfer_in_done()
986 max3421_transfer_out_done(struct usb_hcd *hcd, struct urb *urb) in max3421_transfer_out_done() argument
988 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_transfer_out_done()
1013 max3421_host_transfer_done(struct usb_hcd *hcd) in max3421_host_transfer_done() argument
1015 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_host_transfer_done()
1024 hrsl = spi_rd8(hcd, MAX3421_REG_HRSL); in max3421_host_transfer_done()
1034 max3421_handle_error(hcd, hrsl); in max3421_host_transfer_done()
1051 urb_done = max3421_transfer_in_done(hcd, urb); in max3421_host_transfer_done()
1053 urb_done = max3421_transfer_out_done(hcd, urb); in max3421_host_transfer_done()
1072 max3421_next_transfer(hcd, 0); in max3421_host_transfer_done()
1079 max3421_detect_conn(struct usb_hcd *hcd) in max3421_detect_conn() argument
1081 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_detect_conn()
1087 hrsl = spi_rd8(hcd, MAX3421_REG_HRSL); in max3421_detect_conn()
1118 spi_wr8(hcd, MAX3421_REG_MODE, max3421_hcd->mode); in max3421_detect_conn()
1138 struct usb_hcd *hcd = dev_id; in max3421_irq_handler() local
1139 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_irq_handler()
1140 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_irq_handler()
1152 dump_eps(struct usb_hcd *hcd) in dump_eps() argument
1154 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in dump_eps()
1193 max3421_handle_irqs(struct usb_hcd *hcd) in max3421_handle_irqs() argument
1195 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_handle_irqs()
1205 hirq = spi_rd8(hcd, MAX3421_REG_HIRQ); in max3421_handle_irqs()
1210 spi_wr8(hcd, MAX3421_REG_HIRQ, in max3421_handle_irqs()
1221 max3421_recv_data_available(hcd); in max3421_handle_irqs()
1224 max3421_host_transfer_done(hcd); in max3421_handle_irqs()
1227 max3421_detect_conn(hcd); in max3421_handle_irqs()
1278 dump_eps(hcd); in max3421_handle_irqs()
1286 max3421_reset_hcd(struct usb_hcd *hcd) in max3421_reset_hcd() argument
1288 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_reset_hcd()
1289 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_reset_hcd()
1293 spi_wr8(hcd, MAX3421_REG_USBCTL, BIT(MAX3421_USBCTL_CHIPRES_BIT)); in max3421_reset_hcd()
1295 spi_wr8(hcd, MAX3421_REG_USBCTL, 0); in max3421_reset_hcd()
1298 if (spi_rd8(hcd, MAX3421_REG_USBIRQ) in max3421_reset_hcd()
1317 spi_wr8(hcd, MAX3421_REG_MODE, max3421_hcd->mode); in max3421_reset_hcd()
1321 spi_wr8(hcd, MAX3421_REG_HCTL, BIT(MAX3421_HCTL_FRMRST_BIT)); in max3421_reset_hcd()
1324 spi_wr8(hcd, MAX3421_REG_HCTL, BIT(MAX3421_HCTL_SAMPLEBUS_BIT)); in max3421_reset_hcd()
1325 max3421_detect_conn(hcd); in max3421_reset_hcd()
1331 spi_wr8(hcd, MAX3421_REG_HIEN, max3421_hcd->hien); in max3421_reset_hcd()
1334 spi_wr8(hcd, MAX3421_REG_CPUCTL, BIT(MAX3421_CPUCTL_IE_BIT)); in max3421_reset_hcd()
1339 max3421_urb_done(struct usb_hcd *hcd) in max3421_urb_done() argument
1341 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_urb_done()
1353 u8 hrsl = spi_rd8(hcd, MAX3421_REG_HRSL); in max3421_urb_done()
1364 usb_hcd_unlink_urb_from_ep(hcd, urb); in max3421_urb_done()
1368 usb_hcd_giveback_urb(hcd, urb, status); in max3421_urb_done()
1376 struct usb_hcd *hcd = dev_id; in max3421_spi_thread() local
1377 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_spi_thread()
1378 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_spi_thread()
1382 spi_wr8(hcd, MAX3421_REG_PINCTL, in max3421_spi_thread()
1387 max3421_hcd->rev = spi_rd8(hcd, MAX3421_REG_REVISION); in max3421_spi_thread()
1404 spi_wr8(hcd, MAX3421_REG_HIEN, max3421_hcd->hien); in max3421_spi_thread()
1416 i_worked |= max3421_urb_done(hcd); in max3421_spi_thread()
1417 else if (max3421_handle_irqs(hcd)) in max3421_spi_thread()
1420 i_worked |= max3421_select_and_start_urb(hcd); in max3421_spi_thread()
1424 i_worked |= max3421_reset_hcd(hcd); in max3421_spi_thread()
1427 spi_wr8(hcd, MAX3421_REG_HCTL, in max3421_spi_thread()
1432 i_worked |= max3421_check_unlink(hcd); in max3421_spi_thread()
1439 u8 val = spi_rd8(hcd, MAX3421_REG_IOPINS1); in max3421_spi_thread()
1443 spi_wr8(hcd, MAX3421_REG_IOPINS1 + i, val); in max3421_spi_thread()
1455 max3421_reset_port(struct usb_hcd *hcd) in max3421_reset_port() argument
1457 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_reset_port()
1468 max3421_reset(struct usb_hcd *hcd) in max3421_reset() argument
1470 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_reset()
1472 hcd->self.sg_tablesize = 0; in max3421_reset()
1473 hcd->speed = HCD_USB2; in max3421_reset()
1474 hcd->self.root_hub->speed = USB_SPEED_FULL; in max3421_reset()
1481 max3421_start(struct usb_hcd *hcd) in max3421_start() argument
1483 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_start()
1490 hcd->power_budget = POWER_BUDGET; in max3421_start()
1491 hcd->state = HC_STATE_RUNNING; in max3421_start()
1492 hcd->uses_new_polling = 1; in max3421_start()
1497 max3421_stop(struct usb_hcd *hcd) in max3421_stop() argument
1502 max3421_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) in max3421_urb_enqueue() argument
1504 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_urb_enqueue()
1505 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_urb_enqueue()
1541 retval = usb_hcd_link_urb_to_ep(hcd, urb); in max3421_urb_enqueue()
1554 max3421_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status) in max3421_urb_dequeue() argument
1556 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_urb_dequeue()
1566 retval = usb_hcd_check_unlink_urb(hcd, urb, status); in max3421_urb_dequeue()
1576 max3421_endpoint_disable(struct usb_hcd *hcd, struct usb_host_endpoint *ep) in max3421_endpoint_disable() argument
1578 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_endpoint_disable()
1597 max3421_get_frame_number(struct usb_hcd *hcd) in max3421_get_frame_number() argument
1599 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_get_frame_number()
1608 max3421_hub_status_data(struct usb_hcd *hcd, char *buf) in max3421_hub_status_data() argument
1610 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_hub_status_data()
1615 if (!HCD_HW_ACCESSIBLE(hcd)) in max3421_hub_status_data()
1621 dev_dbg(hcd->self.controller, in max3421_hub_status_data()
1626 usb_hcd_resume_root_hub(hcd); in max3421_hub_status_data()
1653 max3421_gpout_set_value(struct usb_hcd *hcd, u8 pin_number, u8 value) in max3421_gpout_set_value() argument
1655 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_gpout_set_value()
1674 max3421_hub_control(struct usb_hcd *hcd, u16 type_req, u16 value, u16 index, in max3421_hub_control() argument
1677 struct spi_device *spi = to_spi_device(hcd->self.controller); in max3421_hub_control()
1678 struct max3421_hcd *max3421_hcd = hcd_to_max3421(hcd); in max3421_hub_control()
1695 dev_dbg(hcd->self.controller, "power-off\n"); in max3421_hub_control()
1696 max3421_gpout_set_value(hcd, pdata->vbus_gpout, in max3421_hub_control()
1744 dev_dbg(hcd->self.controller, "power-on\n"); in max3421_hub_control()
1746 max3421_gpout_set_value(hcd, pdata->vbus_gpout, in max3421_hub_control()
1750 max3421_reset_port(hcd); in max3421_hub_control()
1760 dev_dbg(hcd->self.controller, in max3421_hub_control()
1772 max3421_bus_suspend(struct usb_hcd *hcd) in max3421_bus_suspend() argument
1778 max3421_bus_resume(struct usb_hcd *hcd) in max3421_bus_resume() argument
1828 struct usb_hcd *hcd = NULL; in max3421_probe() local
1873 hcd = usb_create_hcd(&max3421_hcd_desc, &spi->dev, in max3421_probe()
1875 if (!hcd) { in max3421_probe()
1879 set_bit(HCD_FLAG_POLL_RH, &hcd->flags); in max3421_probe()
1880 max3421_hcd = hcd_to_max3421(hcd); in max3421_probe()
1891 max3421_hcd->spi_thread = kthread_run(max3421_spi_thread, hcd, in max3421_probe()
1899 retval = usb_add_hcd(hcd, 0, 0); in max3421_probe()
1906 IRQF_TRIGGER_LOW, "max3421", hcd); in max3421_probe()
1919 if (hcd) { in max3421_probe()
1924 usb_put_hcd(hcd); in max3421_probe()
1933 struct usb_hcd *hcd; in max3421_remove() local
1937 hcd = max3421_to_hcd(max3421_hcd); in max3421_remove()
1939 usb_remove_hcd(hcd); in max3421_remove()
1947 free_irq(spi->irq, hcd); in max3421_remove()
1949 usb_put_hcd(hcd); in max3421_remove()