Lines Matching refs:otg_ctrl
90 otg_ctrl.timer[A_WAIT_BCON_TIMER]);
92 mvotg->otg_ctrl.a_wait_bcon_timeout = 1;
109 timer = &mvotg->otg_ctrl.timer[id];
125 timer = &mvotg->otg_ctrl.timer[id];
290 struct mv_otg_ctrl *otg_ctrl = &mvotg->otg_ctrl;
297 otg_ctrl->b_sess_vld = 1;
298 otg_ctrl->b_sess_end = 0;
300 otg_ctrl->b_sess_vld = 0;
301 otg_ctrl->b_sess_end = 1;
304 otg_ctrl->b_sess_vld = !!(otgsc & OTGSC_STS_B_SESSION_VALID);
305 otg_ctrl->b_sess_end = !!(otgsc & OTGSC_STS_B_SESSION_END);
309 otg_ctrl->id = !!mvotg->pdata->id->poll();
311 otg_ctrl->id = !!(otgsc & OTGSC_STS_USB_ID);
313 if (mvotg->pdata->otg_force_a_bus_req && !otg_ctrl->id)
314 otg_ctrl->a_bus_req = 1;
316 otg_ctrl->a_sess_vld = !!(otgsc & OTGSC_STS_A_SESSION_VALID);
317 otg_ctrl->a_vbus_vld = !!(otgsc & OTGSC_STS_A_VBUS_VALID);
320 dev_dbg(&mvotg->pdev->dev, "id %d\n", otg_ctrl->id);
321 dev_dbg(&mvotg->pdev->dev, "b_sess_vld %d\n", otg_ctrl->b_sess_vld);
322 dev_dbg(&mvotg->pdev->dev, "b_sess_end %d\n", otg_ctrl->b_sess_end);
323 dev_dbg(&mvotg->pdev->dev, "a_vbus_vld %d\n", otg_ctrl->a_vbus_vld);
324 dev_dbg(&mvotg->pdev->dev, "a_sess_vld %d\n", otg_ctrl->a_sess_vld);
329 struct mv_otg_ctrl *otg_ctrl = &mvotg->otg_ctrl;
337 if (otg_ctrl->id == 0)
339 else if (otg_ctrl->b_sess_vld)
343 if (!otg_ctrl->b_sess_vld || otg_ctrl->id == 0)
347 if (otg_ctrl->id)
349 else if (!(otg_ctrl->a_bus_drop) &&
350 (otg_ctrl->a_bus_req || otg_ctrl->a_srp_det))
354 if (otg_ctrl->a_vbus_vld)
358 if (otg_ctrl->id || otg_ctrl->a_bus_drop
359 || otg_ctrl->a_wait_bcon_timeout) {
361 mvotg->otg_ctrl.a_wait_bcon_timeout = 0;
363 otg_ctrl->a_bus_req = 0;
364 } else if (!otg_ctrl->a_vbus_vld) {
366 mvotg->otg_ctrl.a_wait_bcon_timeout = 0;
368 } else if (otg_ctrl->b_conn) {
370 mvotg->otg_ctrl.a_wait_bcon_timeout = 0;
375 if (otg_ctrl->id || !otg_ctrl->b_conn
376 || otg_ctrl->a_bus_drop)
378 else if (!otg_ctrl->a_vbus_vld)
382 if (otg_ctrl->id
383 || (!otg_ctrl->b_conn && otg_ctrl->a_sess_vld)
384 || otg_ctrl->a_bus_req)
388 if (otg_ctrl->id || otg_ctrl->a_clr_err
389 || otg_ctrl->a_bus_drop) {
390 otg_ctrl->a_clr_err = 0;
456 mvotg->otg_ctrl.b_conn = 1;
465 mvotg->otg_ctrl.b_conn = 0;
522 mvotg->otg_ctrl.a_bus_req);
544 mvotg->otg_ctrl.a_bus_req = 1;
545 mvotg->otg_ctrl.a_bus_drop = 0;
572 mvotg->otg_ctrl.a_clr_err = 1;
593 mvotg->otg_ctrl.a_bus_drop);
608 mvotg->otg_ctrl.a_bus_drop = 0;
612 mvotg->otg_ctrl.a_bus_drop = 1;
613 mvotg->otg_ctrl.a_bus_req = 0;
710 timer_setup(&mvotg->otg_ctrl.timer[i],