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 */ |