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();
}
本文介绍如何在 Linux 2.6 内核中移植并实现 S3C2410 USB Host 驱动。主要内容包括添加必要的头文件、定义 USBHostDriver 的注册信息及初始化过程。
3998

被折叠的 条评论
为什么被折叠?



