USB Host Driver for Linux 2.6移植
#vi $KERNEL/arch/arm/mach-s3c2410/mach-smdk2410.c
添加头文件:
#include <asm/arch/usb-control.h>
#include <asm/arch/regs-clock.h>
#include <linux/device.h>
#include <linux/delay.h>
添加USB Host Driver注册信息:
struct s3c2410_hcd_info usb_s3c2410_info = {
.port[0] = {
.flags = S3C_HCDFLG_USED
}
};
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);
}
return 0;
}
在smdk2410_map_io函数中调用 usb 的初始化,如下所示:
static void __init smdk2410_map_io(void)
{
…… //代码省略
smdk2410_usb_init();
}