Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1229143
  • 博文数量: 479
  • 博客积分: 12240
  • 博客等级: 上将
  • 技术积分: 4999
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-24 17:12
文章分类

全部博文(479)

文章存档

2014年(1)

2013年(1)

2012年(1)

2011年(95)

2010年(177)

2009年(167)

2008年(16)

2007年(21)

分类: LINUX

2009-10-14 21:05:52

S3C2440A USB


USB HOST PLL

需要先升频至96MHz,然后降频至HOST需要的48MHz才可以。
设置UPLLCON寄存器。

./arch/arm/mach-s3c2440/mach-smdk2440.c

384     /* set UPLLCON 96MHz */
385     upllcon = (
386          0x38 << S3C2410_PLLCON_MDIVSHIFT)
387           | (0x02 << S3C2410_PLLCON_PDIVSHIFT)
388           | (0x01 << S3C2410_PLLCON_SDIVSHIFT);
389     writel(upllcon, S3C2410_UPLLCON);

384     /* set UPLLCON 96MHz */
385     upllcon = (
386          0x38 << S3C2410_PLLCON_MDIVSHIFT)
387           | (0x02 << S3C2410_PLLCON_PDIVSHIFT)
388           | (0x01 << S3C2410_PLLCON_SDIVSHIFT);
389     writel(upllcon, S3C2410_UPLLCON);


使能2个USB HOST

设置MISCCR寄存器的Bit3为1即可。


h1940(基于2410CPU)的一些代码:
        /* Turn off suspend on both USB ports, and switch the
         * selectable USB port to USB device mode. */

        s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST |
                              S3C2410_MISCCR_USBSUSPND0 |
                              S3C2410_MISCCR_USBSUSPND1, 0x0);

        tmp = (
                 0x78 << S3C2410_PLLCON_MDIVSHIFT)
              | (0x02 << S3C2410_PLLCON_PDIVSHIFT)
              | (0x03 << S3C2410_PLLCON_SDIVSHIFT);
        writel(tmp, S3C2410_UPLLCON);



u-boot中的使能2个HOST的代码:
./cpu/arm920t/s3c24x0/usb.c:    gpio->MISCCR |= 0x8; /* 1 = use pads related USB for USB host */
./cpu/arm920t/s3c24x0/usb_ohci.c:       gpio->MISCCR |= 0x8; /* 1 = use pads related USB for USB host */
阅读(2241) | 评论(1) | 转发(1) |
0

上一篇:通过U盘固化系统

下一篇:AX88796B驱动

给主人留下些什么吧!~~

chinaunix网友2010-12-08 17:24:16

LZ,能不能给我一个完整的 USB驱动程序参考呢?谢谢啦 CCHD20@163.COM