Merge branch 'master' of git://git.denx.de/u-boot-usb

This commit is contained in:
Wolfgang Denk 2010-10-23 21:49:28 +02:00
commit b4039a5415
7 changed files with 28 additions and 22 deletions

View file

@ -70,7 +70,7 @@
/* direction table -- this indicates the direction of the data /* direction table -- this indicates the direction of the data
* transfer for each command code -- a 1 indicates input * transfer for each command code -- a 1 indicates input
*/ */
unsigned char us_direction[256/8] = { static const unsigned char us_direction[256/8] = {
0x28, 0x81, 0x14, 0x14, 0x20, 0x01, 0x90, 0x77, 0x28, 0x81, 0x14, 0x14, 0x20, 0x01, 0x90, 0x77,
0x0C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,

View file

@ -205,12 +205,12 @@ static int handshake(uint32_t *ptr, uint32_t mask, uint32_t done, int usec)
uint32_t result; uint32_t result;
do { do {
result = ehci_readl(ptr); result = ehci_readl(ptr);
udelay(5);
if (result == ~(uint32_t)0) if (result == ~(uint32_t)0)
return -1; return -1;
result &= mask; result &= mask;
if (result == done) if (result == done)
return 0; return 0;
udelay(1);
usec--; usec--;
} while (usec > 0); } while (usec > 0);
return -1; return -1;

View file

@ -53,6 +53,10 @@ int ehci_hcd_init(void)
hcor = (struct ehci_hcor *)((uint32_t) hccr + hcor = (struct ehci_hcor *)((uint32_t) hccr +
HC_LENGTH(ehci_readl(&hccr->cr_capbase))); HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
debug("EHCI-PCI init hccr 0x%x and hcor 0x%x hc_length %d\n",
(uint32_t)hccr, (uint32_t)hcor,
(uint32_t)HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
return 0; return 0;
} }

View file

@ -175,7 +175,7 @@ struct qTD {
uint32_t qt_buffer_hi[5]; /* Appendix B */ uint32_t qt_buffer_hi[5]; /* Appendix B */
/* pad struct for 32 byte alignment */ /* pad struct for 32 byte alignment */
uint32_t unused[3]; uint32_t unused[3];
} __attribute__ ((aligned (32))); };
/* Queue Head (QH). */ /* Queue Head (QH). */
struct QH { struct QH {

View file

@ -76,7 +76,7 @@ void musb_start(void)
* epinfo - Pointer to EP configuration table * epinfo - Pointer to EP configuration table
* cnt - Number of entries in the EP conf table. * cnt - Number of entries in the EP conf table.
*/ */
void musb_configure_ep(struct musb_epinfo *epinfo, u8 cnt) void musb_configure_ep(const struct musb_epinfo *epinfo, u8 cnt)
{ {
u16 csr; u16 csr;
u16 fifoaddr = 64; /* First 64 bytes of FIFO reserved for EP0 */ u16 fifoaddr = 64; /* First 64 bytes of FIFO reserved for EP0 */

View file

@ -357,7 +357,7 @@ extern struct musb_regs *musbr;
/* exported functions */ /* exported functions */
extern void musb_start(void); extern void musb_start(void);
extern void musb_configure_ep(struct musb_epinfo *epinfo, u8 cnt); extern void musb_configure_ep(const struct musb_epinfo *epinfo, u8 cnt);
extern void write_fifo(u8 ep, u32 length, void *fifo_data); extern void write_fifo(u8 ep, u32 length, void *fifo_data);
extern void read_fifo(u8 ep, u32 length, void *fifo_data); extern void read_fifo(u8 ep, u32 length, void *fifo_data);

View file

@ -29,7 +29,7 @@
#define USB_MSC_BBB_GET_MAX_LUN 0xFE #define USB_MSC_BBB_GET_MAX_LUN 0xFE
/* Endpoint configuration information */ /* Endpoint configuration information */
static struct musb_epinfo epinfo[3] = { static const struct musb_epinfo epinfo[3] = {
{MUSB_BULK_EP, 1, 512}, /* EP1 - Bluk Out - 512 Bytes */ {MUSB_BULK_EP, 1, 512}, /* EP1 - Bluk Out - 512 Bytes */
{MUSB_BULK_EP, 0, 512}, /* EP1 - Bluk In - 512 Bytes */ {MUSB_BULK_EP, 0, 512}, /* EP1 - Bluk In - 512 Bytes */
{MUSB_INTR_EP, 0, 64} /* EP2 - Interrupt IN - 64 Bytes */ {MUSB_INTR_EP, 0, 64} /* EP2 - Interrupt IN - 64 Bytes */
@ -41,7 +41,7 @@ static int rh_devnum;
static u32 port_status; static u32 port_status;
/* Device descriptor */ /* Device descriptor */
static u8 root_hub_dev_des[] = { static const u8 root_hub_dev_des[] = {
0x12, /* __u8 bLength; */ 0x12, /* __u8 bLength; */
0x01, /* __u8 bDescriptorType; Device */ 0x01, /* __u8 bDescriptorType; Device */
0x00, /* __u16 bcdUSB; v1.1 */ 0x00, /* __u16 bcdUSB; v1.1 */
@ -63,7 +63,7 @@ static u8 root_hub_dev_des[] = {
}; };
/* Configuration descriptor */ /* Configuration descriptor */
static u8 root_hub_config_des[] = { static const u8 root_hub_config_des[] = {
0x09, /* __u8 bLength; */ 0x09, /* __u8 bLength; */
0x02, /* __u8 bDescriptorType; Configuration */ 0x02, /* __u8 bDescriptorType; Configuration */
0x19, /* __u16 wTotalLength; */ 0x19, /* __u16 wTotalLength; */
@ -96,14 +96,14 @@ static u8 root_hub_config_des[] = {
0xff /* __u8 ep_bInterval; 255 ms */ 0xff /* __u8 ep_bInterval; 255 ms */
}; };
static unsigned char root_hub_str_index0[] = { static const unsigned char root_hub_str_index0[] = {
0x04, /* __u8 bLength; */ 0x04, /* __u8 bLength; */
0x03, /* __u8 bDescriptorType; String-descriptor */ 0x03, /* __u8 bDescriptorType; String-descriptor */
0x09, /* __u8 lang ID */ 0x09, /* __u8 lang ID */
0x04, /* __u8 lang ID */ 0x04, /* __u8 lang ID */
}; };
static unsigned char root_hub_str_index1[] = { static const unsigned char root_hub_str_index1[] = {
0x1c, /* __u8 bLength; */ 0x1c, /* __u8 bLength; */
0x03, /* __u8 bDescriptorType; String-descriptor */ 0x03, /* __u8 bDescriptorType; String-descriptor */
'M', /* __u8 Unicode */ 'M', /* __u8 Unicode */
@ -557,7 +557,7 @@ static int musb_submit_rh_msg(struct usb_device *dev, unsigned long pipe,
int len = 0; int len = 0;
int stat = 0; int stat = 0;
u32 datab[4]; u32 datab[4];
u8 *data_buf = (u8 *) datab; const u8 *data_buf = (u8 *) datab;
u16 bmRType_bReq; u16 bmRType_bReq;
u16 wValue; u16 wValue;
u16 wIndex; u16 wIndex;
@ -778,25 +778,27 @@ static int musb_submit_rh_msg(struct usb_device *dev, unsigned long pipe,
break; break;
case RH_GET_DESCRIPTOR | RH_CLASS: case RH_GET_DESCRIPTOR | RH_CLASS: {
u8 *_data_buf = (u8 *) datab;
debug("RH_GET_DESCRIPTOR | RH_CLASS\n"); debug("RH_GET_DESCRIPTOR | RH_CLASS\n");
data_buf[0] = 0x09; /* min length; */ _data_buf[0] = 0x09; /* min length; */
data_buf[1] = 0x29; _data_buf[1] = 0x29;
data_buf[2] = 0x1; /* 1 port */ _data_buf[2] = 0x1; /* 1 port */
data_buf[3] = 0x01; /* per-port power switching */ _data_buf[3] = 0x01; /* per-port power switching */
data_buf[3] |= 0x10; /* no overcurrent reporting */ _data_buf[3] |= 0x10; /* no overcurrent reporting */
/* Corresponds to data_buf[4-7] */ /* Corresponds to data_buf[4-7] */
data_buf[4] = 0; _data_buf[4] = 0;
data_buf[5] = 5; _data_buf[5] = 5;
data_buf[6] = 0; _data_buf[6] = 0;
data_buf[7] = 0x02; _data_buf[7] = 0x02;
data_buf[8] = 0xff; _data_buf[8] = 0xff;
len = min_t(unsigned int, leni, len = min_t(unsigned int, leni,
min_t(unsigned int, data_buf[0], wLength)); min_t(unsigned int, data_buf[0], wLength));
break; break;
}
case RH_GET_CONFIGURATION: case RH_GET_CONFIGURATION:
debug("RH_GET_CONFIGURATION\n"); debug("RH_GET_CONFIGURATION\n");