M:Robe 500: Start of interrupt support.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21913 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Karl Kurbjun 2009-07-17 03:44:01 +00:00
parent 8eba69f91b
commit c97a3bf180
2 changed files with 28 additions and 15 deletions

View file

@ -238,7 +238,7 @@ static int mxx_transmit_receive(int endpoint) {
/* Start sending data in 16-bit words */
for (i = 0; i < (length>>1); i++) {
/* This wait is dangerous in the event htat something happens to
/* This wait is dangerous in the event that something happens to
* the PHY pipe where it never becomes ready again, should probably
* add a timeout, and ideally completely remove.
*/
@ -550,17 +550,30 @@ void usb_drv_set_test_mode(int mode) {
int usb_drv_request_endpoint(int type, int dir) {
int ep;
int pipecfg = 0;
if (type != USB_ENDPOINT_XFER_BULK)
return -1;
/* The endpoint/pipes are hard coded: This could be more flexible */
if (dir == USB_DIR_IN) {
pipecfg |= (1<<4);
ep = 2;
if (type == USB_ENDPOINT_XFER_BULK) {
/* Enalbe double buffer mode */
pipecfg |= 1<<9;
if (dir == USB_DIR_IN) {
pipecfg |= (1<<4);
ep = 2;
} else {
ep = 1;
}
} else if (type == USB_ENDPOINT_XFER_INT) {
if (dir == USB_DIR_IN) {
pipecfg |= (1<<4);
ep = 6;
} else {
ep = 5;
}
} else {
ep = 1;
/* Not a supported type */
return -1;
}
if (!M66591_eps[ep].busy) {
M66591_eps[ep].busy = true;
@ -572,11 +585,12 @@ int usb_drv_request_endpoint(int type, int dir) {
M66591_PIPE_CFGSEL=ep;
pipecfg |= 1<<15 | 1<<9 | 1<<8;
/* Enable pipe (15) and continuous transfer mode (8) */
pipecfg |= 1<<15 | 1<<8;
pipe_handshake(ep, PIPE_SHAKE_NAK);
// Setup the flags
/* Setup the flags */
M66591_PIPE_CFGWND=pipecfg;
logf("mxx: ep req ep#: %d config: 0x%04x", ep, M66591_PIPE_CFGWND);

View file

@ -788,13 +788,12 @@ Lyre prototype 1*/
/* Define the implemented USB transport classes */
#if CONFIG_USBOTG == USBOTG_ISP1583
#define USB_HAS_BULK
#elif CONFIG_USBOTG == USBOTG_ARC
#elif (CONFIG_USBOTG == USBOTG_ARC) || \
(CONFIG_USBOTG == USBOTG_JZ4740) || \
(CONFIG_USBOTG == USBOTG_M66591)
#define USB_HAS_BULK
#define USB_HAS_INTERRUPT
#elif CONFIG_USBOTG == USBOTG_JZ4740
#define USB_HAS_BULK
#define USB_HAS_INTERRUPT
#elif defined(CPU_TCC780X) || defined(CPU_TCC77X) || defined(MROBE_500)
#elif defined(CPU_TCC780X) || defined(CPU_TCC77X)
#define USB_HAS_BULK
#endif /* CONFIG_USBOTG */