• Home
  • Raw
  • Download

Lines Matching refs:isp

98 static void enable_vbus_draw(struct isp1301 *isp, unsigned mA)  in enable_vbus_draw()  argument
107 static void enable_vbus_draw(struct isp1301 *isp, unsigned mA) in enable_vbus_draw() argument
117 static void enable_vbus_source(struct isp1301 *isp) in enable_vbus_source() argument
126 static inline void notresponding(struct isp1301 *isp) in notresponding() argument
139 isp1301_get_u8(struct isp1301 *isp, u8 reg) in isp1301_get_u8() argument
141 return i2c_smbus_read_byte_data(isp->client, reg + 0); in isp1301_get_u8()
145 isp1301_get_u16(struct isp1301 *isp, u8 reg) in isp1301_get_u16() argument
147 return i2c_smbus_read_word_data(isp->client, reg); in isp1301_get_u16()
151 isp1301_set_bits(struct isp1301 *isp, u8 reg, u8 bits) in isp1301_set_bits() argument
153 return i2c_smbus_write_byte_data(isp->client, reg + 0, bits); in isp1301_set_bits()
157 isp1301_clear_bits(struct isp1301 *isp, u8 reg, u8 bits) in isp1301_clear_bits() argument
159 return i2c_smbus_write_byte_data(isp->client, reg + 1, bits); in isp1301_clear_bits()
222 static inline const char *state_name(struct isp1301 *isp) in state_name() argument
224 return usb_otg_state_string(isp->phy.otg->state); in state_name()
237 static void power_down(struct isp1301 *isp) in power_down() argument
239 isp->phy.otg->state = OTG_STATE_UNDEFINED; in power_down()
242 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_SUSPEND); in power_down()
244 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_ID_PULLDOWN); in power_down()
245 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in power_down()
248 static void __maybe_unused power_up(struct isp1301 *isp) in power_up() argument
251 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_SUSPEND); in power_up()
256 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in power_up()
261 static int host_suspend(struct isp1301 *isp) in host_suspend() argument
268 if (!isp->phy.otg->host) in host_suspend()
274 dev = isp->phy.otg->host->controller; in host_suspend()
279 static int host_resume(struct isp1301 *isp) in host_resume() argument
286 if (!isp->phy.otg->host) in host_resume()
289 dev = isp->phy.otg->host->controller; in host_resume()
294 static int gadget_suspend(struct isp1301 *isp) in gadget_suspend() argument
296 isp->phy.otg->gadget->b_hnp_enable = 0; in gadget_suspend()
297 isp->phy.otg->gadget->a_hnp_support = 0; in gadget_suspend()
298 isp->phy.otg->gadget->a_alt_hnp_support = 0; in gadget_suspend()
299 return usb_gadget_vbus_disconnect(isp->phy.otg->gadget); in gadget_suspend()
311 static void isp1301_defer_work(struct isp1301 *isp, int work) in isp1301_defer_work() argument
315 if (isp && !test_and_set_bit(work, &isp->todo)) { in isp1301_defer_work()
316 (void) get_device(&isp->client->dev); in isp1301_defer_work()
317 status = schedule_work(&isp->work); in isp1301_defer_work()
318 if (!status && !isp->working) in isp1301_defer_work()
319 dev_vdbg(&isp->client->dev, in isp1301_defer_work()
325 static void a_idle(struct isp1301 *isp, const char *tag) in a_idle() argument
329 if (isp->phy.otg->state == OTG_STATE_A_IDLE) in a_idle()
332 isp->phy.otg->default_a = 1; in a_idle()
333 if (isp->phy.otg->host) { in a_idle()
334 isp->phy.otg->host->is_b_host = 0; in a_idle()
335 host_suspend(isp); in a_idle()
337 if (isp->phy.otg->gadget) { in a_idle()
338 isp->phy.otg->gadget->is_a_peripheral = 1; in a_idle()
339 gadget_suspend(isp); in a_idle()
341 isp->phy.otg->state = OTG_STATE_A_IDLE; in a_idle()
344 isp->last_otg_ctrl = l; in a_idle()
345 pr_debug(" --> %s/%s\n", state_name(isp), tag); in a_idle()
349 static void b_idle(struct isp1301 *isp, const char *tag) in b_idle() argument
353 if (isp->phy.otg->state == OTG_STATE_B_IDLE) in b_idle()
356 isp->phy.otg->default_a = 0; in b_idle()
357 if (isp->phy.otg->host) { in b_idle()
358 isp->phy.otg->host->is_b_host = 1; in b_idle()
359 host_suspend(isp); in b_idle()
361 if (isp->phy.otg->gadget) { in b_idle()
362 isp->phy.otg->gadget->is_a_peripheral = 0; in b_idle()
363 gadget_suspend(isp); in b_idle()
365 isp->phy.otg->state = OTG_STATE_B_IDLE; in b_idle()
368 isp->last_otg_ctrl = l; in b_idle()
369 pr_debug(" --> %s/%s\n", state_name(isp), tag); in b_idle()
373 dump_regs(struct isp1301 *isp, const char *label) in dump_regs() argument
375 u8 ctrl = isp1301_get_u8(isp, ISP1301_OTG_CONTROL_1); in dump_regs()
376 u8 status = isp1301_get_u8(isp, ISP1301_OTG_STATUS); in dump_regs()
377 u8 src = isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE); in dump_regs()
380 omap_readl(OTG_CTRL), label, state_name(isp), in dump_regs()
399 static void check_state(struct isp1301 *isp, const char *tag) in check_state() argument
464 if (isp->phy.otg->state == state && !extra) in check_state()
467 usb_otg_state_string(state), fsm, state_name(isp), in check_state()
473 static inline void check_state(struct isp1301 *isp, const char *tag) { } in check_state() argument
478 static void update_otg1(struct isp1301 *isp, u8 int_src) in update_otg1() argument
488 else if (isp->phy.otg->state == OTG_STATE_A_WAIT_VFALL) { in update_otg1()
489 a_idle(isp, "vfall"); in update_otg1()
495 if (isp->phy.otg->state == OTG_STATE_B_IDLE in update_otg1()
496 || isp->phy.otg->state in update_otg1()
498 a_idle(isp, "init"); in update_otg1()
503 if (isp->phy.otg->state == OTG_STATE_A_IDLE in update_otg1()
504 || isp->phy.otg->state == OTG_STATE_UNDEFINED) { in update_otg1()
505 b_idle(isp, "init"); in update_otg1()
513 static void update_otg2(struct isp1301 *isp, u8 otg_status) in update_otg2() argument
528 static void otg_update_isp(struct isp1301 *isp) in otg_update_isp() argument
534 otg_change = otg_ctrl ^ isp->last_otg_ctrl; in otg_update_isp()
535 isp->last_otg_ctrl = otg_ctrl; in otg_update_isp()
538 switch (isp->phy.otg->state) { in otg_update_isp()
544 if (isp->phy.otg->gadget->b_hnp_enable) { in otg_update_isp()
545 isp->phy.otg->state = OTG_STATE_B_WAIT_ACON; in otg_update_isp()
572 if (!(isp->phy.otg->host)) in otg_update_isp()
575 switch (isp->phy.otg->state) { in otg_update_isp()
582 notresponding(isp); in otg_update_isp()
586 isp->phy.otg->state = OTG_STATE_A_WAIT_VFALL; in otg_update_isp()
595 isp->phy.otg->state = OTG_STATE_A_WAIT_VRISE; in otg_update_isp()
608 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, set); in otg_update_isp()
609 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, clr); in otg_update_isp()
615 switch (isp->phy.otg->state) { in otg_update_isp()
619 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in otg_update_isp()
625 isp->phy.otg->state = OTG_STATE_A_PERIPHERAL; in otg_update_isp()
636 check_state(isp, __func__); in otg_update_isp()
637 dump_regs(isp, "otg->isp1301"); in otg_update_isp()
645 struct isp1301 *isp = _isp; in omap_otg_irq() local
646 struct usb_otg *otg = isp->phy.otg; in omap_otg_irq()
651 isp1301_defer_work(isp, WORK_UPDATE_ISP); in omap_otg_irq()
657 notresponding(isp); in omap_otg_irq()
663 if (isp->phy.otg->state == OTG_STATE_B_SRP_INIT) in omap_otg_irq()
664 b_idle(isp, "srp_timeout"); in omap_otg_irq()
672 state_name(isp), omap_readl(OTG_CTRL)); in omap_otg_irq()
673 notresponding(isp); in omap_otg_irq()
681 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in omap_otg_irq()
690 state_name(isp), omap_readl(OTG_CTRL)); in omap_otg_irq()
692 isp1301_defer_work(isp, WORK_UPDATE_OTG); in omap_otg_irq()
693 switch (isp->phy.otg->state) { in omap_otg_irq()
697 isp1301_defer_work(isp, WORK_HOST_RESUME); in omap_otg_irq()
718 state_name(isp), otg_ctrl); in omap_otg_irq()
719 notresponding(isp); in omap_otg_irq()
724 isp->phy.otg->state = OTG_STATE_A_WAIT_VFALL; in omap_otg_irq()
733 state_name(isp), otg_irq, otg_ctrl); in omap_otg_irq()
738 isp->phy.otg->state = OTG_STATE_A_VBUS_ERR; in omap_otg_irq()
751 state_name(isp), in omap_otg_irq()
755 isp1301_defer_work(isp, WORK_UPDATE_ISP); in omap_otg_irq()
759 switch (isp->phy.otg->state) { in omap_otg_irq()
761 b_idle(isp, __func__); in omap_otg_irq()
766 isp1301_defer_work(isp, WORK_UPDATE_ISP); in omap_otg_irq()
776 switch (isp->phy.otg->state) { in omap_otg_irq()
778 isp->phy.otg->state = OTG_STATE_B_HOST; in omap_otg_irq()
783 isp->phy.otg->state = OTG_STATE_A_HOST; in omap_otg_irq()
787 isp->phy.otg->state = OTG_STATE_A_WAIT_BCON; in omap_otg_irq()
793 isp1301_defer_work(isp, WORK_HOST_RESUME); in omap_otg_irq()
804 check_state(isp, __func__); in omap_otg_irq()
810 static int isp1301_otg_init(struct isp1301 *isp) in isp1301_otg_init() argument
817 dump_regs(isp, __func__); in isp1301_otg_init()
832 update_otg1(isp, isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE)); in isp1301_otg_init()
833 update_otg2(isp, isp1301_get_u8(isp, ISP1301_OTG_STATUS)); in isp1301_otg_init()
835 check_state(isp, __func__); in isp1301_otg_init()
837 state_name(isp), __func__, omap_readl(OTG_CTRL)); in isp1301_otg_init()
872 static int otg_bind(struct isp1301 *isp) in otg_bind() argument
885 0, DRIVER_NAME, isp); in otg_bind()
894 static void otg_unbind(struct isp1301 *isp) in otg_unbind() argument
898 free_irq(otg_dev->resource[1].start, isp); in otg_unbind()
909 static void b_peripheral(struct isp1301 *isp) in b_peripheral() argument
916 usb_gadget_vbus_connect(isp->phy.otg->gadget); in b_peripheral()
919 enable_vbus_draw(isp, 8); in b_peripheral()
920 otg_update_isp(isp); in b_peripheral()
922 enable_vbus_draw(isp, 100); in b_peripheral()
924 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_DP_PULLUP); in b_peripheral()
925 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_DP_PULLDOWN); in b_peripheral()
926 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in b_peripheral()
928 dump_regs(isp, "2periph"); in b_peripheral()
932 static void isp_update_otg(struct isp1301 *isp, u8 stat) in isp_update_otg() argument
934 struct usb_otg *otg = isp->phy.otg; in isp_update_otg()
936 enum usb_otg_state state = isp->phy.otg->state; in isp_update_otg()
939 pr_debug("OTG: BDIS_ACON, %s\n", state_name(isp)); in isp_update_otg()
942 isp_stat = isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE); in isp_update_otg()
947 a_idle(isp, "idle"); in isp_update_otg()
950 enable_vbus_source(isp); in isp_update_otg()
959 isp->phy.otg->state = OTG_STATE_A_HOST; in isp_update_otg()
963 a_idle(isp, "vfell"); in isp_update_otg()
967 isp->phy.otg->state = OTG_STATE_A_VBUS_ERR; in isp_update_otg()
970 isp_bstat = isp1301_get_u8(isp, ISP1301_OTG_STATUS); in isp_update_otg()
982 a_idle(isp, "id"); in isp_update_otg()
984 isp1301_defer_work(isp, WORK_HOST_RESUME); in isp_update_otg()
996 isp->phy.otg->state = OTG_STATE_A_WAIT_VFALL; in isp_update_otg()
1006 host_suspend(isp); in isp_update_otg()
1007 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, in isp_update_otg()
1009 isp->phy.otg->state = OTG_STATE_B_IDLE; in isp_update_otg()
1018 isp_bstat = isp1301_get_u8(isp, ISP1301_OTG_STATUS); in isp_update_otg()
1020 switch (isp->phy.otg->state) { in isp_update_otg()
1026 enable_vbus_draw(isp, 0); in isp_update_otg()
1029 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, in isp_update_otg()
1031 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, in isp_update_otg()
1033 dump_regs(isp, __func__); in isp_update_otg()
1037 b_idle(isp, __func__); in isp_update_otg()
1044 update_otg1(isp, isp_stat); in isp_update_otg()
1045 update_otg2(isp, isp_bstat); in isp_update_otg()
1047 b_peripheral(isp); in isp_update_otg()
1055 state_name(isp)); in isp_update_otg()
1060 if (state != isp->phy.otg->state) in isp_update_otg()
1062 usb_otg_state_string(state), state_name(isp)); in isp_update_otg()
1068 update_otg1(isp, isp_stat); in isp_update_otg()
1069 update_otg2(isp, isp_bstat); in isp_update_otg()
1070 check_state(isp, __func__); in isp_update_otg()
1073 dump_regs(isp, "isp1301->otg"); in isp_update_otg()
1078 static u8 isp1301_clear_latch(struct isp1301 *isp) in isp1301_clear_latch() argument
1080 u8 latch = isp1301_get_u8(isp, ISP1301_INTERRUPT_LATCH); in isp1301_clear_latch()
1081 isp1301_clear_bits(isp, ISP1301_INTERRUPT_LATCH, latch); in isp1301_clear_latch()
1088 struct isp1301 *isp = container_of(work, struct isp1301, work); in isp1301_work() local
1092 isp->working = 1; in isp1301_work()
1094 stop = test_bit(WORK_STOP, &isp->todo); in isp1301_work()
1098 if (test_and_clear_bit(WORK_UPDATE_ISP, &isp->todo)) { in isp1301_work()
1099 otg_update_isp(isp); in isp1301_work()
1100 put_device(&isp->client->dev); in isp1301_work()
1104 if (test_and_clear_bit(WORK_UPDATE_OTG, &isp->todo)) { in isp1301_work()
1105 u8 stat = isp1301_clear_latch(isp); in isp1301_work()
1107 isp_update_otg(isp, stat); in isp1301_work()
1108 put_device(&isp->client->dev); in isp1301_work()
1111 if (test_and_clear_bit(WORK_HOST_RESUME, &isp->todo)) { in isp1301_work()
1118 switch (isp->phy.otg->state) { in isp1301_work()
1121 isp->phy.otg->state = OTG_STATE_A_HOST; in isp1301_work()
1130 isp->phy.otg->state = OTG_STATE_B_HOST; in isp1301_work()
1139 state_name(isp)); in isp1301_work()
1141 host_resume(isp); in isp1301_work()
1143 put_device(&isp->client->dev); in isp1301_work()
1146 if (test_and_clear_bit(WORK_TIMER, &isp->todo)) { in isp1301_work()
1148 dump_regs(isp, "timer"); in isp1301_work()
1150 mod_timer(&isp->timer, jiffies + TIMER_JIFFIES); in isp1301_work()
1152 put_device(&isp->client->dev); in isp1301_work()
1155 if (isp->todo) in isp1301_work()
1156 dev_vdbg(&isp->client->dev, in isp1301_work()
1158 isp->todo); in isp1301_work()
1160 dev_dbg(&isp->client->dev, "stop\n"); in isp1301_work()
1163 } while (isp->todo); in isp1301_work()
1164 isp->working = 0; in isp1301_work()
1167 static irqreturn_t isp1301_irq(int irq, void *isp) in isp1301_irq() argument
1169 isp1301_defer_work(isp, WORK_UPDATE_OTG); in isp1301_irq()
1175 struct isp1301 *isp = from_timer(isp, t, timer); in isp1301_timer() local
1177 isp1301_defer_work(isp, WORK_TIMER); in isp1301_timer()
1184 struct isp1301 *isp; in isp1301_release() local
1186 isp = dev_get_drvdata(dev); in isp1301_release()
1191 if (isp->i2c_release) in isp1301_release()
1192 isp->i2c_release(dev); in isp1301_release()
1193 kfree(isp->phy.otg); in isp1301_release()
1194 kfree (isp); in isp1301_release()
1201 struct isp1301 *isp; in isp1301_remove() local
1203 isp = i2c_get_clientdata(i2c); in isp1301_remove()
1205 isp1301_clear_bits(isp, ISP1301_INTERRUPT_FALLING, ~0); in isp1301_remove()
1206 isp1301_clear_bits(isp, ISP1301_INTERRUPT_RISING, ~0); in isp1301_remove()
1207 free_irq(i2c->irq, isp); in isp1301_remove()
1209 otg_unbind(isp); in isp1301_remove()
1214 set_bit(WORK_STOP, &isp->todo); in isp1301_remove()
1215 del_timer_sync(&isp->timer); in isp1301_remove()
1216 flush_work(&isp->work); in isp1301_remove()
1241 static int isp1301_otg_enable(struct isp1301 *isp) in isp1301_otg_enable() argument
1243 power_up(isp); in isp1301_otg_enable()
1244 isp1301_otg_init(isp); in isp1301_otg_enable()
1249 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, in isp1301_otg_enable()
1251 isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING, in isp1301_otg_enable()
1254 dev_info(&isp->client->dev, "ready for dual-role USB ...\n"); in isp1301_otg_enable()
1265 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_set_host() local
1267 if (isp != the_transceiver) in isp1301_set_host()
1272 power_down(isp); in isp1301_set_host()
1279 dev_dbg(&isp->client->dev, "registered host\n"); in isp1301_set_host()
1280 host_suspend(isp); in isp1301_set_host()
1282 return isp1301_otg_enable(isp); in isp1301_set_host()
1289 power_up(isp); in isp1301_set_host()
1292 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in isp1301_set_host()
1294 dev_info(&isp->client->dev, "A-Host sessions ok\n"); in isp1301_set_host()
1295 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, in isp1301_set_host()
1297 isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING, in isp1301_set_host()
1305 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_VBUS_DRV); in isp1301_set_host()
1307 dump_regs(isp, __func__); in isp1301_set_host()
1312 dev_dbg(&isp->client->dev, "host sessions not allowed\n"); in isp1301_set_host()
1321 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_set_peripheral() local
1323 if (isp != the_transceiver) in isp1301_set_peripheral()
1329 enable_vbus_draw(isp, 0); in isp1301_set_peripheral()
1332 power_down(isp); in isp1301_set_peripheral()
1338 dev_dbg(&isp->client->dev, "registered gadget\n"); in isp1301_set_peripheral()
1341 return isp1301_otg_enable(isp); in isp1301_set_peripheral()
1357 power_up(isp); in isp1301_set_peripheral()
1358 isp->phy.otg->state = OTG_STATE_B_IDLE; in isp1301_set_peripheral()
1361 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in isp1301_set_peripheral()
1363 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, in isp1301_set_peripheral()
1365 isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING, in isp1301_set_peripheral()
1367 dev_info(&isp->client->dev, "B-Peripheral sessions ok\n"); in isp1301_set_peripheral()
1368 dump_regs(isp, __func__); in isp1301_set_peripheral()
1374 if (isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE) & INTR_VBUS_VLD) in isp1301_set_peripheral()
1375 b_peripheral(isp); in isp1301_set_peripheral()
1380 dev_dbg(&isp->client->dev, "peripheral sessions not allowed\n"); in isp1301_set_peripheral()
1401 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_start_srp() local
1404 if (isp != the_transceiver || isp->phy.otg->state != OTG_STATE_B_IDLE) in isp1301_start_srp()
1414 isp->phy.otg->state = OTG_STATE_B_SRP_INIT; in isp1301_start_srp()
1416 pr_debug("otg: SRP, %s ... %06x\n", state_name(isp), in isp1301_start_srp()
1419 check_state(isp, __func__); in isp1301_start_srp()
1428 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_start_hnp() local
1431 if (isp != the_transceiver) in isp1301_start_hnp()
1442 switch (isp->phy.otg->state) { in isp1301_start_hnp()
1444 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in isp1301_start_hnp()
1450 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, in isp1301_start_hnp()
1467 state_name(isp), omap_readl(OTG_CTRL)); in isp1301_start_hnp()
1468 check_state(isp, __func__); in isp1301_start_hnp()
1482 struct isp1301 *isp; in isp1301_probe() local
1487 isp = kzalloc(sizeof *isp, GFP_KERNEL); in isp1301_probe()
1488 if (!isp) in isp1301_probe()
1491 isp->phy.otg = kzalloc(sizeof *isp->phy.otg, GFP_KERNEL); in isp1301_probe()
1492 if (!isp->phy.otg) { in isp1301_probe()
1493 kfree(isp); in isp1301_probe()
1497 INIT_WORK(&isp->work, isp1301_work); in isp1301_probe()
1498 timer_setup(&isp->timer, isp1301_timer, 0); in isp1301_probe()
1500 i2c_set_clientdata(i2c, isp); in isp1301_probe()
1501 isp->client = i2c; in isp1301_probe()
1504 status = isp1301_get_u16(isp, ISP1301_VENDOR_ID); in isp1301_probe()
1509 status = isp1301_get_u16(isp, ISP1301_PRODUCT_ID); in isp1301_probe()
1514 isp->i2c_release = i2c->dev.release; in isp1301_probe()
1523 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_MASK); in isp1301_probe()
1525 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_2, MC2_BI_DI); in isp1301_probe()
1526 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_2, ~MC2_BI_DI); in isp1301_probe()
1528 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, in isp1301_probe()
1530 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, in isp1301_probe()
1533 isp1301_clear_bits(isp, ISP1301_INTERRUPT_LATCH, ~0); in isp1301_probe()
1534 isp1301_clear_bits(isp, ISP1301_INTERRUPT_FALLING, ~0); in isp1301_probe()
1535 isp1301_clear_bits(isp, ISP1301_INTERRUPT_RISING, ~0); in isp1301_probe()
1538 status = otg_bind(isp); in isp1301_probe()
1547 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, in isp1301_probe()
1549 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_2, in isp1301_probe()
1556 isp->irq_type = IRQF_TRIGGER_FALLING; in isp1301_probe()
1560 isp->irq_type, DRIVER_NAME, isp); in isp1301_probe()
1567 isp->phy.dev = &i2c->dev; in isp1301_probe()
1568 isp->phy.label = DRIVER_NAME; in isp1301_probe()
1569 isp->phy.set_power = isp1301_set_power, in isp1301_probe()
1571 isp->phy.otg->usb_phy = &isp->phy; in isp1301_probe()
1572 isp->phy.otg->set_host = isp1301_set_host, in isp1301_probe()
1573 isp->phy.otg->set_peripheral = isp1301_set_peripheral, in isp1301_probe()
1574 isp->phy.otg->start_srp = isp1301_start_srp, in isp1301_probe()
1575 isp->phy.otg->start_hnp = isp1301_start_hnp, in isp1301_probe()
1577 enable_vbus_draw(isp, 0); in isp1301_probe()
1578 power_down(isp); in isp1301_probe()
1579 the_transceiver = isp; in isp1301_probe()
1582 update_otg1(isp, isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE)); in isp1301_probe()
1583 update_otg2(isp, isp1301_get_u8(isp, ISP1301_OTG_STATUS)); in isp1301_probe()
1586 dump_regs(isp, __func__); in isp1301_probe()
1589 mod_timer(&isp->timer, jiffies + TIMER_JIFFIES); in isp1301_probe()
1593 status = usb_add_phy(&isp->phy, USB_PHY_TYPE_USB2); in isp1301_probe()
1601 kfree(isp->phy.otg); in isp1301_probe()
1602 kfree(isp); in isp1301_probe()