Lines Matching refs:rport
396 struct rockchip_usb2phy_port *rport, in rockchip_usb2phy_enable_id_irq() argument
402 &rport->port_cfg->idfall_det_clr, true); in rockchip_usb2phy_enable_id_irq()
406 ret = property_enable(rphy->grf, &rport->port_cfg->idfall_det_en, en); in rockchip_usb2phy_enable_id_irq()
411 &rport->port_cfg->idrise_det_clr, true); in rockchip_usb2phy_enable_id_irq()
415 ret = property_enable(rphy->grf, &rport->port_cfg->idrise_det_en, en); in rockchip_usb2phy_enable_id_irq()
422 struct rockchip_usb2phy_port *rport, in rockchip_usb2phy_enable_vbus_irq() argument
428 &rport->port_cfg->bvalidfall_det_clr, true); in rockchip_usb2phy_enable_vbus_irq()
433 &rport->port_cfg->bvalidfall_det_en, en); in rockchip_usb2phy_enable_vbus_irq()
438 &rport->port_cfg->bvalidrise_det_clr, true); in rockchip_usb2phy_enable_vbus_irq()
443 &rport->port_cfg->bvalidrise_det_en, en); in rockchip_usb2phy_enable_vbus_irq()
449 struct rockchip_usb2phy_port *rport, in rockchip_usb2phy_enable_line_irq() argument
454 ret = property_enable(rphy->grf, &rport->port_cfg->ls_det_clr, true); in rockchip_usb2phy_enable_line_irq()
458 ret = property_enable(rphy->grf, &rport->port_cfg->ls_det_en, en); in rockchip_usb2phy_enable_line_irq()
465 struct rockchip_usb2phy_port *rport, in rockchip_usb2phy_enable_disconn_irq() argument
471 &rport->port_cfg->disconrise_det_clr, true); in rockchip_usb2phy_enable_disconn_irq()
476 &rport->port_cfg->disconrise_det_en, en); in rockchip_usb2phy_enable_disconn_irq()
520 struct rockchip_usb2phy_port *rport = phy_get_drvdata(phy); in rockchip_usb2phy_init() local
524 mutex_lock(&rport->mutex); in rockchip_usb2phy_init()
527 if (rport->disconnect_irq > 0) { in rockchip_usb2phy_init()
528 ret = rockchip_usb2phy_enable_disconn_irq(rphy, rport, true); in rockchip_usb2phy_init()
536 if (rport->ls_irq > 0 && in rockchip_usb2phy_init()
537 (rport->port_id == USB2PHY_PORT_HOST || in rockchip_usb2phy_init()
538 rport->mode == USB_DR_MODE_HOST)) { in rockchip_usb2phy_init()
539 ret = rockchip_usb2phy_enable_line_irq(rphy, rport, true); in rockchip_usb2phy_init()
547 if (rport->bvalid_irq > 0) { in rockchip_usb2phy_init()
548 ret = rockchip_usb2phy_enable_vbus_irq(rphy, rport, true); in rockchip_usb2phy_init()
555 rport->vbus_attached = in rockchip_usb2phy_init()
557 &rport->port_cfg->utmi_bvalid); in rockchip_usb2phy_init()
558 schedule_delayed_work(&rport->otg_sm_work, OTG_SCHEDULE_DELAY); in rockchip_usb2phy_init()
562 if (rport->id_irq > 0) { in rockchip_usb2phy_init()
563 ret = rockchip_usb2phy_enable_id_irq(rphy, rport, in rockchip_usb2phy_init()
573 mutex_unlock(&rport->mutex); in rockchip_usb2phy_init()
579 struct rockchip_usb2phy_port *rport = phy_get_drvdata(phy); in rockchip_usb2phy_power_on() local
583 dev_dbg(&rport->phy->dev, "port power on\n"); in rockchip_usb2phy_power_on()
585 mutex_lock(&rport->mutex); in rockchip_usb2phy_power_on()
587 if (!rport->suspended) { in rockchip_usb2phy_power_on()
592 ret = property_enable(rphy->grf, &rport->port_cfg->phy_sus, false); in rockchip_usb2phy_power_on()
599 rport->suspended = false; in rockchip_usb2phy_power_on()
602 mutex_unlock(&rport->mutex); in rockchip_usb2phy_power_on()
609 struct rockchip_usb2phy_port *rport = phy_get_drvdata(phy); in rockchip_usb2phy_power_off() local
613 dev_dbg(&rport->phy->dev, "port power off\n"); in rockchip_usb2phy_power_off()
615 mutex_lock(&rport->mutex); in rockchip_usb2phy_power_off()
617 if (rport->suspended) { in rockchip_usb2phy_power_off()
622 ret = property_enable(rphy->grf, &rport->port_cfg->phy_sus, true); in rockchip_usb2phy_power_off()
626 rport->suspended = true; in rockchip_usb2phy_power_off()
629 mutex_unlock(&rport->mutex); in rockchip_usb2phy_power_off()
639 static int rockchip_set_vbus_power(struct rockchip_usb2phy_port *rport, in rockchip_set_vbus_power() argument
644 if (!rport->vbus) in rockchip_set_vbus_power()
647 if (en && !rport->vbus_enabled) { in rockchip_set_vbus_power()
648 ret = regulator_enable(rport->vbus); in rockchip_set_vbus_power()
650 dev_err(&rport->phy->dev, in rockchip_set_vbus_power()
652 } else if (!en && rport->vbus_enabled) { in rockchip_set_vbus_power()
653 ret = regulator_disable(rport->vbus); in rockchip_set_vbus_power()
657 rport->vbus_enabled = en; in rockchip_set_vbus_power()
665 struct rockchip_usb2phy_port *rport = phy_get_drvdata(phy); in rockchip_usb2phy_set_mode() local
669 if (rport->port_id != USB2PHY_PORT_OTG) in rockchip_usb2phy_set_mode()
677 rockchip_set_vbus_power(rport, false); in rockchip_usb2phy_set_mode()
682 ret = rockchip_set_vbus_power(rport, true); in rockchip_usb2phy_set_mode()
684 dev_err(&rport->phy->dev, in rockchip_usb2phy_set_mode()
692 dev_info(&rport->phy->dev, "illegal mode\n"); in rockchip_usb2phy_set_mode()
759 struct rockchip_usb2phy_port *rport = phy_get_drvdata(phy); in rv1126_usb2phy_calibrate() local
763 if (rport->port_id != USB2PHY_PORT_OTG) in rv1126_usb2phy_calibrate()
797 struct rockchip_usb2phy_port *rport) in rockchip_chg_detect() argument
803 mutex_lock(&rport->mutex); in rockchip_chg_detect()
842 dev_info(&rport->phy->dev, "charger = %s\n", in rockchip_chg_detect()
854 mutex_unlock(&rport->mutex); in rockchip_chg_detect()
859 struct rockchip_usb2phy_port *rport = data; in rockchip_usb2phy_disconnect_irq() local
860 struct rockchip_usb2phy *rphy = dev_get_drvdata(rport->phy->dev.parent); in rockchip_usb2phy_disconnect_irq()
862 if (!property_enabled(rphy->grf, &rport->port_cfg->disconrise_det_st)) in rockchip_usb2phy_disconnect_irq()
865 mutex_lock(&rport->mutex); in rockchip_usb2phy_disconnect_irq()
868 property_enable(rphy->grf, &rport->port_cfg->disconrise_det_clr, true); in rockchip_usb2phy_disconnect_irq()
870 mutex_unlock(&rport->mutex); in rockchip_usb2phy_disconnect_irq()
874 if (!property_enabled(rphy->grf, &rport->port_cfg->utmi_hostdet)) in rockchip_usb2phy_disconnect_irq()
877 mutex_lock(&rport->mutex); in rockchip_usb2phy_disconnect_irq()
880 rockchip_usb2phy_enable_line_irq(rphy, rport, true); in rockchip_usb2phy_disconnect_irq()
882 mutex_unlock(&rport->mutex); in rockchip_usb2phy_disconnect_irq()
884 dev_dbg(&rport->phy->dev, "host disconnected\n"); in rockchip_usb2phy_disconnect_irq()
885 rockchip_usb2phy_power_off(rport->phy); in rockchip_usb2phy_disconnect_irq()
892 struct rockchip_usb2phy_port *rport = data; in rockchip_usb2phy_linestate_irq() local
893 struct rockchip_usb2phy *rphy = dev_get_drvdata(rport->phy->dev.parent); in rockchip_usb2phy_linestate_irq()
895 if (!property_enabled(rphy->grf, &rport->port_cfg->ls_det_st)) in rockchip_usb2phy_linestate_irq()
898 dev_dbg(&rport->phy->dev, "linestate interrupt\n"); in rockchip_usb2phy_linestate_irq()
900 mutex_lock(&rport->mutex); in rockchip_usb2phy_linestate_irq()
903 rockchip_usb2phy_enable_line_irq(rphy, rport, false); in rockchip_usb2phy_linestate_irq()
905 mutex_unlock(&rport->mutex); in rockchip_usb2phy_linestate_irq()
907 if (!rport->suspended) in rockchip_usb2phy_linestate_irq()
910 if (rport->port_id != USB2PHY_PORT_HOST && in rockchip_usb2phy_linestate_irq()
911 rport->mode != USB_DR_MODE_HOST) in rockchip_usb2phy_linestate_irq()
914 dev_dbg(&rport->phy->dev, "host connected\n"); in rockchip_usb2phy_linestate_irq()
915 rockchip_usb2phy_power_on(rport->phy); in rockchip_usb2phy_linestate_irq()
923 struct rockchip_usb2phy_port *rport = in rockchip_usb2phy_otg_sm_work() local
926 struct rockchip_usb2phy *rphy = dev_get_drvdata(rport->phy->dev.parent); in rockchip_usb2phy_otg_sm_work()
928 if (rport->vbus_attached) { in rockchip_usb2phy_otg_sm_work()
931 !property_enabled(rphy->grf, &rport->port_cfg->utmi_iddig)) in rockchip_usb2phy_otg_sm_work()
934 if (rport->perip_connected) in rockchip_usb2phy_otg_sm_work()
937 rockchip_chg_detect(rphy, rport); in rockchip_usb2phy_otg_sm_work()
941 dev_dbg(&rport->phy->dev, "sdp cable is connected\n"); in rockchip_usb2phy_otg_sm_work()
942 wake_lock(&rport->wakelock); in rockchip_usb2phy_otg_sm_work()
944 rport->perip_connected = true; in rockchip_usb2phy_otg_sm_work()
947 dev_dbg(&rport->phy->dev, "dcp cable is connected\n"); in rockchip_usb2phy_otg_sm_work()
951 dev_dbg(&rport->phy->dev, "cdp cable is connected\n"); in rockchip_usb2phy_otg_sm_work()
952 wake_lock(&rport->wakelock); in rockchip_usb2phy_otg_sm_work()
954 rport->perip_connected = true; in rockchip_usb2phy_otg_sm_work()
960 if (!rport->perip_connected) { in rockchip_usb2phy_otg_sm_work()
966 dev_dbg(&rport->phy->dev, "usb peripheral disconnect\n"); in rockchip_usb2phy_otg_sm_work()
967 wake_unlock(&rport->wakelock); in rockchip_usb2phy_otg_sm_work()
968 rport->perip_connected = false; in rockchip_usb2phy_otg_sm_work()
972 if (extcon_get_state(rphy->edev, cable) != rport->vbus_attached) { in rockchip_usb2phy_otg_sm_work()
973 extcon_set_state(rphy->edev, cable, rport->vbus_attached); in rockchip_usb2phy_otg_sm_work()
978 rport->perip_connected)) { in rockchip_usb2phy_otg_sm_work()
980 rport->perip_connected); in rockchip_usb2phy_otg_sm_work()
993 struct rockchip_usb2phy_port *rport = NULL; in otg_mode_show() local
997 rport = &rphy->ports[index]; in otg_mode_show()
998 if (rport->port_id == USB2PHY_PORT_OTG) in otg_mode_show()
1002 if (!rport) { in otg_mode_show()
1005 } else if (rport->port_id != USB2PHY_PORT_OTG) { in otg_mode_show()
1010 switch (rport->mode) { in otg_mode_show()
1031 struct rockchip_usb2phy_port *rport = NULL; in otg_mode_store() local
1037 rport = &rphy->ports[index]; in otg_mode_store()
1038 if (rport->port_id == USB2PHY_PORT_OTG) in otg_mode_store()
1042 if (!rport) { in otg_mode_store()
1046 } else if (rport->port_id != USB2PHY_PORT_OTG || in otg_mode_store()
1047 rport->mode == USB_DR_MODE_UNKNOWN) { in otg_mode_store()
1053 mutex_lock(&rport->mutex); in otg_mode_store()
1067 if (rport->mode == new_dr_mode) { in otg_mode_store()
1072 rport->mode = new_dr_mode; in otg_mode_store()
1074 switch (rport->mode) { in otg_mode_store()
1076 rport->perip_connected = false; in otg_mode_store()
1081 rockchip_usb2phy_set_mode(rport->phy, PHY_MODE_USB_HOST, 0); in otg_mode_store()
1082 property_enable(rphy->grf, &rport->port_cfg->idpullup, in otg_mode_store()
1084 property_enable(rphy->grf, &rport->port_cfg->iddig_output, in otg_mode_store()
1086 property_enable(rphy->grf, &rport->port_cfg->iddig_en, in otg_mode_store()
1090 rockchip_usb2phy_set_mode(rport->phy, PHY_MODE_USB_DEVICE, 0); in otg_mode_store()
1091 property_enable(rphy->grf, &rport->port_cfg->idpullup, in otg_mode_store()
1093 property_enable(rphy->grf, &rport->port_cfg->iddig_output, in otg_mode_store()
1095 property_enable(rphy->grf, &rport->port_cfg->iddig_en, in otg_mode_store()
1099 rockchip_usb2phy_set_mode(rport->phy, PHY_MODE_USB_OTG, 0); in otg_mode_store()
1100 property_enable(rphy->grf, &rport->port_cfg->iddig_output, in otg_mode_store()
1102 property_enable(rphy->grf, &rport->port_cfg->iddig_en, in otg_mode_store()
1110 if ((rport->mode == USB_DR_MODE_PERIPHERAL || in otg_mode_store()
1111 rport->mode == USB_DR_MODE_OTG) && property_enabled(rphy->grf, in otg_mode_store()
1112 &rport->port_cfg->utmi_bvalid)) { in otg_mode_store()
1113 rport->vbus_attached = true; in otg_mode_store()
1114 cancel_delayed_work_sync(&rport->otg_sm_work); in otg_mode_store()
1115 schedule_delayed_work(&rport->otg_sm_work, OTG_SCHEDULE_DELAY); in otg_mode_store()
1118 mutex_unlock(&rport->mutex); in otg_mode_store()
1138 struct rockchip_usb2phy_port *rport = data; in rockchip_usb2phy_bvalid_irq() local
1139 struct rockchip_usb2phy *rphy = dev_get_drvdata(rport->phy->dev.parent); in rockchip_usb2phy_bvalid_irq()
1141 if (!property_enabled(rphy->grf, &rport->port_cfg->bvalidfall_det_st) && in rockchip_usb2phy_bvalid_irq()
1142 !property_enabled(rphy->grf, &rport->port_cfg->bvalidrise_det_st)) in rockchip_usb2phy_bvalid_irq()
1145 mutex_lock(&rport->mutex); in rockchip_usb2phy_bvalid_irq()
1148 if (property_enabled(rphy->grf, &rport->port_cfg->bvalidfall_det_st)) { in rockchip_usb2phy_bvalid_irq()
1149 property_enable(rphy->grf, &rport->port_cfg->bvalidfall_det_clr, in rockchip_usb2phy_bvalid_irq()
1151 rport->vbus_attached = false; in rockchip_usb2phy_bvalid_irq()
1153 &rport->port_cfg->bvalidrise_det_st)) { in rockchip_usb2phy_bvalid_irq()
1154 property_enable(rphy->grf, &rport->port_cfg->bvalidrise_det_clr, in rockchip_usb2phy_bvalid_irq()
1156 rport->vbus_attached = true; in rockchip_usb2phy_bvalid_irq()
1159 mutex_unlock(&rport->mutex); in rockchip_usb2phy_bvalid_irq()
1161 cancel_delayed_work_sync(&rport->otg_sm_work); in rockchip_usb2phy_bvalid_irq()
1162 rockchip_usb2phy_otg_sm_work(&rport->otg_sm_work.work); in rockchip_usb2phy_bvalid_irq()
1169 struct rockchip_usb2phy_port *rport = data; in rockchip_usb2phy_id_irq() local
1170 struct rockchip_usb2phy *rphy = dev_get_drvdata(rport->phy->dev.parent); in rockchip_usb2phy_id_irq()
1173 if (!property_enabled(rphy->grf, &rport->port_cfg->idfall_det_st) && in rockchip_usb2phy_id_irq()
1174 !property_enabled(rphy->grf, &rport->port_cfg->idrise_det_st)) in rockchip_usb2phy_id_irq()
1177 mutex_lock(&rport->mutex); in rockchip_usb2phy_id_irq()
1180 if (property_enabled(rphy->grf, &rport->port_cfg->idfall_det_st)) { in rockchip_usb2phy_id_irq()
1181 property_enable(rphy->grf, &rport->port_cfg->idfall_det_clr, in rockchip_usb2phy_id_irq()
1185 &rport->port_cfg->idrise_det_st)) { in rockchip_usb2phy_id_irq()
1186 property_enable(rphy->grf, &rport->port_cfg->idrise_det_clr, in rockchip_usb2phy_id_irq()
1191 dev_dbg(&rport->phy->dev, "id %s interrupt\n", in rockchip_usb2phy_id_irq()
1199 rockchip_set_vbus_power(rport, cable_vbus_state); in rockchip_usb2phy_id_irq()
1201 mutex_unlock(&rport->mutex); in rockchip_usb2phy_id_irq()
1207 struct rockchip_usb2phy_port *rport, in rockchip_usb2phy_otg_port_init() argument
1213 mutex_init(&rport->mutex); in rockchip_usb2phy_otg_port_init()
1215 rport->port_id = USB2PHY_PORT_OTG; in rockchip_usb2phy_otg_port_init()
1216 rport->port_cfg = &rphy->phy_cfg->port_cfgs[USB2PHY_PORT_OTG]; in rockchip_usb2phy_otg_port_init()
1217 rport->vbus_attached = false; in rockchip_usb2phy_otg_port_init()
1218 rport->vbus_enabled = false; in rockchip_usb2phy_otg_port_init()
1219 rport->prev_iddig = true; in rockchip_usb2phy_otg_port_init()
1221 rport->vbus_always_on = in rockchip_usb2phy_otg_port_init()
1229 rport->vbus = devm_regulator_get_optional(&rport->phy->dev, "vbus"); in rockchip_usb2phy_otg_port_init()
1230 if (IS_ERR(rport->vbus)) { in rockchip_usb2phy_otg_port_init()
1231 if (PTR_ERR(rport->vbus) == -EPROBE_DEFER) in rockchip_usb2phy_otg_port_init()
1234 dev_warn(&rport->phy->dev, in rockchip_usb2phy_otg_port_init()
1236 rport->vbus = NULL; in rockchip_usb2phy_otg_port_init()
1245 property_enable(rphy->grf, &rport->port_cfg->bypass_otgsuspendm, in rockchip_usb2phy_otg_port_init()
1249 rport->ls_irq = of_irq_get_byname(child_np, "linestate"); in rockchip_usb2phy_otg_port_init()
1250 if (rport->ls_irq <= 0) { in rockchip_usb2phy_otg_port_init()
1255 ret = devm_request_threaded_irq(rphy->dev, rport->ls_irq, NULL, in rockchip_usb2phy_otg_port_init()
1258 "rockchip_usb2phy", rport); in rockchip_usb2phy_otg_port_init()
1264 rport->mode = of_usb_get_dr_mode_by_phy(child_np, -1); in rockchip_usb2phy_otg_port_init()
1265 if (rport->mode == USB_DR_MODE_HOST) { in rockchip_usb2phy_otg_port_init()
1270 rockchip_usb2phy_set_mode(rport->phy, PHY_MODE_USB_HOST, 0); in rockchip_usb2phy_otg_port_init()
1277 property_enable(rphy->grf, &rport->port_cfg->idpullup, false); in rockchip_usb2phy_otg_port_init()
1280 rport->disconnect_irq = of_irq_get_byname(child_np, in rockchip_usb2phy_otg_port_init()
1282 if (rport->disconnect_irq <= 0) { in rockchip_usb2phy_otg_port_init()
1288 rport->disconnect_irq, NULL, in rockchip_usb2phy_otg_port_init()
1291 "rockchip_usb2phy", rport); in rockchip_usb2phy_otg_port_init()
1302 rport->id_irq = of_irq_get_byname(child_np, "otg-id"); in rockchip_usb2phy_otg_port_init()
1303 if (rport->id_irq <= 0) { in rockchip_usb2phy_otg_port_init()
1309 rport->id_irq, NULL, in rockchip_usb2phy_otg_port_init()
1313 rport); in rockchip_usb2phy_otg_port_init()
1321 &rport->port_cfg->utmi_iddig); in rockchip_usb2phy_otg_port_init()
1327 ret = rockchip_set_vbus_power(rport, true); in rockchip_usb2phy_otg_port_init()
1333 if (rport->vbus_always_on) in rockchip_usb2phy_otg_port_init()
1337 rport->bvalid_irq = of_irq_get_byname(child_np, "otg-bvalid"); in rockchip_usb2phy_otg_port_init()
1338 if (rport->bvalid_irq <= 0) { in rockchip_usb2phy_otg_port_init()
1343 ret = devm_request_threaded_irq(rphy->dev, rport->bvalid_irq, in rockchip_usb2phy_otg_port_init()
1348 rport); in rockchip_usb2phy_otg_port_init()
1355 INIT_DELAYED_WORK(&rport->otg_sm_work, rockchip_usb2phy_otg_sm_work); in rockchip_usb2phy_otg_port_init()
1363 ret = property_enable(rphy->grf, &rport->port_cfg->phy_sus, true); in rockchip_usb2phy_otg_port_init()
1367 rport->suspended = true; in rockchip_usb2phy_otg_port_init()
1369 wake_lock_init(&rport->wakelock, WAKE_LOCK_SUSPEND, "rockchip_otg"); in rockchip_usb2phy_otg_port_init()
1375 struct rockchip_usb2phy_port *rport, in rockchip_usb2phy_host_port_init() argument
1380 mutex_init(&rport->mutex); in rockchip_usb2phy_host_port_init()
1382 rport->port_id = USB2PHY_PORT_HOST; in rockchip_usb2phy_host_port_init()
1383 rport->port_cfg = &rphy->phy_cfg->port_cfgs[USB2PHY_PORT_HOST]; in rockchip_usb2phy_host_port_init()
1386 rport->disconnect_irq = of_irq_get_byname(child_np, "disconnect"); in rockchip_usb2phy_host_port_init()
1387 if (rport->disconnect_irq <= 0) { in rockchip_usb2phy_host_port_init()
1392 ret = devm_request_threaded_irq(rphy->dev, rport->disconnect_irq, NULL, in rockchip_usb2phy_host_port_init()
1395 "rockchip_usb2phy", rport); in rockchip_usb2phy_host_port_init()
1402 rport->ls_irq = of_irq_get_byname(child_np, "linestate"); in rockchip_usb2phy_host_port_init()
1403 if (rport->ls_irq <= 0) { in rockchip_usb2phy_host_port_init()
1408 ret = devm_request_threaded_irq(rphy->dev, rport->ls_irq, NULL, in rockchip_usb2phy_host_port_init()
1411 "rockchip_usb2phy", rport); in rockchip_usb2phy_host_port_init()
1422 ret = property_enable(rphy->grf, &rport->port_cfg->phy_sus, true); in rockchip_usb2phy_host_port_init()
1426 rport->suspended = true; in rockchip_usb2phy_host_port_init()
1540 struct rockchip_usb2phy_port *rport = &rphy->ports[index]; in rockchip_usb2phy_probe() local
1564 rport->phy = phy; in rockchip_usb2phy_probe()
1565 phy_set_drvdata(rport->phy, rport); in rockchip_usb2phy_probe()
1569 ret = rockchip_usb2phy_host_port_init(rphy, rport, in rockchip_usb2phy_probe()
1574 ret = rockchip_usb2phy_otg_port_init(rphy, rport, in rockchip_usb2phy_probe()
1709 struct rockchip_usb2phy_port *rport; in rockchip_usb2phy_pm_suspend() local
1717 rport = &rphy->ports[index]; in rockchip_usb2phy_pm_suspend()
1718 if (!rport->phy) in rockchip_usb2phy_pm_suspend()
1721 if (rport->port_id == USB2PHY_PORT_OTG && in rockchip_usb2phy_pm_suspend()
1722 rport->id_irq > 0) { in rockchip_usb2phy_pm_suspend()
1723 mutex_lock(&rport->mutex); in rockchip_usb2phy_pm_suspend()
1724 rport->prev_iddig = in rockchip_usb2phy_pm_suspend()
1726 &rport->port_cfg->utmi_iddig); in rockchip_usb2phy_pm_suspend()
1727 ret = rockchip_usb2phy_enable_id_irq(rphy, rport, in rockchip_usb2phy_pm_suspend()
1729 mutex_unlock(&rport->mutex); in rockchip_usb2phy_pm_suspend()
1737 if (rport->port_id == USB2PHY_PORT_OTG && wakeup_enable && in rockchip_usb2phy_pm_suspend()
1738 rport->bvalid_irq > 0) in rockchip_usb2phy_pm_suspend()
1739 enable_irq_wake(rport->bvalid_irq); in rockchip_usb2phy_pm_suspend()
1742 mutex_lock(&rport->mutex); in rockchip_usb2phy_pm_suspend()
1743 ret = rockchip_usb2phy_enable_line_irq(rphy, rport, true); in rockchip_usb2phy_pm_suspend()
1744 mutex_unlock(&rport->mutex); in rockchip_usb2phy_pm_suspend()
1750 if (wakeup_enable && rport->ls_irq > 0) in rockchip_usb2phy_pm_suspend()
1751 enable_irq_wake(rport->ls_irq); in rockchip_usb2phy_pm_suspend()
1765 struct rockchip_usb2phy_port *rport; in rockchip_usb2phy_pm_resume() local
1778 rport = &rphy->ports[index]; in rockchip_usb2phy_pm_resume()
1779 if (!rport->phy) in rockchip_usb2phy_pm_resume()
1782 if (rport->port_id == USB2PHY_PORT_OTG && in rockchip_usb2phy_pm_resume()
1783 rport->id_irq > 0) { in rockchip_usb2phy_pm_resume()
1784 mutex_lock(&rport->mutex); in rockchip_usb2phy_pm_resume()
1786 &rport->port_cfg->utmi_iddig); in rockchip_usb2phy_pm_resume()
1787 ret = rockchip_usb2phy_enable_id_irq(rphy, rport, in rockchip_usb2phy_pm_resume()
1789 mutex_unlock(&rport->mutex); in rockchip_usb2phy_pm_resume()
1796 if (iddig != rport->prev_iddig) { in rockchip_usb2phy_pm_resume()
1797 dev_dbg(&rport->phy->dev, in rockchip_usb2phy_pm_resume()
1799 rport->prev_iddig = iddig; in rockchip_usb2phy_pm_resume()
1806 ret = rockchip_set_vbus_power(rport, !iddig); in rockchip_usb2phy_pm_resume()
1812 if (rport->port_id == USB2PHY_PORT_OTG && wakeup_enable && in rockchip_usb2phy_pm_resume()
1813 rport->bvalid_irq > 0) in rockchip_usb2phy_pm_resume()
1814 disable_irq_wake(rport->bvalid_irq); in rockchip_usb2phy_pm_resume()
1816 if (wakeup_enable && rport->ls_irq > 0) in rockchip_usb2phy_pm_resume()
1817 disable_irq_wake(rport->ls_irq); in rockchip_usb2phy_pm_resume()