今天想同时插上u盘和摄像头,却发现其中一个usb口不工作
网上搜索后得到解答,USB初始化时MISCCR寄存器没有设置正确
贴上最后的usb初始化函数
int smdk2410_usb_init(void) /* USB */
{
unsigned long upllvalue = (0x78<<12)|(0x02<<4)|(0x03);
printk("USB Control, (c) 2006 s3c2410\n");
s3c_device_usb.dev.platform_data = &usb_s3c2410_info;
while(upllvalue!=__raw_readl(S3C2410_UPLLCON))
{
__raw_writel(upllvalue,S3C2410_UPLLCON);
mdelay(1);
}
//add misccr/
unsigned long misccr;
misccr = __raw_readl(S3C2410_MISCCR);
misccr |= S3C2410_MISCCR_USBHOST;
misccr &= ~(S3C2410_MISCCR_USBSUSPND0 | S3C2410_MISCCR_USBSUSPND1);
__raw_writel(misccr,S3C2410_MISCCR);
///
return 0;
}
如果出现找不到S3C2410_MISCCR的错误,
请#include
重新编译后,同时插上u盘和摄像头
/ # usb 1-2: new full speed USB device using s3c2410-ohci and address 2
ub(1.2): GetMaxLUN returned 1, using 2 LUNs
/dev/ub/a: p1
/ # usb 1-1: new full speed USB device using s3c2410-ohci and address 3
drivers/usb/media/spca5xx/spca_core.c: USB SPCA5XX camera found. Type Vimicro Zc301P 0x301b
(aokikyon)