diff options
author | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2008-11-21 12:50:06 +0000 |
---|---|---|
committer | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2008-11-21 12:50:06 +0000 |
commit | c0b43a5ac2fcda473800b9c9a4036c5348ac5084 (patch) | |
tree | 0fdf827d5f65e26da35341c4a67a006e36ca5dc2 /firmware/target/mips/ingenic_jz47xx/usb-jz4740.c | |
parent | 0a61b71f73556592af6e1f127a42a27d48564b72 (diff) | |
download | rockbox-c0b43a5ac2fcda473800b9c9a4036c5348ac5084.tar.gz rockbox-c0b43a5ac2fcda473800b9c9a4036c5348ac5084.zip |
Commit some USB and ATA rework/refactoring (+ USB GPIO detection).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19165 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/usb-jz4740.c')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/usb-jz4740.c | 49 |
1 files changed, 39 insertions, 10 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c b/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c index 7cefdadbe3..f0b4eb4694 100644 --- a/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/usb-jz4740.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include "usb_ch9.h" | 25 | #include "usb_ch9.h" |
26 | #include "usb_drv.h" | 26 | #include "usb_drv.h" |
27 | #include "usb_core.h" | 27 | #include "usb_core.h" |
28 | #include "usb-target.h" | ||
28 | #include "jz4740.h" | 29 | #include "jz4740.h" |
29 | #include "thread.h" | 30 | #include "thread.h" |
30 | 31 | ||
@@ -33,10 +34,6 @@ | |||
33 | #define EP1_INTR_BIT 2 | 34 | #define EP1_INTR_BIT 2 |
34 | #define EP_FIFO_NOEMPTY 2 | 35 | #define EP_FIFO_NOEMPTY 2 |
35 | 36 | ||
36 | #define GPIO_UDC_DETE_PIN (32 * 3 + 6) | ||
37 | #define GPIO_UDC_DETE GPIO_UDC_DETE_PIN | ||
38 | #define IRQ_GPIO_UDC_DETE (IRQ_GPIO_0 + GPIO_UDC_DETE) | ||
39 | |||
40 | #define IS_CACHE(x) (x < 0xa0000000) | 37 | #define IS_CACHE(x) (x < 0xa0000000) |
41 | 38 | ||
42 | #define USB_EP0_IDLE 0 | 39 | #define USB_EP0_IDLE 0 |
@@ -81,7 +78,7 @@ static inline void select_endpoint(int ep) | |||
81 | } | 78 | } |
82 | 79 | ||
83 | static void readFIFO(struct usb_endpoint *ep, unsigned int size) | 80 | static void readFIFO(struct usb_endpoint *ep, unsigned int size) |
84 | { | 81 | { |
85 | unsigned int *d = (unsigned int *)ep->ptr; | 82 | unsigned int *d = (unsigned int *)ep->ptr; |
86 | unsigned int s; | 83 | unsigned int s; |
87 | s = (size + 3) >> 2; | 84 | s = (size + 3) >> 2; |
@@ -90,7 +87,7 @@ static void readFIFO(struct usb_endpoint *ep, unsigned int size) | |||
90 | } | 87 | } |
91 | 88 | ||
92 | static void writeFIFO(struct usb_endpoint *ep, unsigned int size) | 89 | static void writeFIFO(struct usb_endpoint *ep, unsigned int size) |
93 | { | 90 | { |
94 | unsigned int *d = (unsigned int *)ep->ptr; | 91 | unsigned int *d = (unsigned int *)ep->ptr; |
95 | unsigned char *c; | 92 | unsigned char *c; |
96 | int s, q; | 93 | int s, q; |
@@ -359,7 +356,7 @@ bool usb_drv_connected(void) | |||
359 | 356 | ||
360 | int usb_detect(void) | 357 | int usb_detect(void) |
361 | { | 358 | { |
362 | if(__gpio_get_pin(GPIO_UDC_DETE) == 1) | 359 | if(usb_drv_connected()) |
363 | return USB_INSERTED; | 360 | return USB_INSERTED; |
364 | else | 361 | else |
365 | return USB_EXTRACTED; | 362 | return USB_EXTRACTED; |
@@ -367,9 +364,7 @@ int usb_detect(void) | |||
367 | 364 | ||
368 | void usb_init_device(void) | 365 | void usb_init_device(void) |
369 | { | 366 | { |
370 | system_enable_irq(IRQ_UDC); | 367 | usb_init_gpio(); |
371 | __gpio_as_input(GPIO_UDC_DETE_PIN); | ||
372 | return; | ||
373 | } | 368 | } |
374 | 369 | ||
375 | void usb_enable(bool on) | 370 | void usb_enable(bool on) |
@@ -442,6 +437,40 @@ void usb_drv_set_address(int address) | |||
442 | REG_USB_REG_FADDR = address; | 437 | REG_USB_REG_FADDR = address; |
443 | } | 438 | } |
444 | 439 | ||
440 | int usb_drv_send(int endpoint, void* ptr, int length) | ||
441 | { | ||
442 | return 0; | ||
443 | } | ||
444 | |||
445 | int usb_drv_recv(int endpoint, void* ptr, int length) | ||
446 | { | ||
447 | return 0; | ||
448 | } | ||
449 | |||
450 | void usb_drv_set_test_mode(int mode) | ||
451 | { | ||
452 | |||
453 | } | ||
454 | |||
455 | int usb_drv_port_speed(void) | ||
456 | { | ||
457 | return ((REG_USB_REG_POWER & USB_POWER_HSMODE) != 0) ? 1 : 0; | ||
458 | } | ||
459 | |||
460 | void usb_drv_cancel_all_transfers(void) | ||
461 | { | ||
462 | int i; | ||
463 | for(i=0; i<5; i++) | ||
464 | { | ||
465 | endpoints[i].ptr = endpoints[i].buf; | ||
466 | endpoints[i].length = 0; | ||
467 | } | ||
468 | } | ||
469 | |||
470 | void usb_drv_release_endpoint(int ep) | ||
471 | { | ||
472 | |||
473 | } | ||
445 | 474 | ||
446 | #else | 475 | #else |
447 | 476 | ||