Lines Matching full:fsm

59 /* FSM timers */
118 void fsl_otg_chrg_vbus(struct otg_fsm *fsm, int on) in fsl_otg_chrg_vbus() argument
154 void fsl_otg_drv_vbus(struct otg_fsm *fsm, int on) in fsl_otg_drv_vbus() argument
172 void fsl_otg_loc_conn(struct otg_fsm *fsm, int on) in fsl_otg_loc_conn() argument
191 void fsl_otg_loc_sof(struct otg_fsm *fsm, int on) in fsl_otg_loc_sof() argument
206 void fsl_otg_start_pulse(struct otg_fsm *fsm) in fsl_otg_start_pulse() argument
219 fsl_otg_add_timer(fsm, b_data_pulse_tmr); in fsl_otg_start_pulse()
236 fsl_otg_chrg_vbus(&fsl_otg_dev->fsm, 1); in fsl_otg_pulse_vbus()
238 fsl_otg_add_timer(&fsl_otg_dev->fsm, b_vbus_pulse_tmr); in fsl_otg_pulse_vbus()
243 fsl_otg_chrg_vbus(&fsl_otg_dev->fsm, 0); in b_vbus_pulse_end()
251 fsl_otg_add_timer(&fsl_otg_dev->fsm, b_srp_wait_tmr); in b_vbus_pulse_end()
260 fsl_otg_dev->fsm.b_sess_vld) in b_srp_end()
261 fsl_otg_dev->fsm.b_srp_done = 1; in b_srp_end()
273 fsl_otg_add_timer(&fsl_otg_dev->fsm, a_wait_enum_tmr); in a_wait_enum()
275 otg_statemachine(&fsl_otg_dev->fsm); in a_wait_enum()
285 int fsl_otg_init_timers(struct otg_fsm *fsm) in fsl_otg_init_timers() argument
287 /* FSM used timers */ in fsl_otg_init_timers()
289 (unsigned long)&fsm->a_wait_vrise_tmout); in fsl_otg_init_timers()
294 (unsigned long)&fsm->a_wait_bcon_tmout); in fsl_otg_init_timers()
299 (unsigned long)&fsm->a_aidl_bdis_tmout); in fsl_otg_init_timers()
304 (unsigned long)&fsm->b_ase0_brst_tmout); in fsl_otg_init_timers()
309 (unsigned long)&fsm->b_se0_srp); in fsl_otg_init_timers()
314 (unsigned long)&fsm->b_srp_done); in fsl_otg_init_timers()
319 (unsigned long)&fsm); in fsl_otg_init_timers()
344 /* FSM used timers */ in fsl_otg_uninit_timers()
394 void fsl_otg_add_timer(struct otg_fsm *fsm, void *gtimer) in fsl_otg_add_timer() argument
412 static void fsl_otg_fsm_add_timer(struct otg_fsm *fsm, enum otg_fsm_timer t) in fsl_otg_fsm_add_timer() argument
420 fsl_otg_add_timer(fsm, timer); in fsl_otg_fsm_add_timer()
424 void fsl_otg_del_timer(struct otg_fsm *fsm, void *gtimer) in fsl_otg_del_timer() argument
434 static void fsl_otg_fsm_del_timer(struct otg_fsm *fsm, enum otg_fsm_timer t) in fsl_otg_fsm_del_timer() argument
442 fsl_otg_del_timer(fsm, timer); in fsl_otg_fsm_del_timer()
458 int fsl_otg_start_host(struct otg_fsm *fsm, int on) in fsl_otg_start_host() argument
460 struct usb_otg *otg = fsm->otg; in fsl_otg_start_host()
474 fsm->a_vbus_vld = in fsl_otg_start_host()
485 if (fsm->id) { in fsl_otg_start_host()
487 fsl_otg_drv_vbus(fsm, 1); in fsl_otg_start_host()
510 if (fsm->id) in fsl_otg_start_host()
512 fsl_otg_drv_vbus(fsm, 0); in fsl_otg_start_host()
525 int fsl_otg_start_gadget(struct otg_fsm *fsm, int on) in fsl_otg_start_gadget() argument
527 struct usb_otg *otg = fsm->otg; in fsl_otg_start_gadget()
564 otg_dev->fsm.a_bus_drop = 0; in fsl_otg_set_host()
565 otg_dev->fsm.a_bus_req = 1; in fsl_otg_set_host()
571 otg->host->is_b_host = otg_dev->fsm.id; in fsl_otg_set_host()
585 struct otg_fsm *fsm = &otg_dev->fsm; in fsl_otg_set_host() local
588 fsm->protocol = PROTO_UNDEF; in fsl_otg_set_host()
594 otg_statemachine(&otg_dev->fsm); in fsl_otg_set_host()
619 otg_dev->fsm.b_bus_req = 0; in fsl_otg_set_peripheral()
620 otg_statemachine(&otg_dev->fsm); in fsl_otg_set_peripheral()
625 otg->gadget->is_a_peripheral = !otg_dev->fsm.id; in fsl_otg_set_peripheral()
627 otg_dev->fsm.b_bus_req = 1; in fsl_otg_set_peripheral()
630 pr_debug("ID pin=%d\n", otg_dev->fsm.id); in fsl_otg_set_peripheral()
631 if (otg_dev->fsm.id == 1) { in fsl_otg_set_peripheral()
632 fsl_otg_start_host(&otg_dev->fsm, 0); in fsl_otg_set_peripheral()
633 otg_drv_vbus(&otg_dev->fsm, 0); in fsl_otg_set_peripheral()
634 fsl_otg_start_gadget(&otg_dev->fsm, 1); in fsl_otg_set_peripheral()
653 struct otg_fsm *fsm = &og->fsm; in fsl_otg_event() local
655 if (fsm->id) { /* switch to gadget */ in fsl_otg_event()
656 fsl_otg_start_host(fsm, 0); in fsl_otg_event()
657 otg_drv_vbus(fsm, 0); in fsl_otg_event()
658 fsl_otg_start_gadget(fsm, 1); in fsl_otg_event()
674 otg_dev->fsm.b_bus_req = 1; in fsl_otg_start_srp()
675 otg_statemachine(&otg_dev->fsm); in fsl_otg_start_srp()
695 otg_dev->fsm.a_bus_req = 0; in fsl_otg_start_hnp()
696 otg_statemachine(&otg_dev->fsm); in fsl_otg_start_hnp()
709 struct otg_fsm *fsm = &((struct fsl_otg *)dev_id)->fsm; in fsl_otg_isr() local
720 fsm->id = (otg_sc & OTGSC_STS_USB_ID) ? 1 : 0; in fsl_otg_isr()
721 otg->default_a = (fsm->id == 0); in fsl_otg_isr()
726 fsm->id = (otg_sc & OTGSC_STS_USB_ID) ? 1 : 0; in fsl_otg_isr()
727 otg->default_a = (fsm->id == 0); in fsl_otg_isr()
729 if (fsm->id) in fsl_otg_isr()
730 fsm->b_conn = 0; in fsl_otg_isr()
732 fsm->a_conn = 0; in fsl_otg_isr()
735 otg->host->is_b_host = fsm->id; in fsl_otg_isr()
737 otg->gadget->is_a_peripheral = !fsm->id; in fsl_otg_isr()
738 VDBG("ID int (ID is %d)\n", fsm->id); in fsl_otg_isr()
740 if (fsm->id) { /* switch to gadget */ in fsl_otg_isr()
748 fsl_otg_start_gadget(fsm, 0); in fsl_otg_isr()
749 otg_drv_vbus(fsm, 1); in fsl_otg_isr()
750 fsl_otg_start_host(fsm, 1); in fsl_otg_isr()
795 status = fsl_otg_init_timers(&fsl_otg_tc->fsm); in fsl_otg_conf()
800 mutex_init(&fsl_otg_tc->fsm.lock); in fsl_otg_conf()
803 fsl_otg_tc->fsm.ops = &fsl_otg_ops; in fsl_otg_conf()
837 struct otg_fsm *fsm; in usb_otg_start() local
844 fsm = &p_otg->fsm; in usb_otg_start()
848 fsm->otg = p_otg->phy.otg; in usb_otg_start()
946 p_otg->fsm.id = 1; in usb_otg_start()
949 p_otg->fsm.id = 0; in usb_otg_start()
952 pr_debug("initial ID pin=%d\n", p_otg->fsm.id); in usb_otg_start()