summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomer Shalev <shalev.tomer@gmail.com>2009-10-01 05:40:20 +0000
committerTomer Shalev <shalev.tomer@gmail.com>2009-10-01 05:40:20 +0000
commit9b2f4c3a65e99f9425603199a95f20aa2486c03c (patch)
tree823b9311e09fb81ab4260cef6963418c1cef379b
parent4221a7f22f4cf75f229fa47b6ec43c99c98044d5 (diff)
downloadrockbox-9b2f4c3a65e99f9425603199a95f20aa2486c03c.tar.gz
rockbox-9b2f4c3a65e99f9425603199a95f20aa2486c03c.zip
FS#10226 - isp1583.c code cosmetics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22866 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/isp1583.c136
1 files changed, 71 insertions, 65 deletions
diff --git a/firmware/drivers/isp1583.c b/firmware/drivers/isp1583.c
index fd95111779..26d638171c 100644
--- a/firmware/drivers/isp1583.c
+++ b/firmware/drivers/isp1583.c
@@ -19,7 +19,7 @@
19 * KIND, either express or implied. 19 * KIND, either express or implied.
20 * 20 *
21 ****************************************************************************/ 21 ****************************************************************************/
22 22
23#include "config.h" 23#include "config.h"
24#include "usb_ch9.h" 24#include "usb_ch9.h"
25#include "usb_drv.h" 25#include "usb_drv.h"
@@ -92,8 +92,8 @@ static inline void usb_select_endpoint(int idx)
92 /* Select the endpoint */ 92 /* Select the endpoint */
93 ISP1583_DFLOW_EPINDEX = idx; 93 ISP1583_DFLOW_EPINDEX = idx;
94 /* The delay time from the Write Endpoint Index register to the Read Data Port register must be at least 190 ns. 94 /* The delay time from the Write Endpoint Index register to the Read Data Port register must be at least 190 ns.
95 * The delay time from the Write Endpoint Index register to the Write Data Port register must be at least 100 ns. 95 * The delay time from the Write Endpoint Index register to the Write Data Port register must be at least 100 ns.
96 */ 96 */
97 NOP; 97 NOP;
98} 98}
99 99
@@ -102,26 +102,26 @@ static inline void usb_select_setup_endpoint(void)
102 /* Select the endpoint */ 102 /* Select the endpoint */
103 ISP1583_DFLOW_EPINDEX = DFLOW_EPINDEX_EP0SETUP; 103 ISP1583_DFLOW_EPINDEX = DFLOW_EPINDEX_EP0SETUP;
104 /* The delay time from the Write Endpoint Index register to the Read Data Port register must be at least 190 ns. 104 /* The delay time from the Write Endpoint Index register to the Read Data Port register must be at least 190 ns.
105 * The delay time from the Write Endpoint Index register to the Write Data Port register must be at least 100 ns. 105 * The delay time from the Write Endpoint Index register to the Write Data Port register must be at least 100 ns.
106 */ 106 */
107 NOP; 107 NOP;
108} 108}
109 109
110static void usb_setup_endpoint(int idx, int max_pkt_size, int type) 110static void usb_setup_endpoint(int idx, int max_pkt_size, int type)
111{ 111{
112 if(epidx_n(idx)!=0) 112 if(epidx_n(idx)!=EP_CONTROL)
113 { 113 {
114 usb_select_endpoint(idx); 114 usb_select_endpoint(idx);
115 ISP1583_DFLOW_MAXPKSZ = max_pkt_size & 0x7FF; 115 ISP1583_DFLOW_MAXPKSZ = max_pkt_size & 0x7FF;
116 ISP1583_DFLOW_EPTYPE = (DFLOW_EPTYPE_NOEMPKT | DFLOW_EPTYPE_DBLBUF | (type & 0x3)); 116 ISP1583_DFLOW_EPTYPE = (DFLOW_EPTYPE_NOEMPKT | DFLOW_EPTYPE_DBLBUF | (type & 0x3));
117 117
118 /* clear buffer ... */ 118 /* clear buffer ... */
119 ISP1583_DFLOW_CTRLFUN |= DFLOW_CTRLFUN_CLBUF; 119 ISP1583_DFLOW_CTRLFUN |= DFLOW_CTRLFUN_CLBUF;
120 /* ... twice because of double buffering */ 120 /* ... twice because of double buffering */
121 usb_select_endpoint(idx); 121 usb_select_endpoint(idx);
122 ISP1583_DFLOW_CTRLFUN |= DFLOW_CTRLFUN_CLBUF; 122 ISP1583_DFLOW_CTRLFUN |= DFLOW_CTRLFUN_CLBUF;
123 } 123 }
124 124
125 struct usb_endpoint *ep; 125 struct usb_endpoint *ep;
126 ep = &(endpoints[epidx_n(idx)]); 126 ep = &(endpoints[epidx_n(idx)]);
127 ep->halt[epidx_dir(idx)] = 0; 127 ep->halt[epidx_dir(idx)] = 0;
@@ -135,7 +135,7 @@ static void usb_setup_endpoint(int idx, int max_pkt_size, int type)
135 135
136static void usb_enable_endpoint(int idx) 136static void usb_enable_endpoint(int idx)
137{ 137{
138 if(epidx_n(idx)!=0) 138 if(epidx_n(idx)!=EP_CONTROL)
139 { 139 {
140 usb_select_endpoint(idx); 140 usb_select_endpoint(idx);
141 /* Enable interrupt */ 141 /* Enable interrupt */
@@ -143,7 +143,7 @@ static void usb_enable_endpoint(int idx)
143 /* Enable endpoint */ 143 /* Enable endpoint */
144 ISP1583_DFLOW_EPTYPE |= DFLOW_EPTYPE_ENABLE; 144 ISP1583_DFLOW_EPTYPE |= DFLOW_EPTYPE_ENABLE;
145 } 145 }
146 146
147 endpoints[epidx_n(idx)].enabled[epidx_dir(idx)] = 1; 147 endpoints[epidx_n(idx)].enabled[epidx_dir(idx)] = 1;
148} 148}
149/* 149/*
@@ -152,7 +152,7 @@ static void usb_disable_endpoint(int idx, bool set_struct)
152 usb_select_endpoint(idx); 152 usb_select_endpoint(idx);
153 ISP1583_DFLOW_EPTYPE &= ~DFLOW_EPTYPE_ENABLE; 153 ISP1583_DFLOW_EPTYPE &= ~DFLOW_EPTYPE_ENABLE;
154 bc_int_value(&ISP1583_INIT_INTEN_A, &ISP1583_INIT_INTEN_B, ISP1583_INIT_INTEN_READ, 1 << (10 + idx)); 154 bc_int_value(&ISP1583_INIT_INTEN_A, &ISP1583_INIT_INTEN_B, ISP1583_INIT_INTEN_READ, 1 << (10 + idx));
155 155
156 if(set_struct) 156 if(set_struct)
157 endpoints[epidx_n(idx)].enabled[epidx_dir(idx)] = 0; 157 endpoints[epidx_n(idx)].enabled[epidx_dir(idx)] = 0;
158} 158}
@@ -197,7 +197,7 @@ static int usb_receive(int n)
197 len = usb_get_packet(endpoints[n].in_buf + endpoints[n].in_ptr, 197 len = usb_get_packet(endpoints[n].in_buf + endpoints[n].in_ptr,
198 endpoints[n].in_max_len - endpoints[n].in_ptr); 198 endpoints[n].in_max_len - endpoints[n].in_ptr);
199 endpoints[n].in_ptr += len; 199 endpoints[n].in_ptr += len;
200 200
201 if (endpoints[n].in_ptr >= endpoints[n].in_min_len) 201 if (endpoints[n].in_ptr >= endpoints[n].in_min_len)
202 { 202 {
203 endpoints[n].in_min_len = -1; 203 endpoints[n].in_min_len = -1;
@@ -242,22 +242,22 @@ static int usb_send(int n)
242 logf("ALREADY SENT TO EP!"); 242 logf("ALREADY SENT TO EP!");
243 return -1; 243 return -1;
244 } 244 }
245 245
246 if (usb_out_buffer_full(n)) 246 if (usb_out_buffer_full(n))
247 { 247 {
248 logf("BUFFER FULL!"); 248 logf("BUFFER FULL!");
249 return -1; 249 return -1;
250 } 250 }
251 251
252 usb_select_endpoint(ep_index(n, DIR_TX)); 252 usb_select_endpoint(ep_index(n, DIR_TX));
253 max_pkt_size = endpoints[n].max_pkt_size[DIR_TX]; 253 max_pkt_size = endpoints[n].max_pkt_size[DIR_TX];
254 len = endpoints[n].out_len - endpoints[n].out_ptr; 254 len = endpoints[n].out_len - endpoints[n].out_ptr;
255 if (len > max_pkt_size) 255 if (len > max_pkt_size)
256 len = max_pkt_size; 256 len = max_pkt_size;
257 257
258 if(len < max_pkt_size) 258 if(len < max_pkt_size)
259 ISP1583_DFLOW_BUFLEN = len; 259 ISP1583_DFLOW_BUFLEN = len;
260 260
261 p = endpoints[n].out_buf + endpoints[n].out_ptr; 261 p = endpoints[n].out_buf + endpoints[n].out_ptr;
262 i = 0; 262 i = 0;
263 while (len - i >= 2) 263 while (len - i >= 2)
@@ -276,7 +276,7 @@ static int usb_send(int n)
276*/ 276*/
277 if (endpoints[n].out_ptr == endpoints[n].out_len) 277 if (endpoints[n].out_ptr == endpoints[n].out_len)
278 endpoints[n].out_ptr = -1; 278 endpoints[n].out_ptr = -1;
279 279
280 logf("send_end"); 280 logf("send_end");
281 return 0; 281 return 0;
282} 282}
@@ -312,7 +312,7 @@ static void usb_status_ack(int ep, int dir)
312 usb_select_setup_endpoint(); 312 usb_select_setup_endpoint();
313 else 313 else
314 usb_select_endpoint(ep_index(ep, dir)); 314 usb_select_endpoint(ep_index(ep, dir));
315 315
316 ISP1583_DFLOW_CTRLFUN |= DFLOW_CTRLFUN_STATUS; 316 ISP1583_DFLOW_CTRLFUN |= DFLOW_CTRLFUN_STATUS;
317} 317}
318 318
@@ -336,12 +336,12 @@ static void usb_handle_setup_rx(void)
336 } 336 }
337 else 337 else
338 { 338 {
339 usb_drv_stall(0, true, false); 339 usb_drv_stall(EP_CONTROL, true, false);
340 usb_drv_stall(0, true, true); 340 usb_drv_stall(EP_CONTROL, true, true);
341 logf("usb_handle_setup_rx() failed"); 341 logf("usb_handle_setup_rx() failed");
342 return; 342 return;
343 } 343 }
344 344
345 logf("usb_handle_setup_rx(): %02x %02x %02x %02x %02x %02x %02x %02x", setup_pkt_buf[0], setup_pkt_buf[1], setup_pkt_buf[2], setup_pkt_buf[3], setup_pkt_buf[4], setup_pkt_buf[5], setup_pkt_buf[6], setup_pkt_buf[7]); 345 logf("usb_handle_setup_rx(): %02x %02x %02x %02x %02x %02x %02x %02x", setup_pkt_buf[0], setup_pkt_buf[1], setup_pkt_buf[2], setup_pkt_buf[3], setup_pkt_buf[4], setup_pkt_buf[5], setup_pkt_buf[6], setup_pkt_buf[7]);
346} 346}
347 347
@@ -369,25 +369,31 @@ bool usb_drv_powered(void)
369 369
370static void setup_endpoints(void) 370static void setup_endpoints(void)
371{ 371{
372 usb_setup_endpoint(ep_index(0, DIR_RX), 64, 0);
373 usb_setup_endpoint(ep_index(0, DIR_TX), 64, 0);
374
375 int i; 372 int i;
373 int max_pkt_size = (high_speed_mode ? 512 : 64);
374
375 usb_setup_endpoint(ep_index(EP_CONTROL, DIR_RX), 64,
376 USB_ENDPOINT_XFER_CONTROL);
377 usb_setup_endpoint(ep_index(EP_CONTROL, DIR_TX), 64,
378 USB_ENDPOINT_XFER_CONTROL);
379
376 for(i = 1; i < USB_NUM_ENDPOINTS-1; i++) 380 for(i = 1; i < USB_NUM_ENDPOINTS-1; i++)
377 { 381 {
378 usb_setup_endpoint(ep_index(i, DIR_RX), (high_speed_mode ? 512 : 64), 2); /* 2 = TYPE_BULK */ 382 usb_setup_endpoint(ep_index(i, DIR_RX), max_pkt_size,
379 usb_setup_endpoint(ep_index(i, DIR_TX), (high_speed_mode ? 512 : 64), 2); 383 USB_ENDPOINT_XFER_BULK);
384 usb_setup_endpoint(ep_index(i, DIR_TX), max_pkt_size,
385 USB_ENDPOINT_XFER_BULK);
380 } 386 }
381 387
382 usb_enable_endpoint(ep_index(0, DIR_RX)); 388 usb_enable_endpoint(ep_index(EP_CONTROL, DIR_RX));
383 usb_enable_endpoint(ep_index(0, DIR_TX)); 389 usb_enable_endpoint(ep_index(EP_CONTROL, DIR_TX));
384 390
385 for (i = 1; i < USB_NUM_ENDPOINTS-1; i++) 391 for (i = 1; i < USB_NUM_ENDPOINTS-1; i++)
386 { 392 {
387 usb_enable_endpoint(ep_index(i, DIR_RX)); 393 usb_enable_endpoint(ep_index(i, DIR_RX));
388 usb_enable_endpoint(ep_index(i, DIR_TX)); 394 usb_enable_endpoint(ep_index(i, DIR_TX));
389 } 395 }
390 396
391 ZVM_SPECIFIC; 397 ZVM_SPECIFIC;
392} 398}
393 399
@@ -414,45 +420,45 @@ void usb_drv_init(void)
414 sleep(10); 420 sleep(10);
415 /* Enable CLKAON & GLINTENA */ 421 /* Enable CLKAON & GLINTENA */
416 ISP1583_INIT_MODE = STANDARD_INIT_MODE; 422 ISP1583_INIT_MODE = STANDARD_INIT_MODE;
417 423
418 /* Disable all OTG functions */ 424 /* Disable all OTG functions */
419 ISP1583_INIT_OTG = 0; 425 ISP1583_INIT_OTG = 0;
420 426
421 #ifdef DEBUG 427#ifdef DEBUG
422 logf("BUS_CONF/DA0:%d MODE0/DA1: %d MODE1: %d", (bool)(ISP1583_INIT_MODE & INIT_MODE_TEST0), (bool)(ISP1583_INIT_MODE & INIT_MODE_TEST1), (bool)(ISP1583_INIT_MODE & INIT_MODE_TEST2)); 428 logf("BUS_CONF/DA0:%d MODE0/DA1: %d MODE1: %d", (bool)(ISP1583_INIT_MODE & INIT_MODE_TEST0), (bool)(ISP1583_INIT_MODE & INIT_MODE_TEST1), (bool)(ISP1583_INIT_MODE & INIT_MODE_TEST2));
423 logf("Chip ID: 0x%x", ISP1583_GEN_CHIPID); 429 logf("Chip ID: 0x%x", ISP1583_GEN_CHIPID);
424 //logf("INV0: 0x% IRQEDGE: 0x%x IRQPORT: 0x%x", IO_GIO_INV0, IO_GIO_IRQEDGE, IO_GIO_IRQPORT); 430 //logf("INV0: 0x% IRQEDGE: 0x%x IRQPORT: 0x%x", IO_GIO_INV0, IO_GIO_IRQEDGE, IO_GIO_IRQPORT);
425 #endif 431#endif
426 432
427 /*Set interrupt generation to target-specific mode + 433 /*Set interrupt generation to target-specific mode +
428 * Set the control pipe to ACK only interrupt + 434 * Set the control pipe to ACK only interrupt +
429 * Set the IN pipe to ACK only interrupt + 435 * Set the IN pipe to ACK only interrupt +
430 * Set OUT pipe to ACK and NYET interrupt 436 * Set OUT pipe to ACK and NYET interrupt
431 */ 437 */
432 438
433 ISP1583_INIT_INTCONF = 0x54 | INT_CONF_TARGET; 439 ISP1583_INIT_INTCONF = 0x54 | INT_CONF_TARGET;
434 /* Clear all interrupts */ 440 /* Clear all interrupts */
435 set_int_value(ISP1583_GEN_INT_A, ISP1583_GEN_INT_B, 0xFFFFFFFF); 441 set_int_value(ISP1583_GEN_INT_A, ISP1583_GEN_INT_B, 0xFFFFFFFF);
436 /* Enable USB interrupts */ 442 /* Enable USB interrupts */
437 set_int_value(ISP1583_INIT_INTEN_A, ISP1583_INIT_INTEN_B, STANDARD_INTEN); 443 set_int_value(ISP1583_INIT_INTEN_A, ISP1583_INIT_INTEN_B, STANDARD_INTEN);
438 444
439 ZVM_SPECIFIC; 445 ZVM_SPECIFIC;
440 446
441 /* Enable interrupt at CPU level */ 447 /* Enable interrupt at CPU level */
442 EN_INT_CPU_TARGET; 448 EN_INT_CPU_TARGET;
443 449
444 setup_endpoints(); 450 setup_endpoints();
445 451
446 /* Clear device address and disable it */ 452 /* Clear device address and disable it */
447 ISP1583_INIT_ADDRESS = 0; 453 ISP1583_INIT_ADDRESS = 0;
448 454
449 /* Turn SoftConnect on */ 455 /* Turn SoftConnect on */
450 ISP1583_INIT_MODE |= INIT_MODE_SOFTCT; 456 ISP1583_INIT_MODE |= INIT_MODE_SOFTCT;
451 457
452 ZVM_SPECIFIC; 458 ZVM_SPECIFIC;
453 459
454 //tick_add_task(usb_helper); 460 //tick_add_task(usb_helper);
455 461
456 logf("usb_init_device() finished"); 462 logf("usb_init_device() finished");
457} 463}
458 464
@@ -460,7 +466,7 @@ int usb_drv_port_speed(void)
460{ 466{
461 return (int)high_speed_mode; 467 return (int)high_speed_mode;
462} 468}
463 469
464void usb_drv_exit(void) 470void usb_drv_exit(void)
465{ 471{
466 logf("usb_drv_exit()"); 472 logf("usb_drv_exit()");
@@ -468,7 +474,7 @@ void usb_drv_exit(void)
468 /* Disable device */ 474 /* Disable device */
469 ISP1583_INIT_MODE &= ~INIT_MODE_SOFTCT; 475 ISP1583_INIT_MODE &= ~INIT_MODE_SOFTCT;
470 ISP1583_INIT_ADDRESS = 0; 476 ISP1583_INIT_ADDRESS = 0;
471 477
472 /* Disable interrupts */ 478 /* Disable interrupts */
473 set_int_value(ISP1583_INIT_INTEN_A, ISP1583_INIT_INTEN_B, 0); 479 set_int_value(ISP1583_INIT_INTEN_A, ISP1583_INIT_INTEN_B, 0);
474 /* and the CPU's one... */ 480 /* and the CPU's one... */
@@ -478,9 +484,9 @@ void usb_drv_exit(void)
478 /* Send usb controller to suspend mode */ 484 /* Send usb controller to suspend mode */
479 ISP1583_INIT_MODE = INIT_MODE_GOSUSP; 485 ISP1583_INIT_MODE = INIT_MODE_GOSUSP;
480 ISP1583_INIT_MODE = 0; 486 ISP1583_INIT_MODE = 0;
481 487
482 //tick_remove_task(usb_helper); 488 //tick_remove_task(usb_helper);
483 489
484 ZVM_SPECIFIC; 490 ZVM_SPECIFIC;
485} 491}
486 492
@@ -517,7 +523,7 @@ static void in_callback(int ep, unsigned char *buf, int len)
517int usb_drv_recv(int ep, void* ptr, int length) 523int usb_drv_recv(int ep, void* ptr, int length)
518{ 524{
519 logf("usb_drv_recv(%d, 0x%x, %d)", ep, (int)ptr, length); 525 logf("usb_drv_recv(%d, 0x%x, %d)", ep, (int)ptr, length);
520 if(ep == 0 && length == 0 && ptr == NULL) 526 if(ep == EP_CONTROL && length == 0 && ptr == NULL)
521 { 527 {
522 usb_status_ack(ep, DIR_TX); 528 usb_status_ack(ep, DIR_TX);
523 return 0; 529 return 0;
@@ -527,7 +533,7 @@ int usb_drv_recv(int ep, void* ptr, int length)
527 endpoints[ep].in_max_len = length; 533 endpoints[ep].in_max_len = length;
528 endpoints[ep].in_min_len = length; 534 endpoints[ep].in_min_len = length;
529 endpoints[ep].in_ptr = 0; 535 endpoints[ep].in_ptr = 0;
530 if(ep == 0) 536 if(ep == EP_CONTROL)
531 { 537 {
532 usb_data_stage_enable(ep, DIR_RX); 538 usb_data_stage_enable(ep, DIR_RX);
533 return usb_receive(ep); 539 return usb_receive(ep);
@@ -560,7 +566,7 @@ static void usb_drv_wait(int ep, bool send)
560int usb_drv_send(int ep, void* ptr, int length) 566int usb_drv_send(int ep, void* ptr, int length)
561{ 567{
562 logf("usb_drv_send_nb(%d, 0x%x, %d)", ep, (int)ptr, length); 568 logf("usb_drv_send_nb(%d, 0x%x, %d)", ep, (int)ptr, length);
563 if(ep == 0 && length == 0 && ptr == NULL) 569 if(ep == EP_CONTROL && length == 0 && ptr == NULL)
564 { 570 {
565 usb_status_ack(ep, DIR_RX); 571 usb_status_ack(ep, DIR_RX);
566 return 0; 572 return 0;
@@ -572,7 +578,7 @@ int usb_drv_send(int ep, void* ptr, int length)
572 endpoints[ep].out_len = length; 578 endpoints[ep].out_len = length;
573 endpoints[ep].out_ptr = 0; 579 endpoints[ep].out_ptr = 0;
574 endpoints[ep].out_in_progress = 1; 580 endpoints[ep].out_in_progress = 1;
575 if(ep == 0) 581 if(ep == EP_CONTROL)
576 { 582 {
577 int rc = usb_send(ep); 583 int rc = usb_send(ep);
578 usb_data_stage_enable(ep, DIR_TX); 584 usb_data_stage_enable(ep, DIR_TX);
@@ -602,7 +608,7 @@ void usb_drv_cancel_all_transfers(void)
602int usb_drv_request_endpoint(int type, int dir) 608int usb_drv_request_endpoint(int type, int dir)
603{ 609{
604 int i, bit; 610 int i, bit;
605 611
606 if (type != USB_ENDPOINT_XFER_BULK) 612 if (type != USB_ENDPOINT_XFER_BULK)
607 return -1; 613 return -1;
608 614
@@ -631,13 +637,13 @@ static void bus_reset(void)
631 /* Enable USB interrupts */ 637 /* Enable USB interrupts */
632 ISP1583_INIT_INTCONF = 0x54 | INT_CONF_TARGET; 638 ISP1583_INIT_INTCONF = 0x54 | INT_CONF_TARGET;
633 set_int_value(ISP1583_INIT_INTEN_A, ISP1583_INIT_INTEN_B, STANDARD_INTEN); 639 set_int_value(ISP1583_INIT_INTEN_A, ISP1583_INIT_INTEN_B, STANDARD_INTEN);
634 640
635 /* Disable all OTG functions */ 641 /* Disable all OTG functions */
636 ISP1583_INIT_OTG = 0; 642 ISP1583_INIT_OTG = 0;
637 643
638 /* Clear device address and enable it */ 644 /* Clear device address and enable it */
639 ISP1583_INIT_ADDRESS = INIT_ADDRESS_DEVEN; 645 ISP1583_INIT_ADDRESS = INIT_ADDRESS_DEVEN;
640 646
641 ZVM_SPECIFIC; 647 ZVM_SPECIFIC;
642 648
643 /* Reset endpoints to default */ 649 /* Reset endpoints to default */
@@ -651,13 +657,13 @@ void IRAM_ATTR usb_drv_int(void)
651{ 657{
652 unsigned long ints; 658 unsigned long ints;
653 ints = ISP1583_GEN_INT_READ & ISP1583_INIT_INTEN_READ; 659 ints = ISP1583_GEN_INT_READ & ISP1583_INIT_INTEN_READ;
654 660
655 if(!ints) 661 if(!ints)
656 return; 662 return;
657 663
658 /* Unlock the device's registers */ 664 /* Unlock the device's registers */
659 ISP1583_GEN_UNLCKDEV = ISP1583_UNLOCK_CODE; 665 ISP1583_GEN_UNLCKDEV = ISP1583_UNLOCK_CODE;
660 666
661 //logf(" handling int [0x%lx & 0x%lx = 0x%x]", ISP1583_GEN_INT_READ, ISP1583_INIT_INTEN_READ, (int)ints); 667 //logf(" handling int [0x%lx & 0x%lx = 0x%x]", ISP1583_GEN_INT_READ, ISP1583_INIT_INTEN_READ, (int)ints);
662 668
663 if(ints & INT_IEBRST) /* Bus reset */ 669 if(ints & INT_IEBRST) /* Bus reset */
@@ -690,7 +696,7 @@ void IRAM_ATTR usb_drv_int(void)
690 { 696 {
691 if(i>25) 697 if(i>25)
692 break; 698 break;
693 699
694 if(ep_event & (1 << i)) 700 if(ep_event & (1 << i))
695 { 701 {
696 logf("EP%d %s interrupt", (i - 10) / 2, i % 2 ? "RX" : "TX"); 702 logf("EP%d %s interrupt", (i - 10) / 2, i % 2 ? "RX" : "TX");
@@ -718,7 +724,7 @@ void IRAM_ATTR usb_drv_int(void)
718 } 724 }
719 /* Mask all (enabled) interrupts */ 725 /* Mask all (enabled) interrupts */
720 set_int_value(ISP1583_GEN_INT_A, ISP1583_GEN_INT_B, ints); 726 set_int_value(ISP1583_GEN_INT_A, ISP1583_GEN_INT_B, ints);
721 727
722 ZVM_SPECIFIC; 728 ZVM_SPECIFIC;
723} 729}
724 730
@@ -726,7 +732,7 @@ void usb_drv_set_address(int address)
726{ 732{
727 logf("usb_drv_set_address(0x%x)", address); 733 logf("usb_drv_set_address(0x%x)", address);
728 ISP1583_INIT_ADDRESS = (address & 0x7F) | INIT_ADDRESS_DEVEN; 734 ISP1583_INIT_ADDRESS = (address & 0x7F) | INIT_ADDRESS_DEVEN;
729 735
730 ZVM_SPECIFIC; 736 ZVM_SPECIFIC;
731} 737}
732 738