Chinaunix首页 | 论坛 | 博客
  • 博客访问: 397302
  • 博文数量: 380
  • 博客积分: 75
  • 博客等级: 民兵
  • 技术积分: 1925
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-05 15:35
文章分类

全部博文(380)

文章存档

2014年(1)

2013年(2)

2012年(19)

2011年(358)

我的朋友

分类:

2011-10-09 10:47:12

原文地址:S3C2440 USB问题 作者:chenxibing008

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 */
阅读(365) | 评论(0) | 转发(0) |
0

上一篇:S3C2440 UART2 BUG

下一篇:ADC Driver

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