下载最新Android linux-3.0.8-20130722.tgz内核后,看到 arch/arm/mach-s5pv210/setup-usb-phy.c + 87 处已经注释掉了, 强制执行以下语句。问题解决
if (type == S5P_USB_PHY_HOST) {
#if 0 /* Always do USB reset to fix issue on soft reboot */
if (readl(S5P_USB_PHY_CONTROL) & (0x1<<1))
return -1;
#endif
__raw_writel(__raw_readl(S5P_USB_PHY_CONTROL) | (0x1<<1),
S5P_USB_PHY_CONTROL);
__raw_writel((__raw_readl(S3C_USBOTG_PHYPWR)
& ~(0x1<<7) & ~(0x1<<6)) | (0x1<<8) | (0x1<<5),
S3C_USBOTG_PHYPWR);
__raw_writel((__raw_readl(S3C_USBOTG_PHYCLK) & ~(0x1<<7)) | (0x3<<0),
S3C_USBOTG_PHYCLK);
__raw_writel((__raw_readl(S3C_USBOTG_RSTCON)) | (0x1<<4) | (0x1<<3),
S3C_USBOTG_RSTCON);
udelay(10);
__raw_writel(__raw_readl(S3C_USBOTG_RSTCON) & ~(0x1<<4) & ~(0x1<<3),
S3C_USBOTG_RSTCON);
host_phy_initialized++;
}