在学习usb驱动的时候遇到的问题:
usb 1-1: new full speed USB device using s3c2410-ohci and address 2 usb 1-1: device descriptor read/64, error -62 usb 1-1: device descriptor read/64, error -62 usb 1-1: new full speed USB device using s3c2410-ohci and address 3 usb 1-1: device descriptor read/64, error -62 usb 1-1: device descriptor read/64, error -62 usb 1-1: new full speed USB device using s3c2410-ohci and address 4 usb 1-1: device not accepting address 4, error -62 usb 1-1: new full speed USB device using s3c2410-ohci and address 5 usb 1-1: device not accepting address 5, error -62 hub 1-0:1.0: unable to enumerate USB device on port 1
在drivers/usb/host/ohci-s3c2410.c 的函数 s3c2410_start_hc修改如下:
drivers/usb/host/ohci-s3c2410.c static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd) { struct s3c2410_hcd_info *info = dev->dev.platform_data; unsigned long upllvalue = (0x38<< 12) | (0x02 << 4) | (0x01); // 添加的代码 unsigned long upllvalue1 = (0x38<< 12) | (0x02 << 4) | (0x02); // 添加的代码 dev_dbg(&dev->dev, "s3c2410_start_hc:\n"); __raw_writel(upllvalue, S3C2410_UPLLCON); // 添加的代码 mdelay(20); // 添加的代码 __raw_writel(upllvalue1, S3C2410_UPLLCON);// 添加的代码 mdelay(20); // 添加的代码 clk_enable(usb_clk); mdelay(2); /* let the bus clock stabilise */ clk_enable(clk); if (info != NULL) { info->hcd = hcd; info->report_oc = s3c2410_hcd_oc; if (info->enable_oc != NULL) { (info->enable_oc)(info, 1); } } }
#nfs 30000000 192.168.1.131:/nfs/busybox/fs_mini2440/uImage_XXX
#bootm 30000000
参考:http://download.csdn.net/detail/wenxiaohua_113/4313893#comment