Lines Matching refs:isp
111 static void enable_vbus_draw(struct isp1301 *isp, unsigned mA) in enable_vbus_draw() argument
120 static void enable_vbus_draw(struct isp1301 *isp, unsigned mA) in enable_vbus_draw() argument
130 static void enable_vbus_source(struct isp1301 *isp) in enable_vbus_source() argument
139 static inline void notresponding(struct isp1301 *isp) in notresponding() argument
152 isp1301_get_u8(struct isp1301 *isp, u8 reg) in isp1301_get_u8() argument
154 return i2c_smbus_read_byte_data(isp->client, reg + 0); in isp1301_get_u8()
158 isp1301_get_u16(struct isp1301 *isp, u8 reg) in isp1301_get_u16() argument
160 return i2c_smbus_read_word_data(isp->client, reg); in isp1301_get_u16()
164 isp1301_set_bits(struct isp1301 *isp, u8 reg, u8 bits) in isp1301_set_bits() argument
166 return i2c_smbus_write_byte_data(isp->client, reg + 0, bits); in isp1301_set_bits()
170 isp1301_clear_bits(struct isp1301 *isp, u8 reg, u8 bits) in isp1301_clear_bits() argument
172 return i2c_smbus_write_byte_data(isp->client, reg + 1, bits); in isp1301_clear_bits()
235 static inline const char *state_name(struct isp1301 *isp) in state_name() argument
237 return usb_otg_state_string(isp->phy.otg->state); in state_name()
250 static void power_down(struct isp1301 *isp) in power_down() argument
252 isp->phy.otg->state = OTG_STATE_UNDEFINED; in power_down()
255 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_SUSPEND); in power_down()
257 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_ID_PULLDOWN); in power_down()
258 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in power_down()
261 static void power_up(struct isp1301 *isp) in power_up() argument
264 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_SUSPEND); in power_up()
269 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in power_up()
274 static int host_suspend(struct isp1301 *isp) in host_suspend() argument
281 if (!isp->phy.otg->host) in host_suspend()
287 dev = isp->phy.otg->host->controller; in host_suspend()
292 static int host_resume(struct isp1301 *isp) in host_resume() argument
299 if (!isp->phy.otg->host) in host_resume()
302 dev = isp->phy.otg->host->controller; in host_resume()
307 static int gadget_suspend(struct isp1301 *isp) in gadget_suspend() argument
309 isp->phy.otg->gadget->b_hnp_enable = 0; in gadget_suspend()
310 isp->phy.otg->gadget->a_hnp_support = 0; in gadget_suspend()
311 isp->phy.otg->gadget->a_alt_hnp_support = 0; in gadget_suspend()
312 return usb_gadget_vbus_disconnect(isp->phy.otg->gadget); in gadget_suspend()
324 static void isp1301_defer_work(struct isp1301 *isp, int work) in isp1301_defer_work() argument
328 if (isp && !test_and_set_bit(work, &isp->todo)) { in isp1301_defer_work()
329 (void) get_device(&isp->client->dev); in isp1301_defer_work()
330 status = schedule_work(&isp->work); in isp1301_defer_work()
331 if (!status && !isp->working) in isp1301_defer_work()
332 dev_vdbg(&isp->client->dev, in isp1301_defer_work()
338 static void a_idle(struct isp1301 *isp, const char *tag) in a_idle() argument
342 if (isp->phy.otg->state == OTG_STATE_A_IDLE) in a_idle()
345 isp->phy.otg->default_a = 1; in a_idle()
346 if (isp->phy.otg->host) { in a_idle()
347 isp->phy.otg->host->is_b_host = 0; in a_idle()
348 host_suspend(isp); in a_idle()
350 if (isp->phy.otg->gadget) { in a_idle()
351 isp->phy.otg->gadget->is_a_peripheral = 1; in a_idle()
352 gadget_suspend(isp); in a_idle()
354 isp->phy.otg->state = OTG_STATE_A_IDLE; in a_idle()
357 isp->last_otg_ctrl = l; in a_idle()
358 pr_debug(" --> %s/%s\n", state_name(isp), tag); in a_idle()
362 static void b_idle(struct isp1301 *isp, const char *tag) in b_idle() argument
366 if (isp->phy.otg->state == OTG_STATE_B_IDLE) in b_idle()
369 isp->phy.otg->default_a = 0; in b_idle()
370 if (isp->phy.otg->host) { in b_idle()
371 isp->phy.otg->host->is_b_host = 1; in b_idle()
372 host_suspend(isp); in b_idle()
374 if (isp->phy.otg->gadget) { in b_idle()
375 isp->phy.otg->gadget->is_a_peripheral = 0; in b_idle()
376 gadget_suspend(isp); in b_idle()
378 isp->phy.otg->state = OTG_STATE_B_IDLE; in b_idle()
381 isp->last_otg_ctrl = l; in b_idle()
382 pr_debug(" --> %s/%s\n", state_name(isp), tag); in b_idle()
386 dump_regs(struct isp1301 *isp, const char *label) in dump_regs() argument
388 u8 ctrl = isp1301_get_u8(isp, ISP1301_OTG_CONTROL_1); in dump_regs()
389 u8 status = isp1301_get_u8(isp, ISP1301_OTG_STATUS); in dump_regs()
390 u8 src = isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE); in dump_regs()
393 omap_readl(OTG_CTRL), label, state_name(isp), in dump_regs()
412 static void check_state(struct isp1301 *isp, const char *tag) in check_state() argument
477 if (isp->phy.otg->state == state && !extra) in check_state()
480 usb_otg_state_string(state), fsm, state_name(isp), in check_state()
486 static inline void check_state(struct isp1301 *isp, const char *tag) { } in check_state() argument
491 static void update_otg1(struct isp1301 *isp, u8 int_src) in update_otg1() argument
501 else if (isp->phy.otg->state == OTG_STATE_A_WAIT_VFALL) { in update_otg1()
502 a_idle(isp, "vfall"); in update_otg1()
508 if (isp->phy.otg->state == OTG_STATE_B_IDLE in update_otg1()
509 || isp->phy.otg->state in update_otg1()
511 a_idle(isp, "init"); in update_otg1()
516 if (isp->phy.otg->state == OTG_STATE_A_IDLE in update_otg1()
517 || isp->phy.otg->state == OTG_STATE_UNDEFINED) { in update_otg1()
518 b_idle(isp, "init"); in update_otg1()
526 static void update_otg2(struct isp1301 *isp, u8 otg_status) in update_otg2() argument
541 static void otg_update_isp(struct isp1301 *isp) in otg_update_isp() argument
547 otg_change = otg_ctrl ^ isp->last_otg_ctrl; in otg_update_isp()
548 isp->last_otg_ctrl = otg_ctrl; in otg_update_isp()
551 switch (isp->phy.otg->state) { in otg_update_isp()
557 if (isp->phy.otg->gadget->b_hnp_enable) { in otg_update_isp()
558 isp->phy.otg->state = OTG_STATE_B_WAIT_ACON; in otg_update_isp()
585 if (!(isp->phy.otg->host)) in otg_update_isp()
588 switch (isp->phy.otg->state) { in otg_update_isp()
595 notresponding(isp); in otg_update_isp()
599 isp->phy.otg->state = OTG_STATE_A_WAIT_VFALL; in otg_update_isp()
608 isp->phy.otg->state = OTG_STATE_A_WAIT_VRISE; in otg_update_isp()
621 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, set); in otg_update_isp()
622 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, clr); in otg_update_isp()
628 switch (isp->phy.otg->state) { in otg_update_isp()
632 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in otg_update_isp()
638 isp->phy.otg->state = OTG_STATE_A_PERIPHERAL; in otg_update_isp()
649 check_state(isp, __func__); in otg_update_isp()
650 dump_regs(isp, "otg->isp1301"); in otg_update_isp()
658 struct isp1301 *isp = _isp; in omap_otg_irq() local
659 struct usb_otg *otg = isp->phy.otg; in omap_otg_irq()
664 isp1301_defer_work(isp, WORK_UPDATE_ISP); in omap_otg_irq()
670 notresponding(isp); in omap_otg_irq()
676 if (isp->phy.otg->state == OTG_STATE_B_SRP_INIT) in omap_otg_irq()
677 b_idle(isp, "srp_timeout"); in omap_otg_irq()
685 state_name(isp), omap_readl(OTG_CTRL)); in omap_otg_irq()
686 notresponding(isp); in omap_otg_irq()
694 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in omap_otg_irq()
703 state_name(isp), omap_readl(OTG_CTRL)); in omap_otg_irq()
705 isp1301_defer_work(isp, WORK_UPDATE_OTG); in omap_otg_irq()
706 switch (isp->phy.otg->state) { in omap_otg_irq()
710 isp1301_defer_work(isp, WORK_HOST_RESUME); in omap_otg_irq()
731 state_name(isp), otg_ctrl); in omap_otg_irq()
732 notresponding(isp); in omap_otg_irq()
737 isp->phy.otg->state = OTG_STATE_A_WAIT_VFALL; in omap_otg_irq()
746 state_name(isp), otg_irq, otg_ctrl); in omap_otg_irq()
751 isp->phy.otg->state = OTG_STATE_A_VBUS_ERR; in omap_otg_irq()
764 state_name(isp), in omap_otg_irq()
768 isp1301_defer_work(isp, WORK_UPDATE_ISP); in omap_otg_irq()
772 switch (isp->phy.otg->state) { in omap_otg_irq()
774 b_idle(isp, __func__); in omap_otg_irq()
779 isp1301_defer_work(isp, WORK_UPDATE_ISP); in omap_otg_irq()
789 switch (isp->phy.otg->state) { in omap_otg_irq()
791 isp->phy.otg->state = OTG_STATE_B_HOST; in omap_otg_irq()
796 isp->phy.otg->state = OTG_STATE_A_HOST; in omap_otg_irq()
800 isp->phy.otg->state = OTG_STATE_A_WAIT_BCON; in omap_otg_irq()
806 isp1301_defer_work(isp, WORK_HOST_RESUME); in omap_otg_irq()
817 check_state(isp, __func__); in omap_otg_irq()
823 static int isp1301_otg_init(struct isp1301 *isp) in isp1301_otg_init() argument
830 dump_regs(isp, __func__); in isp1301_otg_init()
845 update_otg1(isp, isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE)); in isp1301_otg_init()
846 update_otg2(isp, isp1301_get_u8(isp, ISP1301_OTG_STATUS)); in isp1301_otg_init()
848 check_state(isp, __func__); in isp1301_otg_init()
850 state_name(isp), __func__, omap_readl(OTG_CTRL)); in isp1301_otg_init()
885 static int otg_bind(struct isp1301 *isp) in otg_bind() argument
898 0, DRIVER_NAME, isp); in otg_bind()
907 static void otg_unbind(struct isp1301 *isp) in otg_unbind() argument
911 free_irq(otg_dev->resource[1].start, isp); in otg_unbind()
922 static void b_peripheral(struct isp1301 *isp) in b_peripheral() argument
929 usb_gadget_vbus_connect(isp->phy.otg->gadget); in b_peripheral()
932 enable_vbus_draw(isp, 8); in b_peripheral()
933 otg_update_isp(isp); in b_peripheral()
935 enable_vbus_draw(isp, 100); in b_peripheral()
937 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_DP_PULLUP); in b_peripheral()
938 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_DP_PULLDOWN); in b_peripheral()
939 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in b_peripheral()
941 dump_regs(isp, "2periph"); in b_peripheral()
945 static void isp_update_otg(struct isp1301 *isp, u8 stat) in isp_update_otg() argument
947 struct usb_otg *otg = isp->phy.otg; in isp_update_otg()
949 enum usb_otg_state state = isp->phy.otg->state; in isp_update_otg()
952 pr_debug("OTG: BDIS_ACON, %s\n", state_name(isp)); in isp_update_otg()
955 isp_stat = isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE); in isp_update_otg()
960 a_idle(isp, "idle"); in isp_update_otg()
963 enable_vbus_source(isp); in isp_update_otg()
972 isp->phy.otg->state = OTG_STATE_A_HOST; in isp_update_otg()
976 a_idle(isp, "vfell"); in isp_update_otg()
980 isp->phy.otg->state = OTG_STATE_A_VBUS_ERR; in isp_update_otg()
983 isp_bstat = isp1301_get_u8(isp, ISP1301_OTG_STATUS); in isp_update_otg()
995 a_idle(isp, "id"); in isp_update_otg()
997 isp1301_defer_work(isp, WORK_HOST_RESUME); in isp_update_otg()
1009 isp->phy.otg->state = OTG_STATE_A_WAIT_VFALL; in isp_update_otg()
1019 host_suspend(isp); in isp_update_otg()
1020 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, in isp_update_otg()
1022 isp->phy.otg->state = OTG_STATE_B_IDLE; in isp_update_otg()
1031 isp_bstat = isp1301_get_u8(isp, ISP1301_OTG_STATUS); in isp_update_otg()
1033 switch (isp->phy.otg->state) { in isp_update_otg()
1039 enable_vbus_draw(isp, 0); in isp_update_otg()
1042 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, in isp_update_otg()
1044 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, in isp_update_otg()
1046 dump_regs(isp, __func__); in isp_update_otg()
1050 b_idle(isp, __func__); in isp_update_otg()
1057 update_otg1(isp, isp_stat); in isp_update_otg()
1058 update_otg2(isp, isp_bstat); in isp_update_otg()
1060 b_peripheral(isp); in isp_update_otg()
1068 state_name(isp)); in isp_update_otg()
1073 if (state != isp->phy.otg->state) in isp_update_otg()
1075 usb_otg_state_string(state), state_name(isp)); in isp_update_otg()
1081 update_otg1(isp, isp_stat); in isp_update_otg()
1082 update_otg2(isp, isp_bstat); in isp_update_otg()
1083 check_state(isp, __func__); in isp_update_otg()
1086 dump_regs(isp, "isp1301->otg"); in isp_update_otg()
1091 static u8 isp1301_clear_latch(struct isp1301 *isp) in isp1301_clear_latch() argument
1093 u8 latch = isp1301_get_u8(isp, ISP1301_INTERRUPT_LATCH); in isp1301_clear_latch()
1094 isp1301_clear_bits(isp, ISP1301_INTERRUPT_LATCH, latch); in isp1301_clear_latch()
1101 struct isp1301 *isp = container_of(work, struct isp1301, work); in isp1301_work() local
1105 isp->working = 1; in isp1301_work()
1107 stop = test_bit(WORK_STOP, &isp->todo); in isp1301_work()
1111 if (test_and_clear_bit(WORK_UPDATE_ISP, &isp->todo)) { in isp1301_work()
1112 otg_update_isp(isp); in isp1301_work()
1113 put_device(&isp->client->dev); in isp1301_work()
1117 if (test_and_clear_bit(WORK_UPDATE_OTG, &isp->todo)) { in isp1301_work()
1118 u8 stat = isp1301_clear_latch(isp); in isp1301_work()
1120 isp_update_otg(isp, stat); in isp1301_work()
1121 put_device(&isp->client->dev); in isp1301_work()
1124 if (test_and_clear_bit(WORK_HOST_RESUME, &isp->todo)) { in isp1301_work()
1131 switch (isp->phy.otg->state) { in isp1301_work()
1134 isp->phy.otg->state = OTG_STATE_A_HOST; in isp1301_work()
1143 isp->phy.otg->state = OTG_STATE_B_HOST; in isp1301_work()
1152 state_name(isp)); in isp1301_work()
1154 host_resume(isp); in isp1301_work()
1156 put_device(&isp->client->dev); in isp1301_work()
1159 if (test_and_clear_bit(WORK_TIMER, &isp->todo)) { in isp1301_work()
1161 dump_regs(isp, "timer"); in isp1301_work()
1163 mod_timer(&isp->timer, jiffies + TIMER_JIFFIES); in isp1301_work()
1165 put_device(&isp->client->dev); in isp1301_work()
1168 if (isp->todo) in isp1301_work()
1169 dev_vdbg(&isp->client->dev, in isp1301_work()
1171 isp->todo); in isp1301_work()
1173 dev_dbg(&isp->client->dev, "stop\n"); in isp1301_work()
1176 } while (isp->todo); in isp1301_work()
1177 isp->working = 0; in isp1301_work()
1180 static irqreturn_t isp1301_irq(int irq, void *isp) in isp1301_irq() argument
1182 isp1301_defer_work(isp, WORK_UPDATE_OTG); in isp1301_irq()
1195 struct isp1301 *isp; in isp1301_release() local
1197 isp = dev_get_drvdata(dev); in isp1301_release()
1202 if (isp->i2c_release) in isp1301_release()
1203 isp->i2c_release(dev); in isp1301_release()
1204 kfree(isp->phy.otg); in isp1301_release()
1205 kfree (isp); in isp1301_release()
1212 struct isp1301 *isp; in isp1301_remove() local
1214 isp = i2c_get_clientdata(i2c); in isp1301_remove()
1216 isp1301_clear_bits(isp, ISP1301_INTERRUPT_FALLING, ~0); in isp1301_remove()
1217 isp1301_clear_bits(isp, ISP1301_INTERRUPT_RISING, ~0); in isp1301_remove()
1218 free_irq(i2c->irq, isp); in isp1301_remove()
1220 otg_unbind(isp); in isp1301_remove()
1225 isp->timer.data = 0; in isp1301_remove()
1226 set_bit(WORK_STOP, &isp->todo); in isp1301_remove()
1227 del_timer_sync(&isp->timer); in isp1301_remove()
1228 flush_work(&isp->work); in isp1301_remove()
1253 static int isp1301_otg_enable(struct isp1301 *isp) in isp1301_otg_enable() argument
1255 power_up(isp); in isp1301_otg_enable()
1256 isp1301_otg_init(isp); in isp1301_otg_enable()
1261 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, in isp1301_otg_enable()
1263 isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING, in isp1301_otg_enable()
1266 dev_info(&isp->client->dev, "ready for dual-role USB ...\n"); in isp1301_otg_enable()
1277 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_set_host() local
1279 if (isp != the_transceiver) in isp1301_set_host()
1284 power_down(isp); in isp1301_set_host()
1291 dev_dbg(&isp->client->dev, "registered host\n"); in isp1301_set_host()
1292 host_suspend(isp); in isp1301_set_host()
1294 return isp1301_otg_enable(isp); in isp1301_set_host()
1301 power_up(isp); in isp1301_set_host()
1304 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in isp1301_set_host()
1306 dev_info(&isp->client->dev, "A-Host sessions ok\n"); in isp1301_set_host()
1307 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, in isp1301_set_host()
1309 isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING, in isp1301_set_host()
1317 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_VBUS_DRV); in isp1301_set_host()
1319 dump_regs(isp, __func__); in isp1301_set_host()
1324 dev_dbg(&isp->client->dev, "host sessions not allowed\n"); in isp1301_set_host()
1333 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_set_peripheral() local
1335 if (isp != the_transceiver) in isp1301_set_peripheral()
1341 enable_vbus_draw(isp, 0); in isp1301_set_peripheral()
1344 power_down(isp); in isp1301_set_peripheral()
1350 dev_dbg(&isp->client->dev, "registered gadget\n"); in isp1301_set_peripheral()
1353 return isp1301_otg_enable(isp); in isp1301_set_peripheral()
1369 power_up(isp); in isp1301_set_peripheral()
1370 isp->phy.otg->state = OTG_STATE_B_IDLE; in isp1301_set_peripheral()
1373 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); in isp1301_set_peripheral()
1375 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, in isp1301_set_peripheral()
1377 isp1301_set_bits(isp, ISP1301_INTERRUPT_FALLING, in isp1301_set_peripheral()
1379 dev_info(&isp->client->dev, "B-Peripheral sessions ok\n"); in isp1301_set_peripheral()
1380 dump_regs(isp, __func__); in isp1301_set_peripheral()
1386 if (isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE) & INTR_VBUS_VLD) in isp1301_set_peripheral()
1387 b_peripheral(isp); in isp1301_set_peripheral()
1392 dev_dbg(&isp->client->dev, "peripheral sessions not allowed\n"); in isp1301_set_peripheral()
1413 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_start_srp() local
1416 if (isp != the_transceiver || isp->phy.otg->state != OTG_STATE_B_IDLE) in isp1301_start_srp()
1426 isp->phy.otg->state = OTG_STATE_B_SRP_INIT; in isp1301_start_srp()
1428 pr_debug("otg: SRP, %s ... %06x\n", state_name(isp), in isp1301_start_srp()
1431 check_state(isp, __func__); in isp1301_start_srp()
1440 struct isp1301 *isp = container_of(otg->usb_phy, struct isp1301, phy); in isp1301_start_hnp() local
1443 if (isp != the_transceiver) in isp1301_start_hnp()
1454 switch (isp->phy.otg->state) { in isp1301_start_hnp()
1456 isp->phy.otg->state = OTG_STATE_B_PERIPHERAL; in isp1301_start_hnp()
1462 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, in isp1301_start_hnp()
1479 state_name(isp), omap_readl(OTG_CTRL)); in isp1301_start_hnp()
1480 check_state(isp, __func__); in isp1301_start_hnp()
1494 struct isp1301 *isp; in isp1301_probe() local
1499 isp = kzalloc(sizeof *isp, GFP_KERNEL); in isp1301_probe()
1500 if (!isp) in isp1301_probe()
1503 isp->phy.otg = kzalloc(sizeof *isp->phy.otg, GFP_KERNEL); in isp1301_probe()
1504 if (!isp->phy.otg) { in isp1301_probe()
1505 kfree(isp); in isp1301_probe()
1509 INIT_WORK(&isp->work, isp1301_work); in isp1301_probe()
1510 init_timer(&isp->timer); in isp1301_probe()
1511 isp->timer.function = isp1301_timer; in isp1301_probe()
1512 isp->timer.data = (unsigned long) isp; in isp1301_probe()
1514 i2c_set_clientdata(i2c, isp); in isp1301_probe()
1515 isp->client = i2c; in isp1301_probe()
1518 status = isp1301_get_u16(isp, ISP1301_VENDOR_ID); in isp1301_probe()
1523 status = isp1301_get_u16(isp, ISP1301_PRODUCT_ID); in isp1301_probe()
1528 isp->i2c_release = i2c->dev.release; in isp1301_probe()
1537 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_MASK); in isp1301_probe()
1539 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_2, MC2_BI_DI); in isp1301_probe()
1540 isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_2, ~MC2_BI_DI); in isp1301_probe()
1542 isp1301_set_bits(isp, ISP1301_OTG_CONTROL_1, in isp1301_probe()
1544 isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, in isp1301_probe()
1547 isp1301_clear_bits(isp, ISP1301_INTERRUPT_LATCH, ~0); in isp1301_probe()
1548 isp1301_clear_bits(isp, ISP1301_INTERRUPT_FALLING, ~0); in isp1301_probe()
1549 isp1301_clear_bits(isp, ISP1301_INTERRUPT_RISING, ~0); in isp1301_probe()
1552 status = otg_bind(isp); in isp1301_probe()
1561 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, in isp1301_probe()
1563 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_2, in isp1301_probe()
1570 isp->irq_type = IRQF_TRIGGER_FALLING; in isp1301_probe()
1574 isp->irq_type, DRIVER_NAME, isp); in isp1301_probe()
1581 isp->phy.dev = &i2c->dev; in isp1301_probe()
1582 isp->phy.label = DRIVER_NAME; in isp1301_probe()
1583 isp->phy.set_power = isp1301_set_power, in isp1301_probe()
1585 isp->phy.otg->usb_phy = &isp->phy; in isp1301_probe()
1586 isp->phy.otg->set_host = isp1301_set_host, in isp1301_probe()
1587 isp->phy.otg->set_peripheral = isp1301_set_peripheral, in isp1301_probe()
1588 isp->phy.otg->start_srp = isp1301_start_srp, in isp1301_probe()
1589 isp->phy.otg->start_hnp = isp1301_start_hnp, in isp1301_probe()
1591 enable_vbus_draw(isp, 0); in isp1301_probe()
1592 power_down(isp); in isp1301_probe()
1593 the_transceiver = isp; in isp1301_probe()
1596 update_otg1(isp, isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE)); in isp1301_probe()
1597 update_otg2(isp, isp1301_get_u8(isp, ISP1301_OTG_STATUS)); in isp1301_probe()
1600 dump_regs(isp, __func__); in isp1301_probe()
1603 mod_timer(&isp->timer, jiffies + TIMER_JIFFIES); in isp1301_probe()
1607 status = usb_add_phy(&isp->phy, USB_PHY_TYPE_USB2); in isp1301_probe()
1615 kfree(isp->phy.otg); in isp1301_probe()
1616 kfree(isp); in isp1301_probe()