/* ******************************************************************************* * UsbPhyInit * * Description: * void * * Parameters: * void * * Return value: * void * * note: * void * ******************************************************************************* */ void UsbPhyInit(__u32 usbc_no) { // DMSG_INFO("csr1: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Readl(USBC_Phy_GetCsr(usbc_no))); /* 调节45欧阻抗 */ if(usbc_no == 0){ USBC_Phy_Write(usbc_no, 0x0c, 0x01, 1); } // DMSG_INFO("csr2-0: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x0c, 1)); /* 调整 USB0 PHY 的幅度和速率 */ USBC_Phy_Write(usbc_no, 0x20, 0x14, 5); // DMSG_INFO("csr2-1: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x20, 5)); /* 调节 disconnect 域值 */ #ifdef CONFIG_ARCH_SUN4I USBC_Phy_Write(usbc_no, 0x2a, 3, 2); #else USBC_Phy_Write(usbc_no, 0x2a, 2, 2); #endif // DMSG_INFO("csr2: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x2a, 2)); // DMSG_INFO("csr3: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Readl(USBC_Phy_GetCsr(usbc_no))); return; }
void UsbPhyEndReset(__u32 usbc_no) { int i; if (usbc_no == 0) { //Disable Sequelch Detect for a while before Release USB Reset USBC_Phy_Write(usbc_no, 0x3c, 0x2, 2); for(i=0; i<0x100; i++); USBC_Phy_Write(usbc_no, 0x3c, 0x0, 2); } return; }
static void UsbPhyInit(__u32 usbc_no) { /* 调整 USB0 PHY 的幅度和速率 */ USBC_Phy_Write(usbc_no, 0x20, 0x14, 5); /* DMSG_DEBUG("csr2-1: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x20, 5)); */ /* 调节 disconnect 域值 */ if (!sunxi_is_sun4i()) USBC_Phy_Write(usbc_no, 0x2a, 2, 2); else USBC_Phy_Write(usbc_no, 0x2a, 3, 2); /* DMSG_DEBUG("csr2: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x2a, 2)); */ DMSG_DEBUG("csr3: usbc%d: 0x%x\n", usbc_no, (u32)readl(USBC_Phy_GetCsr(usbc_no))); return; }
static void UsbPhyInit(__u32 usbc_no) { // DMSG_INFO("csr1: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Readl(USBC_Phy_GetCsr(usbc_no))); /* adjust the 45 ohm resistance */ if(usbc_no == 0){ USBC_Phy_Write(usbc_no, 0x0c, 0x01, 1); } // DMSG_INFO("csr2-0: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x0c, 1)); /* adjust USB0 PHY's rate and range */ USBC_Phy_Write(usbc_no, 0x20, 0x14, 5); // DMSG_INFO("csr2-1: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x20, 5)); /* adjust disconnect threshold value */ USBC_Phy_Write(usbc_no, 0x2a, 3, 2); /*by wangjx*/ // DMSG_INFO("csr2: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Phy_Read(usbc_no, 0x2a, 2)); // DMSG_INFO("csr3: usbc%d: 0x%x\n", usbc_no, (u32)USBC_Readl(USBC_Phy_GetCsr(usbc_no))); return; }